Codebase list evolution-ews / 5edf2a9
New upstream version 3.28.5 Jeremy Bicha 5 years ago
16 changed file(s) with 1205 addition(s) and 517 deletion(s). Raw diff Collapse all Expand all
33 cmake_policy(VERSION 3.1)
44
55 project(evolution-ews
6 VERSION 3.28.2
6 VERSION 3.28.5
77 LANGUAGES C)
8 set(PROJECT_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=evolution-ews")
8 set(PROJECT_BUGREPORT "https://gitlab.gnome.org/GNOME/evolution-ews/issues/")
99
1010 # Required for FindIntltool module
1111 set(GETTEXT_PACKAGE ${PROJECT_NAME})
0 Evolution-EWS 3.28.5 2018-07-30
1 -------------------------------
2
3 Bug Fixes:
4 I#10 - All day event times broken after drag&drop in Work Week view (Milan Crha)
5
6 Translations:
7 Bruce Cowan (en_GB)
8
9 Evolution-EWS 3.28.4 2018-07-16
10 -------------------------------
11
12 Bug Fixes:
13 Bug 796297 - Make it possible to not request RSVP (all-or-nothing) ][ (Milan Crha)
14 eds-I#12 - vCard REV attribute should be a timestamp (Milan Crha)
15 I#4 - Automatic junk filtering doesn't work (Milan Crha)
16 I#5 - Cannot set/change task priority (Milan Crha)
17 I#2 - Silently ignore broken items on fetch in calendars (Milan Crha)
18 I#7 - Event timezone not always properly set on the server (Milan Crha)
19
20 Evolution-EWS 3.28.3 2018-06-18
21 -------------------------------
22
23 Bug Fixes:
24 Bug 796297 - Make it possible to not request RSVP (all-or-nothing) (Milan Crha)
25
26 Miscellaneous:
27 Address some of the compiler and static analyzers warnings (Milan Crha)
28 Update bug URL and switch to https:// in the DOAP file (Milan Crha)
29
030 Evolution-EWS 3.28.2 2018-05-07
131 -------------------------------
232
66 <name xml:lang="en">evolution-ews</name>
77 <shortdesc xml:lang="en">MS Exchange integration through Exchange Web Services</shortdesc>
88 <description>MS Exchange integration for the Evolution application</description>
9 <homepage rdf:resource="http://wiki.gnome.org/Apps/Evolution" />
10 <mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/evolution-list" />
11 <download-page rdf:resource="http://download.gnome.org/sources/evolution-ews" />
12 <bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=evolution-ews" />
9 <homepage rdf:resource="https://wiki.gnome.org/Apps/Evolution" />
10 <mailing-list rdf:resource="https://mail.gnome.org/mailman/listinfo/evolution-list" />
11 <download-page rdf:resource="https://download.gnome.org/sources/evolution-ews" />
12 <bug-database rdf:resource="https://gitlab.gnome.org/GNOME/evolution-ews/issues/" />
1313 <category rdf:resource="http://api.gnome.org/doap-extensions#apps" />
1414 <programming-language>C</programming-language>
1515
11 # Copyright (C) 2012 evolution-ews's COPYRIGHT HOLDER
22 # This file is distributed under the same license as the evolution-ews package.
33 # olpc user <cjlhomeaddress@gmail.com>, 2012.
4 # Bruce Cowan <bruce@bcowan.me.uk>, 2012.
4 # Bruce Cowan <bruce@bcowan.me.uk>, 2012, 2018.
55 msgid ""
66 msgstr ""
77 "Project-Id-Version: evolution-ews master\n"
8 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product"
9 "=evolution-ews&keywords=I18N+L10N&component=general\n"
10 "POT-Creation-Date: 2012-09-06 09:10+0000\n"
11 "PO-Revision-Date: 2012-09-12 18:58+0100\n"
8 "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?"
9 "product=evolution-ews&keywords=I18N+L10N&component=Miscellaneous / EWS Core\n"
10 "POT-Creation-Date: 2018-03-12 15:07+0000\n"
11 "PO-Revision-Date: 2018-07-21 11:46+0100\n"
1212 "Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
1313 "Language-Team: British English <en@li.org>\n"
1414 "Language: en_GB\n"
1616 "Content-Type: text/plain; charset=UTF-8\n"
1717 "Content-Transfer-Encoding: 8bit\n"
1818 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 "X-Generator: Virtaal 0.7.1\n"
19 "X-Generator: Poedit 2.0.7\n"
2020 "X-Project-Style: gnome\n"
2121
22 #: ../src/addressbook/e-book-backend-ews.c:980
23 msgid "The backend does not support bulk additions"
24 msgstr "The backend does not support bulk additions"
25
26 #: ../src/addressbook/e-book-backend-ews.c:1264
27 msgid "The backend does not support bulk modifications"
28 msgstr "The backend does not support bulk modifications"
29
30 #: ../src/addressbook/e-book-backend-ews.c:1447
31 msgid "Wait till syncing is done"
32 msgstr "Wait till syncing is done"
33
34 #: ../src/addressbook/e-book-backend-ews.c:1785
35 #, c-format
36 msgid "Downloading contacts in %s %d%% completed... "
37 msgstr "Downloading contacts in %s %d%% completed… "
38
39 #: ../src/addressbook/e-book-backend-ews.c:2301
40 msgid "Syncing contacts..."
41 msgstr "Syncing contacts…"
42
43 #: ../src/addressbook/e-book-backend-ews.c:2504
44 #: ../src/configuration/e-ews-search-user.c:361
45 msgid "Searching..."
46 msgstr "Searching…"
47
48 #: ../src/addressbook/ews-book-backend-sqlitedb.c:478
49 #, c-format
50 msgid "Insufficient memory"
51 msgstr "Insufficient memory"
52
53 #: ../src/calendar/e-cal-backend-ews.c:1060
54 msgid "EWS does not support bulk removals"
55 msgstr "EWS does not support bulk removals"
56
57 #: ../src/calendar/e-cal-backend-ews.c:1645
58 msgid "EWS does not support bulk additions"
59 msgstr "EWS does not support bulk additions"
60
61 #: ../src/calendar/e-cal-backend-ews.c:2147
62 msgid "EWS does not support bulk modifications"
63 msgstr "EWS does not support bulk modifications"
64
65 #: ../src/camel/camel-ews-folder.c:267
22 #: ../org.gnome.Evolution-ews.metainfo.xml.in.h:1
23 #: ../src/camel/camel-ews-provider.c:81
24 #: ../src/configuration/e-ews-config-lookup.c:251
25 msgid "Exchange Web Services"
26 msgstr "Exchange Web Services"
27
28 #: ../org.gnome.Evolution-ews.metainfo.xml.in.h:2
29 #: ../src/camel/camel-ews-provider.c:83
30 msgid "For accessing Exchange servers using Web Services"
31 msgstr "For accessing Exchange servers using Web Services"
32
33 #: ../src/addressbook/e-book-backend-ews.c:2971
34 #| msgid "Failed to parse oab XML"
35 msgid "Failed to update GAL:"
36 msgstr "Failed to update GAL:"
37
38 #: ../src/addressbook/e-book-backend-ews.c:3132
39 msgid ""
40 "Cannot save contact list, it’s only supported on EWS Server 2010 or later"
41 msgstr ""
42 "Cannot save contact list, it’s only supported on EWS Server 2010 or later"
43
44 #: ../src/addressbook/e-book-backend-ews.c:3225
45 #| msgid "Failed to parse oab XML"
46 msgid "Failed to set contact photo:"
47 msgstr "Failed to set contact photo:"
48
49 #: ../src/calendar/e-cal-backend-ews.c:1591
50 msgctxt "FreeBusyType"
51 msgid "Free"
52 msgstr "Free"
53
54 #: ../src/calendar/e-cal-backend-ews.c:1594
55 msgctxt "FreeBusyType"
56 msgid "Busy"
57 msgstr "Busy"
58
59 #: ../src/calendar/e-cal-backend-ews.c:1596
60 #| msgid "Out of Office"
61 msgctxt "FreeBusyType"
62 msgid "Out of Office"
63 msgstr "Out of Office"
64
65 #: ../src/calendar/e-cal-backend-ews.c:1598
66 msgctxt "FreeBusyType"
67 msgid "Tentative"
68 msgstr "Tentative"
69
70 #: ../src/calendar/e-cal-backend-ews.c:3211
71 #, c-format
72 msgid "Cannot find user “%s” between attendees"
73 msgstr "Cannot find user “%s” between attendees"
74
75 #: ../src/camel/camel-ews-folder.c:375
6676 #, c-format
6777 msgid "Unable to open mimecontent temporary file!"
6878 msgstr "Unable to open mimecontent temporary file!"
6979
70 #: ../src/camel/camel-ews-folder.c:275
80 #: ../src/camel/camel-ews-folder.c:383
7181 #, c-format
7282 msgid "Unable to generate parser from mimecontent!"
7383 msgstr "Unable to generate parser from mimecontent!"
7484
75 #: ../src/camel/camel-ews-folder.c:284
85 #: ../src/camel/camel-ews-folder.c:392
7686 #, c-format
7787 msgid "Unable to parse meeting request mimecontent!"
7888 msgstr "Unable to parse meeting request mimecontent!"
7989
80 #: ../src/camel/camel-ews-folder.c:344
90 #: ../src/camel/camel-ews-folder.c:451
8191 #, c-format
8292 msgid "Unable to create cache file"
8393 msgstr "Unable to create cache file"
8494
85 #: ../src/camel/camel-ews-folder.c:449 ../src/camel/camel-ews-folder.c:529
86 #, c-format
87 msgid "Unable to create cache path"
88 msgstr "Unable to create cache path"
89
90 #: ../src/camel/camel-ews-folder.c:539
91 #, c-format
92 msgid "Failed to move message cache file"
93 msgstr "Failed to move message cache file"
94
95 #: ../src/camel/camel-ews-folder.c:1140
95 #: ../src/camel/camel-ews-folder.c:585 ../src/camel/camel-ews-folder.c:678
96 #, c-format
97 #| msgid "Unable to create cache path"
98 msgid "Unable to create cache path “%s”: %s"
99 msgstr "Unable to create cache path “%s”: %s"
100
101 #. Translators: The first %s consists of the source file name,
102 #. the second %s of the destination file name and
103 #. the third %s of the error message.
104 #: ../src/camel/camel-ews-folder.c:692
105 #, c-format
106 #| msgid "Failed to move message cache file"
107 msgid "Failed to move message cache file from “%s” to “%s”: %s"
108 msgstr "Failed to move message cache file from “%s” to “%s”: %s"
109
110 #: ../src/camel/camel-ews-folder.c:1570
96111 #, c-format
97112 msgid "Could not load summary for %s"
98113 msgstr "Could not load summary for %s"
99114
100 #: ../src/camel/camel-ews-folder.c:1529
101 #, c-format
102 msgid "Cant perform actions on the folder while in offline mode"
103 msgstr "Can't perform actions on the folder while in offline mode"
104
105 #: ../src/camel/camel-ews-provider.c:48
115 #: ../src/camel/camel-ews-folder.c:2030
116 #, c-format
117 msgid "Refreshing folder “%s”"
118 msgstr "Refreshing folder “%s”"
119
120 #: ../src/camel/camel-ews-folder.c:2210
121 #, c-format
122 #| msgid "Cant perform actions on the folder while in offline mode"
123 msgid "Cannot perform actions on the folder while in offline mode"
124 msgstr "Cannot perform actions on the folder while in offline mode"
125
126 #: ../src/camel/camel-ews-provider.c:47
106127 msgid "Checking for new mail"
107128 msgstr "Checking for new mail"
108129
109 #: ../src/camel/camel-ews-provider.c:50
130 #: ../src/camel/camel-ews-provider.c:49
110131 msgid "C_heck for new messages in all folders"
111132 msgstr "C_heck for new messages in all folders"
112133
113 #: ../src/camel/camel-ews-provider.c:53
134 #: ../src/camel/camel-ews-provider.c:51
135 msgid "_Listen for server change notifications"
136 msgstr "_Listen for server change notifications"
137
138 #: ../src/camel/camel-ews-provider.c:54
114139 msgid "Options"
115140 msgstr "Options"
116141
117 #: ../src/camel/camel-ews-provider.c:55
142 #: ../src/camel/camel-ews-provider.c:56
118143 msgid "_Apply filters to new messages in Inbox on this server"
119144 msgstr "_Apply filters to new messages in Inbox on this server"
120145
121 #: ../src/camel/camel-ews-provider.c:57
146 #: ../src/camel/camel-ews-provider.c:58
122147 msgid "Check new messages for _Junk contents"
123148 msgstr "Check new messages for _Junk contents"
124149
125 #: ../src/camel/camel-ews-provider.c:59
150 #: ../src/camel/camel-ews-provider.c:60
126151 msgid "Only check for Junk messages in the IN_BOX folder"
127152 msgstr "Only check for Junk messages in the IN_BOX folder"
128153
129 #: ../src/camel/camel-ews-provider.c:61
130 msgid "Automatically synchroni_ze remote mail locally"
131 msgstr "Automatically synchroni_se remote mail locally"
132
133 #: ../src/camel/camel-ews-provider.c:64
154 #: ../src/camel/camel-ews-provider.c:62
155 #| msgid "Automatically synchroni_ze remote mail locally"
156 msgid "Synchroni_ze remote mail locally in all folders"
157 msgstr "Synchroni_se remote mail locally in all folders"
158
159 #: ../src/camel/camel-ews-provider.c:66
134160 msgid "Connection"
135161 msgstr "Connection"
136162
137163 #. Translators: '%s' is preplaced with a widget, where "
138164 #. * user can select how long the timeout should be.
139 #: ../src/camel/camel-ews-provider.c:68
165 #: ../src/camel/camel-ews-provider.c:70
140166 #, c-format
141167 msgid "Connection _timeout (in seconds) %s"
142168 msgstr "Connection _timeout (in seconds) %s"
143169
144 #: ../src/camel/camel-ews-provider.c:76
145 msgid "Exchange Web Services"
146 msgstr "Exchange Web Services"
147
148 #: ../src/camel/camel-ews-provider.c:78
149 msgid "For accessing Exchange servers using Web Services"
150 msgstr "For accessing Exchange servers using Web Services"
151
152 #: ../src/camel/camel-ews-provider.c:93
170 #: ../src/camel/camel-ews-provider.c:72
171 msgid "Override _User-Agent header value"
172 msgstr "Override _User-Agent header value"
173
174 #: ../src/camel/camel-ews-provider.c:98
153175 msgid "NTLM"
154176 msgstr "NTLM"
155177
156 #: ../src/camel/camel-ews-provider.c:95
178 #: ../src/camel/camel-ews-provider.c:100
157179 msgid ""
158180 "This option will connect to the Exchange server using a plaintext password "
159181 "with NTLM authentication."
161183 "This option will connect to the Exchange server using a plaintext password "
162184 "with NTLM authentication."
163185
164 #: ../src/camel/camel-ews-provider.c:103
186 #: ../src/camel/camel-ews-provider.c:108
165187 msgid "Basic"
166188 msgstr "Basic"
167189
168 #: ../src/camel/camel-ews-provider.c:105
190 #: ../src/camel/camel-ews-provider.c:110
169191 msgid ""
170192 "This option will connect to the Exchange server using a plaintext password "
171193 "with Basic authentication."
173195 "This option will connect to the Exchange server using a plaintext password "
174196 "with Basic authentication."
175197
176 #: ../src/camel/camel-ews-store.c:183
198 #: ../src/camel/camel-ews-provider.c:118
199 msgid "Kerberos"
200 msgstr "Kerberos"
201
202 #: ../src/camel/camel-ews-provider.c:120
203 #| msgid ""
204 #| "This option will connect to the Exchange server using a plaintext "
205 #| "password with Basic authentication."
206 msgid ""
207 "This option will connect to the Exchange server using a Kerberos/GSSAPI "
208 "authentication."
209 msgstr ""
210 "This option will connect to the Exchange server using a Kerberos/GSSAPI "
211 "authentication."
212
213 #: ../src/camel/camel-ews-store.c:335
177214 #, c-format
178215 msgid "Session has no storage path"
179216 msgstr "Session has no storage path"
180217
181 #: ../src/camel/camel-ews-store.c:281
218 #. Translators: This composes a "Public Folders" folder name for case when
219 #. * user has such in his store already. The %s is replaced with "Public Folders",
220 #. * the %d with counter, thus it composes name like "Public Folders_1"
221 #.
222 #: ../src/camel/camel-ews-store.c:372
223 #, c-format
224 #| msgctxt "ForeignFolders"
225 #| msgid "%s_%d"
226 msgctxt "PublicFolders"
227 msgid "%s_%d"
228 msgstr "%s_%d"
229
230 #. Translators: This composes a "Foreign Folders" folder name for case when
231 #. * user has such in his store already. The %s is replaced with "Foreign Folders",
232 #. * the %d with counter, thus it composes name like "Foreign Folders_1"
233 #.
234 #: ../src/camel/camel-ews-store.c:501
182235 #, c-format
183236 msgctxt "ForeignFolders"
184237 msgid "%s_%d"
185238 msgstr "%s_%d"
186239
187 #: ../src/camel/camel-ews-store.c:525
188 msgid "Authentication password not available"
189 msgstr "Authentication password not available"
190
191 #: ../src/camel/camel-ews-store.c:640
192 msgid "Query for authentication types is not supported"
193 msgstr "Query for authentication types is not supported"
194
195 #: ../src/camel/camel-ews-store.c:692
240 #: ../src/camel/camel-ews-store.c:647 ../src/camel/camel-ews-store.c:1250
241 #| msgid "Retrieving \"Out of Office\" settings"
242 msgid "Checking “Out of Office” settings"
243 msgstr "Checking “Out of Office” settings"
244
245 #. Translators: The "%s" is a service URL, provided by the server
246 #: ../src/camel/camel-ews-store.c:1320
247 #, c-format
248 msgid "Password will expire in %d day. Open “%s” to change it."
249 msgid_plural "Password will expire in %d days. Open “%s” to change it."
250 msgstr[0] "Password will expire in %d day. Open “%s” to change it."
251 msgstr[1] "Password will expire in %d days. Open “%s” to change it."
252
253 #: ../src/camel/camel-ews-store.c:1326
254 #, c-format
255 msgid "Password will expire in one day."
256 msgid_plural "Password will expire in %d days."
257 msgstr[0] "Password will expire in one day."
258 msgstr[1] "Password will expire in %d days."
259
260 #: ../src/camel/camel-ews-store.c:1545
261 msgid "Updating foreign folder structure"
262 msgstr "Updating foreign folder structure"
263
264 #: ../src/camel/camel-ews-store.c:1681
265 msgid "Updating foreign folders"
266 msgstr "Updating foreign folders"
267
268 #: ../src/camel/camel-ews-store.c:2075
196269 #, c-format
197270 msgid "No such folder: %s"
198271 msgstr "No such folder: %s"
199272
200 #: ../src/camel/camel-ews-store.c:839
201 msgid ""
202 "Cannot list folders available for subscription of Exchange Web Services "
203 "account, use 'Subscribe to folder of other user' context menu option above "
204 "the account node in the folder tree instead."
205 msgstr ""
206 "Cannot list folders available for subscription of Exchange Web Services "
207 "account, use 'Subscribe to folder of other user' context menu option above "
208 "the account node in the folder tree instead."
209
210 #: ../src/camel/camel-ews-store.c:932
211 #, c-format
212 msgid "Cannot create folder '%s', folder already exists"
213 msgstr "Cannot create folder '%s', folder already exists"
214
215 #: ../src/camel/camel-ews-store.c:947
273 #: ../src/camel/camel-ews-store.c:2373
274 #| msgid "Cannot subscribe EWS folders in offline mode"
275 msgid "Cannot list EWS public folders in offline mode"
276 msgstr "Cannot list EWS public folders in offline mode"
277
278 #: ../src/camel/camel-ews-store.c:2446
279 #| msgid "Cannot find folder ID for parent folder %s"
280 msgid "Cannot find any EWS public folders"
281 msgstr "Cannot find any EWS public folders"
282
283 #: ../src/camel/camel-ews-store.c:2555
284 #, c-format
285 #| msgid "Cannot create folder '%s', folder already exists"
286 msgid "Cannot create folder “%s”, folder already exists"
287 msgstr "Cannot create folder “%s”, folder already exists"
288
289 #: ../src/camel/camel-ews-store.c:2570
216290 #, c-format
217291 msgid "Parent folder %s does not exist"
218292 msgstr "Parent folder %s does not exist"
219293
220 #: ../src/camel/camel-ews-store.c:957
221 #, c-format
294 #: ../src/camel/camel-ews-store.c:2580
295 #, c-format
296 #| msgid ""
297 #| "Cannot create folder under '%s', it is used for folders of other users "
298 #| "only"
222299 msgid ""
223 "Cannot create folder under '%s', it is used for folders of other users only"
300 "Cannot create folder under “%s”, it is used for folders of other users only"
224301 msgstr ""
225 "Cannot create folder under '%s', it is used for folders of other users only"
226
227 #: ../src/camel/camel-ews-store.c:1026
302 "Cannot create folder under “%s”, it is used for folders of other users only"
303
304 #: ../src/camel/camel-ews-store.c:2590
305 #, c-format
306 #| msgid ""
307 #| "Cannot create folder under '%s', it is used for folders of other users "
308 #| "only"
309 msgid "Cannot create folder under “%s”, it is used for public folders only"
310 msgstr "Cannot create folder under “%s”, it is used for public folders only"
311
312 #: ../src/camel/camel-ews-store.c:2694
228313 #, c-format
229314 msgid "Folder does not exist"
230315 msgstr "Folder does not exist"
231316
232 #: ../src/camel/camel-ews-store.c:1035
233 #, c-format
234 msgid "Cannot remove folder '%s', it is used for folders of other users only"
235 msgstr "Cannot remove folder '%s', it is used for folders of other users only"
236
237 #: ../src/camel/camel-ews-store.c:1142
317 #: ../src/camel/camel-ews-store.c:2704
318 #, c-format
319 #| msgid ""
320 #| "Cannot remove folder '%s', it is used for folders of other users only"
321 msgid "Cannot remove folder “%s”, it is used for folders of other users only"
322 msgstr "Cannot remove folder “%s”, it is used for folders of other users only"
323
324 #: ../src/camel/camel-ews-store.c:2715
325 #, c-format
326 #| msgid ""
327 #| "Cannot remove folder '%s', it is used for folders of other users only"
328 msgid "Cannot remove folder “%s”, it is used for public folders only"
329 msgstr "Cannot remove folder “%s”, it is used for public folders only"
330
331 #: ../src/camel/camel-ews-store.c:2871
238332 #, c-format
239333 msgid "Folder %s does not exist"
240334 msgstr "Folder %s does not exist"
241335
242 #: ../src/camel/camel-ews-store.c:1152
336 #: ../src/camel/camel-ews-store.c:2880
243337 #, c-format
244338 msgid "No change key record for folder %s"
245339 msgstr "No change key record for folder %s"
246340
247 #: ../src/camel/camel-ews-store.c:1194
341 #: ../src/camel/camel-ews-store.c:2923
248342 #, c-format
249343 msgid "Cannot both rename and move a folder at the same time"
250344 msgstr "Cannot both rename and move a folder at the same time"
251345
252 #: ../src/camel/camel-ews-store.c:1230
346 #: ../src/camel/camel-ews-store.c:2957
253347 #, c-format
254348 msgid "Cannot find folder ID for parent folder %s"
255349 msgstr "Cannot find folder ID for parent folder %s"
256350
257 #: ../src/camel/camel-ews-store.c:1280 ../src/camel/camel-ews-transport.c:69
351 #: ../src/camel/camel-ews-store.c:3009 ../src/camel/camel-ews-transport.c:318
258352 #, c-format
259353 msgid "Exchange server %s"
260354 msgstr "Exchange server %s"
261355
262 #: ../src/camel/camel-ews-store.c:1283
356 #: ../src/camel/camel-ews-store.c:3012
263357 #, c-format
264358 msgid "Exchange service for %s on %s"
265359 msgstr "Exchange service for %s on %s"
266360
267 #: ../src/camel/camel-ews-store.c:1327
361 #: ../src/camel/camel-ews-store.c:3056
268362 #, c-format
269363 msgid "Could not locate Trash folder"
270364 msgstr "Could not locate Trash folder"
271365
272 #: ../src/camel/camel-ews-store.c:1362
366 #: ../src/camel/camel-ews-store.c:3116
273367 #, c-format
274368 msgid "Could not locate Junk folder"
275369 msgstr "Could not locate Junk folder"
276370
277 #: ../src/camel/camel-ews-store.c:1440
371 #: ../src/camel/camel-ews-store.c:3307
278372 msgid "Cannot subscribe EWS folders in offline mode"
279373 msgstr "Cannot subscribe EWS folders in offline mode"
280374
281 #: ../src/camel/camel-ews-store.c:1462
375 #: ../src/camel/camel-ews-store.c:3330
376 #, c-format
377 #| msgid "Cannot subscribe EWS folders in offline mode"
378 msgid "Cannot subscribe folder “%s”, no public folder available"
379 msgstr "Cannot subscribe folder “%s”, no public folder available"
380
381 #: ../src/camel/camel-ews-store.c:3340
382 #, c-format
383 #| msgid "Cannot subscribe EWS folders in offline mode"
384 msgid "Cannot subscribe folder “%s”, folder not found"
385 msgstr "Cannot subscribe folder “%s”, folder not found"
386
387 #: ../src/camel/camel-ews-store.c:3431
282388 msgid "Cannot unsubscribe EWS folders in offline mode"
283389 msgstr "Cannot unsubscribe EWS folders in offline mode"
284390
285 #: ../src/camel/camel-ews-store.c:1504
391 #: ../src/camel/camel-ews-store.c:3548
286392 #, c-format
287393 msgid "You must be working online to complete this operation"
288394 msgstr "You must be working online to complete this operation"
289395
290 #: ../src/camel/camel-ews-transport.c:72
396 #: ../src/camel/camel-ews-store.c:3592 ../src/camel/camel-ews-store.c:3629
397 #| msgid "Retrieving \"Out of Office\" settings"
398 msgid "Unsetting the “Out of Office” status"
399 msgstr "Unsetting the “Out of Office” status"
400
401 #: ../src/camel/camel-ews-transport.c:321
291402 #, c-format
292403 msgid "Exchange mail delivery via %s"
293404 msgstr "Exchange mail delivery via %s"
294405
295 #: ../src/camel/camel-ews-transport.c:120
406 #: ../src/camel/camel-ews-transport.c:370
296407 msgid "Cannot send message with no From address"
297408 msgstr "Cannot send message with no From address"
298409
299 #: ../src/camel/camel-ews-transport.c:126
410 #: ../src/camel/camel-ews-transport.c:376
300411 msgid "Exchange server cannot send message with multiple From addresses"
301412 msgstr "Exchange server cannot send message with multiple From addresses"
302413
303 #: ../src/camel/camel-ews-transport.c:137
414 #: ../src/camel/camel-ews-transport.c:386
304415 msgid "Failed to read From address"
305416 msgstr "Failed to read From address"
306417
307 #: ../src/camel/camel-ews-transport.c:149
308 #, c-format
309 msgid ""
310 "Exchange server cannot send message as '%s', when the account was configured "
311 "for address '%s'"
312 msgstr ""
313 "Exchange server cannot send message as '%s', when the account was configured "
314 "for address '%s'"
315
316 #: ../src/camel/camel-ews-transport.c:163
418 #: ../src/camel/camel-ews-transport.c:396
317419 #, c-format
318420 msgid "Service not connected"
319421 msgstr "Service not connected"
320422
321 #: ../src/collection/e-ews-backend.c:382
322 #: ../src/configuration/e-mail-config-ews-gal.c:268
423 #: ../src/collection/e-ews-backend.c:522
424 #: ../src/configuration/e-mail-config-ews-gal.c:274
323425 msgid "Global Address List"
324426 msgstr "Global Address List"
325427
326 #: ../src/collection/e-ews-backend.c:767
327 #, c-format
328 msgid "Could not determine a suitable folder class for a new folder named '%s'"
428 #: ../src/collection/e-ews-backend.c:959
429 #, c-format
430 #| msgid ""
431 #| "Could not determine a suitable folder class for a new folder named '%s'"
432 msgid "Could not determine a suitable folder class for a new folder named “%s”"
329433 msgstr ""
330 "Could not determine a suitable folder class for a new folder named '%s'"
331
332 #: ../src/collection/e-ews-backend.c:858
333 #, c-format
334 msgid "Data source '%s' does not represent an Exchange Web Services folder"
335 msgstr "Data source '%s' does not represent an Exchange Web Services folder"
336
337 #: ../src/configuration/e-ews-config-utils.c:510
338 #, c-format
339 msgid "Cannot edit permissions of folder '%s', choose other folder."
340 msgstr "Cannot edit permissions of folder '%s', choose other folder."
341
342 #: ../src/configuration/e-ews-config-utils.c:588
434 "Could not determine a suitable folder class for a new folder named “%s”"
435
436 #: ../src/collection/e-ews-backend.c:1047
437 #, c-format
438 #| msgid "Data source '%s' does not represent an Exchange Web Services folder"
439 msgid "Data source “%s” does not represent an Exchange Web Services folder"
440 msgstr "Data source “%s” does not represent an Exchange Web Services folder"
441
442 #: ../src/configuration/e-ews-config-lookup.c:192
443 #| msgid "Exchange Web Services"
444 msgid "Exchange Web Services autodiscovery"
445 msgstr "Exchange Web Services autodiscovery"
446
447 #: ../src/configuration/e-ews-config-lookup.c:235
448 #, c-format
449 #| msgid "_User:"
450 msgid "User: %s"
451 msgstr "User: %s"
452
453 #: ../src/configuration/e-ews-config-lookup.c:240
454 #, c-format
455 #| msgid "_Host URL:"
456 msgid "Host URL: %s"
457 msgstr "Host URL: %s"
458
459 #: ../src/configuration/e-ews-config-lookup.c:245
460 #, c-format
461 #| msgid "OAB U_RL:"
462 msgid "OAB URL: %s"
463 msgstr "OAB URL: %s"
464
465 #: ../src/configuration/e-ews-config-lookup.c:322
466 #, c-format
467 msgid "Requires user password to continue"
468 msgstr "Requires user password to continue"
469
470 #: ../src/configuration/e-ews-config-utils.c:574
471 #| msgid "Folder ID:"
472 msgid "Folder"
473 msgstr "Folder"
474
475 #: ../src/configuration/e-ews-config-utils.c:584
476 msgid "Size"
477 msgstr "Size"
478
479 #: ../src/configuration/e-ews-config-utils.c:622
480 #: ../src/configuration/e-ews-config-utils.c:627
481 msgid "Unable to retrieve folder size information"
482 msgstr "Unable to retrieve folder size information"
483
484 #: ../src/configuration/e-ews-config-utils.c:754
485 #| msgctxt "Permissions"
486 #| msgid "Folder visible"
487 msgid "Folder Sizes"
488 msgstr "Folder Sizes"
489
490 #: ../src/configuration/e-ews-config-utils.c:757
491 msgid "_Close"
492 msgstr "_Close"
493
494 #: ../src/configuration/e-ews-config-utils.c:771
495 msgid "Fetching folder list…"
496 msgstr "Fetching folder list…"
497
498 #: ../src/configuration/e-ews-config-utils.c:924
499 #, c-format
500 #| msgid "Cannot edit permissions of folder '%s', choose other folder."
501 msgid "Cannot edit permissions of folder “%s”, choose other folder."
502 msgstr "Cannot edit permissions of folder “%s”, choose other folder."
503
504 #: ../src/configuration/e-ews-config-utils.c:1001
505 #| msgctxt "Permissions"
506 #| msgid "Folder visible"
507 msgid "Folder Sizes..."
508 msgstr "Folder Sizes..."
509
510 #: ../src/configuration/e-ews-config-utils.c:1008
343511 msgid "Subscribe to folder of other user..."
344512 msgstr "Subscribe to folder of other user…"
345513
346 #: ../src/configuration/e-ews-config-utils.c:597
347 #: ../src/configuration/e-ews-config-utils.c:878
348 #: ../src/configuration/e-ews-config-utils.c:909
349 #: ../src/configuration/e-ews-config-utils.c:940
350 #: ../src/configuration/e-ews-config-utils.c:971
514 #: ../src/configuration/e-ews-config-utils.c:1017
515 #: ../src/configuration/e-ews-config-utils.c:1321
516 #: ../src/configuration/e-ews-config-utils.c:1352
517 #: ../src/configuration/e-ews-config-utils.c:1383
518 #: ../src/configuration/e-ews-config-utils.c:1414
351519 msgid "Permissions..."
352520 msgstr "Permissions…"
353521
354 #: ../src/configuration/e-ews-config-utils.c:599
522 #: ../src/configuration/e-ews-config-utils.c:1019
355523 msgid "Edit EWS folder permissions"
356524 msgstr "Edit EWS folder permissions"
357525
358 #: ../src/configuration/e-ews-config-utils.c:880
526 #: ../src/configuration/e-ews-config-utils.c:1323
359527 msgid "Edit EWS calendar permissions"
360528 msgstr "Edit EWS calendar permissions"
361529
362 #: ../src/configuration/e-ews-config-utils.c:911
530 #: ../src/configuration/e-ews-config-utils.c:1354
363531 msgid "Edit EWS tasks permissions"
364532 msgstr "Edit EWS tasks permissions"
365533
366 #: ../src/configuration/e-ews-config-utils.c:942
534 #: ../src/configuration/e-ews-config-utils.c:1385
367535 msgid "Edit EWS memos permissions"
368536 msgstr "Edit EWS memos permissions"
369537
370 #: ../src/configuration/e-ews-config-utils.c:973
538 #: ../src/configuration/e-ews-config-utils.c:1416
371539 msgid "Edit EWS contacts permissions"
372540 msgstr "Edit EWS contacts permissions"
373541
374 #: ../src/configuration/e-ews-edit-folder-permissions.c:87
375 #: ../src/configuration/e-mail-config-ews-delegates-page.c:502
542 #: ../src/configuration/e-ews-edit-folder-permissions.c:85
543 #: ../src/configuration/e-mail-config-ews-delegates-page.c:416
376544 msgctxt "PermissionsLevel"
377545 msgid "None"
378546 msgstr "None"
379547
380 #: ../src/configuration/e-ews-edit-folder-permissions.c:88
548 #: ../src/configuration/e-ews-edit-folder-permissions.c:86
381549 msgctxt "PermissionsLevel"
382550 msgid "Owner"
383551 msgstr "Owner"
384552
385 #: ../src/configuration/e-ews-edit-folder-permissions.c:98
553 #: ../src/configuration/e-ews-edit-folder-permissions.c:96
386554 msgctxt "PermissionsLevel"
387555 msgid "Publishing Editor"
388556 msgstr "Publishing Editor"
389557
390 #: ../src/configuration/e-ews-edit-folder-permissions.c:107
558 #: ../src/configuration/e-ews-edit-folder-permissions.c:105
391559 msgctxt "PermissionsLevel"
392560 msgid "Editor"
393561 msgstr "Editor"
394562
395 #: ../src/configuration/e-ews-edit-folder-permissions.c:115
563 #: ../src/configuration/e-ews-edit-folder-permissions.c:113
396564 msgctxt "PermissionsLevel"
397565 msgid "Publishing Author"
398566 msgstr "Publishing Author"
399567
400 #: ../src/configuration/e-ews-edit-folder-permissions.c:122
568 #: ../src/configuration/e-ews-edit-folder-permissions.c:120
401569 msgctxt "PermissionsLevel"
402570 msgid "Author"
403571 msgstr "Author"
404572
405 #: ../src/configuration/e-ews-edit-folder-permissions.c:128
573 #: ../src/configuration/e-ews-edit-folder-permissions.c:126
406574 msgctxt "PermissionsLevel"
407575 msgid "Nonediting Author"
408576 msgstr "Nonediting Author"
409577
410 #: ../src/configuration/e-ews-edit-folder-permissions.c:133
578 #: ../src/configuration/e-ews-edit-folder-permissions.c:131
411579 msgctxt "PermissionsLevel"
412580 msgid "Reviewer"
413581 msgstr "Reviewer"
414582
415 #: ../src/configuration/e-ews-edit-folder-permissions.c:136
583 #: ../src/configuration/e-ews-edit-folder-permissions.c:134
416584 msgctxt "PermissionsLevel"
417585 msgid "Contributor"
418586 msgstr "Contributor"
419587
420 #: ../src/configuration/e-ews-edit-folder-permissions.c:139
588 #: ../src/configuration/e-ews-edit-folder-permissions.c:137
421589 msgctxt "PermissionsLevel"
422590 msgid "Free/Busy time"
423591 msgstr "Free/Busy time"
424592
425 #: ../src/configuration/e-ews-edit-folder-permissions.c:141
593 #: ../src/configuration/e-ews-edit-folder-permissions.c:139
426594 msgctxt "PermissionsLevel"
427595 msgid "Free/Busy time, subject, location"
428596 msgstr "Free/Busy time, subject, location"
429597
430 #: ../src/configuration/e-ews-edit-folder-permissions.c:143
431 #: ../src/configuration/e-mail-config-ews-delegates-page.c:523
598 #: ../src/configuration/e-ews-edit-folder-permissions.c:141
599 #: ../src/configuration/e-mail-config-ews-delegates-page.c:439
432600 msgctxt "PermissionsLevel"
433601 msgid "Custom"
434602 msgstr "Custom"
435603
436 #: ../src/configuration/e-ews-edit-folder-permissions.c:267
604 #: ../src/configuration/e-ews-edit-folder-permissions.c:265
437605 msgid "Writing folder permissions, please wait..."
438606 msgstr "Writing folder permissions, please wait…"
439607
440 #: ../src/configuration/e-ews-edit-folder-permissions.c:759
608 #: ../src/configuration/e-ews-edit-folder-permissions.c:779
441609 msgctxt "User"
442610 msgid "Anonymous"
443611 msgstr "Anonymous"
444612
445 #: ../src/configuration/e-ews-edit-folder-permissions.c:762
613 #: ../src/configuration/e-ews-edit-folder-permissions.c:782
446614 msgctxt "User"
447615 msgid "Default"
448616 msgstr "Default"
449617
450 #: ../src/configuration/e-ews-edit-folder-permissions.c:768
618 #: ../src/configuration/e-ews-edit-folder-permissions.c:788
451619 msgctxt "User"
452620 msgid "Unknown"
453621 msgstr "Unknown"
454622
455 #: ../src/configuration/e-ews-edit-folder-permissions.c:849
456 #: ../src/configuration/e-ews-search-user.c:427
457 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1078
623 #: ../src/configuration/e-ews-edit-folder-permissions.c:869
624 #: ../src/configuration/e-ews-search-user.c:429
625 #: ../src/configuration/e-mail-config-ews-delegates-page.c:993
458626 msgid "Name"
459627 msgstr "Name"
460628
461 #: ../src/configuration/e-ews-edit-folder-permissions.c:855
629 #: ../src/configuration/e-ews-edit-folder-permissions.c:875
462630 msgid "Permission level"
463631 msgstr "Permission level"
464632
465 #: ../src/configuration/e-ews-edit-folder-permissions.c:907
633 #: ../src/configuration/e-ews-edit-folder-permissions.c:927
466634 msgid "Edit EWS folder permissions..."
467635 msgstr "Edit EWS folder permissions…"
468636
469 #: ../src/configuration/e-ews-edit-folder-permissions.c:932
470 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:621
637 #: ../src/configuration/e-ews-edit-folder-permissions.c:952
638 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:674
471639 msgid "Account:"
472640 msgstr "Account:"
473641
474 #: ../src/configuration/e-ews-edit-folder-permissions.c:960
642 #: ../src/configuration/e-ews-edit-folder-permissions.c:980
475643 msgid "Folder name:"
476644 msgstr "Folder name:"
477645
478 #: ../src/configuration/e-ews-edit-folder-permissions.c:983
646 #: ../src/configuration/e-ews-edit-folder-permissions.c:1003
479647 msgid "Folder ID:"
480648 msgstr "Folder ID:"
481649
482 #: ../src/configuration/e-ews-edit-folder-permissions.c:1047
650 #: ../src/configuration/e-ews-edit-folder-permissions.c:1067
483651 msgid "Permissions"
484652 msgstr "Permissions"
485653
486 #: ../src/configuration/e-ews-edit-folder-permissions.c:1069
654 #: ../src/configuration/e-ews-edit-folder-permissions.c:1089
487655 msgid "Permi_ssion level:"
488656 msgstr "Permi_ssion level:"
489657
490 #: ../src/configuration/e-ews-edit-folder-permissions.c:1103
658 #: ../src/configuration/e-ews-edit-folder-permissions.c:1123
491659 msgctxt "Permissions"
492660 msgid "Read"
493661 msgstr "Read"
494662
495 #: ../src/configuration/e-ews-edit-folder-permissions.c:1115
496 #: ../src/configuration/e-ews-edit-folder-permissions.c:1182
663 #: ../src/configuration/e-ews-edit-folder-permissions.c:1135
664 #: ../src/configuration/e-ews-edit-folder-permissions.c:1202
497665 msgctxt "Permissions"
498666 msgid "None"
499667 msgstr "None"
500668
501 #: ../src/configuration/e-ews-edit-folder-permissions.c:1121
669 #: ../src/configuration/e-ews-edit-folder-permissions.c:1141
502670 msgctxt "Permissions"
503671 msgid "Free/Busy time"
504672 msgstr "Free/Busy time"
505673
506 #: ../src/configuration/e-ews-edit-folder-permissions.c:1126
674 #: ../src/configuration/e-ews-edit-folder-permissions.c:1146
507675 msgctxt "Permissions"
508676 msgid "Free/Busy time, subject, location"
509677 msgstr "Free/Busy time, subject, location"
510678
511 #: ../src/configuration/e-ews-edit-folder-permissions.c:1132
679 #: ../src/configuration/e-ews-edit-folder-permissions.c:1152
512680 msgctxt "Permissions"
513681 msgid "Full Details"
514682 msgstr "Full Details"
515683
516 #: ../src/configuration/e-ews-edit-folder-permissions.c:1138
684 #: ../src/configuration/e-ews-edit-folder-permissions.c:1158
517685 msgctxt "Permissions"
518686 msgid "Write"
519687 msgstr "Write"
520688
521 #: ../src/configuration/e-ews-edit-folder-permissions.c:1150
689 #: ../src/configuration/e-ews-edit-folder-permissions.c:1170
522690 msgctxt "Permissions"
523691 msgid "Create items"
524692 msgstr "Create items"
525693
526 #: ../src/configuration/e-ews-edit-folder-permissions.c:1154
694 #: ../src/configuration/e-ews-edit-folder-permissions.c:1174
527695 msgctxt "Permissions"
528696 msgid "Create subfolders"
529697 msgstr "Create subfolders"
530698
531 #: ../src/configuration/e-ews-edit-folder-permissions.c:1158
699 #: ../src/configuration/e-ews-edit-folder-permissions.c:1178
532700 msgctxt "Permissions"
533701 msgid "Edit own"
534702 msgstr "Edit own"
535703
536 #: ../src/configuration/e-ews-edit-folder-permissions.c:1162
704 #: ../src/configuration/e-ews-edit-folder-permissions.c:1182
537705 msgctxt "Permissions"
538706 msgid "Edit all"
539707 msgstr "Edit all"
540708
541 #: ../src/configuration/e-ews-edit-folder-permissions.c:1170
709 #: ../src/configuration/e-ews-edit-folder-permissions.c:1190
542710 msgctxt "Permissions"
543711 msgid "Delete items"
544712 msgstr "Delete items"
545713
546 #: ../src/configuration/e-ews-edit-folder-permissions.c:1187
714 #: ../src/configuration/e-ews-edit-folder-permissions.c:1207
547715 msgctxt "Permissions"
548716 msgid "Own"
549717 msgstr "Own"
550718
551 #: ../src/configuration/e-ews-edit-folder-permissions.c:1192
719 #: ../src/configuration/e-ews-edit-folder-permissions.c:1212
552720 msgctxt "Permissions"
553721 msgid "All"
554722 msgstr "All"
555723
556 #: ../src/configuration/e-ews-edit-folder-permissions.c:1198
724 #: ../src/configuration/e-ews-edit-folder-permissions.c:1218
557725 msgctxt "Permissions"
558726 msgid "Other"
559727 msgstr "Other"
560728
561 #: ../src/configuration/e-ews-edit-folder-permissions.c:1210
729 #: ../src/configuration/e-ews-edit-folder-permissions.c:1230
562730 msgctxt "Permissions"
563731 msgid "Folder owner"
564732 msgstr "Folder owner"
565733
566 #: ../src/configuration/e-ews-edit-folder-permissions.c:1214
734 #: ../src/configuration/e-ews-edit-folder-permissions.c:1234
567735 msgctxt "Permissions"
568736 msgid "Folder contact"
569737 msgstr "Folder contact"
570738
571 #: ../src/configuration/e-ews-edit-folder-permissions.c:1218
739 #: ../src/configuration/e-ews-edit-folder-permissions.c:1238
572740 msgctxt "Permissions"
573741 msgid "Folder visible"
574742 msgstr "Folder visible"
575743
576 #: ../src/configuration/e-ews-edit-folder-permissions.c:1291
744 #: ../src/configuration/e-ews-edit-folder-permissions.c:1311
577745 msgid "Reading folder permissions, please wait..."
578746 msgstr "Reading folder permissions, please wait…"
579747
580 #: ../src/configuration/e-ews-search-user.c:208
748 #: ../src/configuration/e-ews-ooo-notificator.c:182
749 msgid "Unset on Server"
750 msgstr "Unset on Server"
751
752 #: ../src/configuration/e-ews-ooo-notificator.c:183
753 #| msgid "Retrieving \"Out of Office\" settings"
754 msgid "Unset the “Out of Office” status"
755 msgstr "Unset the “Out of Office” status"
756
757 #: ../src/configuration/e-ews-search-user.c:206
581758 #, c-format
582759 msgid "No users found, only one contact"
583760 msgid_plural "No users found, only %d contacts"
584761 msgstr[0] "No users found, only one contact"
585762 msgstr[1] "No users found, only %d contacts"
586763
587 #: ../src/configuration/e-ews-search-user.c:213
764 #: ../src/configuration/e-ews-search-user.c:211
588765 msgid "No users found"
589766 msgstr "No users found"
590767
591 #: ../src/configuration/e-ews-search-user.c:217
768 #: ../src/configuration/e-ews-search-user.c:215
592769 #, c-format
593770 msgid "Found one user"
594771 msgid_plural "Found %d users"
595772 msgstr[0] "Found one user"
596773 msgstr[1] "Found %d users"
597774
598 #: ../src/configuration/e-ews-search-user.c:223
775 #: ../src/configuration/e-ews-search-user.c:221
599776 #, c-format
600777 msgid "Found more than 100 users, but showing only first %d"
601778 msgid_plural "Found more than 100 users, but showing only first %d"
602779 msgstr[0] "Found more than 100 users, but showing only first %d"
603780 msgstr[1] "Found more than 100 users, but showing only first %d"
604781
605 #: ../src/configuration/e-ews-search-user.c:353
606 #: ../src/configuration/e-ews-search-user.c:536
782 #: ../src/configuration/e-ews-search-user.c:355
783 #: ../src/configuration/e-ews-search-user.c:538
607784 msgid "Search for a user"
608785 msgstr "Search for a user"
609786
610 #: ../src/configuration/e-ews-search-user.c:433
787 #: ../src/configuration/e-ews-search-user.c:363
788 msgid "Searching..."
789 msgstr "Searching…"
790
791 #: ../src/configuration/e-ews-search-user.c:435
611792 msgid "E-mail"
612793 msgstr "E-mail"
613794
614 #: ../src/configuration/e-ews-search-user.c:470
795 #: ../src/configuration/e-ews-search-user.c:472
615796 msgid "Choose EWS user..."
616797 msgstr "Choose EWS user…"
617798
618 #: ../src/configuration/e-ews-search-user.c:493
799 #: ../src/configuration/e-ews-search-user.c:495
619800 msgid "_Search:"
620801 msgstr "_Search:"
621802
622 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:96
623 #: ../src/server/e-ews-folder.c:584
624 #, c-format
625 msgid "Cannot add folder, folder already exists as '%s'"
626 msgstr "Cannot add folder, folder already exists as '%s'"
803 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:97
804 #: ../src/server/e-ews-folder.c:773
805 #, c-format
806 #| msgid "Cannot add folder, folder already exists as '%s'"
807 msgid "Cannot add folder, folder already exists as “%s”"
808 msgstr "Cannot add folder, folder already exists as “%s”"
627809
628810 #. Translators: The '%s' is replaced with user name, to whom the foreign mailbox belongs.
629 #. * Example result: "Mailbox - John Smith"
811 #. * Example result: "Mailbox — John Smith"
630812 #.
631 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:106
632 #, c-format
813 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:107
814 #, c-format
815 #| msgctxt "ForeignFolder"
816 #| msgid "Mailbox - %s"
633817 msgctxt "ForeignFolder"
634 msgid "Mailbox - %s"
635 msgstr "Mailbox - %s"
636
637 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:264
818 msgid "Mailbox — %s"
819 msgstr "Mailbox — %s"
820
821 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:275
638822 msgid "Cannot test foreign folder availability while in offline mode"
639823 msgstr "Cannot test foreign folder availability while in offline mode"
640824
641 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:289
642 #, c-format
643 msgid "User '%s' was not found on the server"
644 msgstr "User '%s' was not found on the server"
645
646 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:325
647 #, c-format
648 msgid "User name '%s' is ambiguous, specify it more precisely, please"
649 msgstr "User name '%s' is ambiguous, specify it more precisely, please"
650
651 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:347
652 #, c-format
825 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:300
826 #, c-format
827 #| msgid "User '%s' was not found on the server"
828 msgid "User “%s” was not found on the server"
829 msgstr "User “%s” was not found on the server"
830
831 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:336
832 #, c-format
833 #| msgid "User name '%s' is ambiguous, specify it more precisely, please"
834 msgid "User name “%s” is ambiguous, specify it more precisely, please"
835 msgstr "User name “%s” is ambiguous, specify it more precisely, please"
836
837 #. Translators: This is used as a calendar name; it constructs "User Name - Availability" string shown in UI
838 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:374
839 msgid "Availability"
840 msgstr "Availability"
841
842 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:391
843 #, c-format
844 #| msgid ""
845 #| "Folder '%s' not found. Either it does not exist or you do not have "
846 #| "permission to access it."
653847 msgid ""
654 "Folder '%s' not found. Either it does not exist or you do not have "
848 "Folder “%s” not found. Either it does not exist or you do not have "
655849 "permission to access it."
656850 msgstr ""
657 "Folder '%s' not found. Either it does not exist or you do not have "
851 "Folder “%s” not found. Either it does not exist or you do not have "
658852 "permission to access it."
659853
660 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:365
661 msgid "Cannot add folder, cannot determine folder's type"
662 msgstr "Cannot add folder, cannot determine folder's type"
854 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:410
855 #| msgid "Cannot add folder, cannot determine folder's type"
856 msgid "Cannot add folder, cannot determine folder’s type"
857 msgstr "Cannot add folder, cannot determine folder’s type"
663858
664859 #. Translators: This is used to name foreign folder.
665860 #. * The first '%s' is replaced with user name to whom the folder belongs,
666861 #. * the second '%s' is replaced with folder name.
667 #. * Example result: "John Smith - Calendar"
862 #. * Example result: "John Smith — Calendar"
668863 #.
669 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:410
864 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:455
670865 #, c-format
671866 msgctxt "ForeignFolder"
672 msgid "%s - %s"
673 msgstr "%s - %s"
867 msgid "%s — %s"
868 msgstr "%s — %s"
674869
675870 #. convert well-known names to their non-localized form
676 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:500
677 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:706
871 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:549
872 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:759
678873 msgid "Inbox"
679874 msgstr "Inbox"
680875
681 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:502
682 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:707
876 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:551
877 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:760
683878 msgid "Contacts"
684879 msgstr "Contacts"
685880
686 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:504
687 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:708
881 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:553
882 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:761
688883 msgid "Calendar"
689884 msgstr "Calendar"
690885
691 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:506
692 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:709
886 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:555
887 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:762
888 #| msgctxt "PermissionsLevel"
889 #| msgid "Free/Busy time"
890 msgid "Free/Busy as Calendar"
891 msgstr "Free/Busy as Calendar"
892
893 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:557
894 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:763
693895 msgid "Memos"
694896 msgstr "Memos"
695897
696 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:508
697 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:710
898 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:559
899 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:764
698900 msgid "Tasks"
699901 msgstr "Tasks"
700902
701 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:524
702 #, c-format
703 msgid "Testing availability of folder '%s' of user '%s', please wait..."
704 msgstr "Testing availability of folder '%s' of user '%s', please wait…"
705
706 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:600
903 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:576
904 #, c-format
905 #| msgid "Testing availability of folder '%s' of user '%s', please wait..."
906 msgid "Testing availability of folder “%s” of user “%s”, please wait..."
907 msgstr "Testing availability of folder “%s” of user “%s”, please wait..."
908
909 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:653
707910 msgid "Subscribe to folder of other EWS user..."
708911 msgstr "Subscribe to folder of other EWS user…"
709912
710 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:651
913 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:704
711914 msgid "User"
712915 msgstr "User"
713916
714 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:658
917 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:711
715918 msgid "_User:"
716919 msgstr "_User:"
717920
718 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:673
921 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:726
719922 msgid "C_hoose..."
720923 msgstr "C_hoose…"
721924
722 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:689
925 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:742
723926 msgid "_Folder name:"
724927 msgstr "_Folder name:"
725928
726 #: ../src/configuration/e-mail-config-ews-autodiscover.c:126
929 #: ../src/configuration/e-ews-subscribe-foreign-folder.c:773
930 #| msgctxt "Permissions"
931 #| msgid "Create subfolders"
932 msgid "Include _subfolders"
933 msgstr "Include _subfolders"
934
935 #: ../src/configuration/e-mail-config-ews-autodiscover.c:229
727936 msgid "Querying Autodiscover service"
728937 msgstr "Querying Autodiscover service"
729938
730 #: ../src/configuration/e-mail-config-ews-autodiscover.c:209
939 #: ../src/configuration/e-mail-config-ews-autodiscover.c:326
731940 msgid "Fetch _URL"
732941 msgstr "Fetch _URL"
733942
734 #: ../src/configuration/e-mail-config-ews-backend.c:109
943 #: ../src/configuration/e-mail-config-ews-backend.c:178
735944 msgid "Configuration"
736945 msgstr "Configuration"
737946
738 #: ../src/configuration/e-mail-config-ews-backend.c:127
947 #: ../src/configuration/e-mail-config-ews-backend.c:196
739948 msgid "User_name:"
740949 msgstr "User_name:"
741950
742 #: ../src/configuration/e-mail-config-ews-backend.c:141
951 #: ../src/configuration/e-mail-config-ews-backend.c:210
743952 msgid "_Host URL:"
744953 msgstr "_Host URL:"
745954
746 #: ../src/configuration/e-mail-config-ews-backend.c:160
955 #: ../src/configuration/e-mail-config-ews-backend.c:229
747956 msgid "OAB U_RL:"
748957 msgstr "OAB U_RL:"
749958
750 #: ../src/configuration/e-mail-config-ews-backend.c:174
959 #: ../src/configuration/e-mail-config-ews-backend.c:243
960 msgid "Open _Mailbox of other user"
961 msgstr "Open _Mailbox of other user"
962
963 #: ../src/configuration/e-mail-config-ews-backend.c:277
964 #| msgid "Searching..."
965 msgid "S_earch..."
966 msgstr "S_earch..."
967
968 #: ../src/configuration/e-mail-config-ews-backend.c:288
751969 msgid "Authentication"
752970 msgstr "Authentication"
753971
754 #: ../src/configuration/e-mail-config-ews-gal.c:215
755 msgid "Locating offline address books"
756 msgstr "Locating offline address books"
757
758 #: ../src/configuration/e-mail-config-ews-gal.c:295
759 msgid "Cache o_ffline address book"
760 msgstr "Cache o_ffline address book"
761
762 #: ../src/configuration/e-mail-config-ews-gal.c:321
763 msgid "Select ad_dress list:"
764 msgstr "Select ad_dress list:"
765
766 #: ../src/configuration/e-mail-config-ews-gal.c:345
767 msgid "Fetch List"
768 msgstr "Fetch List"
769
770 #: ../src/configuration/e-mail-config-ews-delegates-page.c:503
972 #: ../src/configuration/e-mail-config-ews-backend.c:315
973 msgid "_Override Office365 OAuth2 settings"
974 msgstr "_Override Office365 OAuth2 settings"
975
976 #: ../src/configuration/e-mail-config-ews-backend.c:319
977 msgid "Help…"
978 msgstr "Help…"
979
980 #. Translators: 'Tenant' here means a term used by Microsoft to identify a company or organization in an Office 365 world.
981 #. You probably do not want to translate it. More for example here: https://powerbi.microsoft.com/en-us/blog/what-is-a-tenant/
982 #: ../src/configuration/e-mail-config-ews-backend.c:328
983 msgid "_Tenant:"
984 msgstr "_Tenant:"
985
986 #. Translators: 'Tenant' here means a term used by Microsoft to identify a company or organization in an Office 365 world.
987 #. You probably do not want to translate it. More for example here: https://powerbi.microsoft.com/en-us/blog/what-is-a-tenant/
988 #: ../src/configuration/e-mail-config-ews-backend.c:353
989 msgid "There is not set any default tenant"
990 msgstr "There is not set any default tenant"
991
992 #. Translators: 'Tenant' here means a term used by Microsoft to identify a company or organization in an Office 365 world.
993 #. You probably do not want to translate it. More for example here: https://powerbi.microsoft.com/en-us/blog/what-is-a-tenant/
994 #: ../src/configuration/e-mail-config-ews-backend.c:356
995 #, c-format
996 msgid "Default tenant is “%s”"
997 msgstr "Default tenant is “%s”"
998
999 #: ../src/configuration/e-mail-config-ews-backend.c:358
1000 msgid "Application I_D:"
1001 msgstr "Application I_D:"
1002
1003 #: ../src/configuration/e-mail-config-ews-backend.c:381
1004 msgid "There is not set any default application ID"
1005 msgstr "There is not set any default application ID"
1006
1007 #: ../src/configuration/e-mail-config-ews-backend.c:382
1008 #, c-format
1009 msgid "Default application ID is “%s”"
1010 msgstr "Default application ID is “%s”"
1011
1012 #: ../src/configuration/e-mail-config-ews-backend.c:384
1013 msgid "_Redirect URI:"
1014 msgstr "_Redirect URI:"
1015
1016 #: ../src/configuration/e-mail-config-ews-backend.c:406
1017 #: ../src/configuration/e-mail-config-ews-backend.c:409
1018 #, c-format
1019 msgid "Default redirect URI is “%s”"
1020 msgstr "Default redirect URI is “%s”"
1021
1022 #: ../src/configuration/e-mail-config-ews-backend.c:581
1023 #| msgid "URL cannot be NULL"
1024 msgid "Host URL cannot be empty"
1025 msgstr "Host URL cannot be empty"
1026
1027 #: ../src/configuration/e-mail-config-ews-backend.c:586
1028 msgid "User name cannot be empty"
1029 msgstr "User name cannot be empty"
1030
1031 #. Translators: 'Tenant' here means a term used by Microsoft to identify a company or organization in an Office 365 world.
1032 #. You probably do not want to translate it. More for example here: https://powerbi.microsoft.com/en-us/blog/what-is-a-tenant/
1033 #: ../src/configuration/e-mail-config-ews-backend.c:604
1034 msgid "Tenant cannot be empty"
1035 msgstr "Tenant cannot be empty"
1036
1037 #: ../src/configuration/e-mail-config-ews-backend.c:609
1038 msgid "Application ID cannot be empty"
1039 msgstr "Application ID cannot be empty"
1040
1041 #: ../src/configuration/e-mail-config-ews-delegates-page.c:417
7711042 msgctxt "PermissionsLevel"
7721043 msgid "Reviewer (can read items)"
7731044 msgstr "Reviewer (can read items)"
7741045
775 #: ../src/configuration/e-mail-config-ews-delegates-page.c:504
1046 #: ../src/configuration/e-mail-config-ews-delegates-page.c:418
7761047 msgctxt "PermissionsLevel"
7771048 msgid "Author (can read and create items)"
7781049 msgstr "Author (can read and create items)"
7791050
780 #: ../src/configuration/e-mail-config-ews-delegates-page.c:505
1051 #: ../src/configuration/e-mail-config-ews-delegates-page.c:419
7811052 msgctxt "PermissionsLevel"
7821053 msgid "Editor (can read, create and modify items)"
7831054 msgstr "Editor (can read, create and modify items)"
7841055
785 #: ../src/configuration/e-mail-config-ews-delegates-page.c:608
1056 #: ../src/configuration/e-mail-config-ews-delegates-page.c:524
7861057 msgid "Delegate permissions"
7871058 msgstr "Delegate permissions"
7881059
789 #: ../src/configuration/e-mail-config-ews-delegates-page.c:626
1060 #: ../src/configuration/e-mail-config-ews-delegates-page.c:542
7901061 msgid "C_alendar"
7911062 msgstr "C_alendar"
7921063
793 #: ../src/configuration/e-mail-config-ews-delegates-page.c:629
1064 #: ../src/configuration/e-mail-config-ews-delegates-page.c:545
7941065 msgid "_Delegate receives copies of meeting-related messages sent to me"
7951066 msgstr "_Delegate receives copies of meeting-related messages sent to me"
7961067
797 #: ../src/configuration/e-mail-config-ews-delegates-page.c:634
1068 #: ../src/configuration/e-mail-config-ews-delegates-page.c:550
7981069 msgid "_Tasks"
7991070 msgstr "_Tasks"
8001071
801 #: ../src/configuration/e-mail-config-ews-delegates-page.c:637
1072 #: ../src/configuration/e-mail-config-ews-delegates-page.c:553
8021073 msgid "_Inbox"
8031074 msgstr "_Inbox"
8041075
805 #: ../src/configuration/e-mail-config-ews-delegates-page.c:640
1076 #: ../src/configuration/e-mail-config-ews-delegates-page.c:556
8061077 msgid "C_ontacts"
8071078 msgstr "C_ontacts"
8081079
809 #: ../src/configuration/e-mail-config-ews-delegates-page.c:643
1080 #: ../src/configuration/e-mail-config-ews-delegates-page.c:559
8101081 msgid "_Notes"
8111082 msgstr "_Notes"
8121083
813 #: ../src/configuration/e-mail-config-ews-delegates-page.c:646
1084 #: ../src/configuration/e-mail-config-ews-delegates-page.c:562
8141085 msgid "_Journal"
8151086 msgstr "_Journal"
8161087
817 #: ../src/configuration/e-mail-config-ews-delegates-page.c:649
818 #, c-format
819 msgid "Delegate '%s' has the following permissions"
820 msgstr "Delegate '%s' has the following permissions"
821
822 #: ../src/configuration/e-mail-config-ews-delegates-page.c:667
1088 #: ../src/configuration/e-mail-config-ews-delegates-page.c:565
1089 #, c-format
1090 #| msgid "Delegate '%s' has the following permissions"
1091 msgid "Delegate “%s” has the following permissions"
1092 msgstr "Delegate “%s” has the following permissions"
1093
1094 #: ../src/configuration/e-mail-config-ews-delegates-page.c:583
8231095 msgid "Delegate can see my _private items"
8241096 msgstr "Delegate can see my _private items"
8251097
826 #: ../src/configuration/e-mail-config-ews-delegates-page.c:990
1098 #: ../src/configuration/e-mail-config-ews-delegates-page.c:905
8271099 msgid "Retrieving current user permissions, please wait..."
8281100 msgstr "Retrieving current user permissions, please wait…"
8291101
830 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1111
831 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1641
1102 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1026
1103 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1648
8321104 msgid "Delegates"
8331105 msgstr "Delegates"
8341106
835 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1135
1107 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1050
8361108 msgid ""
8371109 "Delegates can send items on your behalf, including creating and responding "
8381110 "to meeting requests. If you want to grant folder permissions without giving "
8441116 "send-on-behalf-of permissions, close this dialogue box, right-click the "
8451117 "folder, click Permissions and change the options there."
8461118
847 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1184
1119 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1100
8481120 msgid ""
8491121 "Deliver meeting requests addressed to me and responses to meeting requests "
8501122 "where I am the organizer to:"
8531125 "where I am the organiser to:"
8541126
8551127 #. new-line break, because GtkRadioButton doesn't allow wrapping of the inner label
856 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1193
1128 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1110
8571129 msgid ""
8581130 "My delegates only, but _send a copy of meeting requests\n"
8591131 "and responses to me (recommended)"
8611133 "My delegates only, but _send a copy of meeting requests\n"
8621134 "and responses to me (recommended)"
8631135
864 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1200
1136 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1117
8651137 msgid "My d_elegates only"
8661138 msgstr "My d_elegates only"
8671139
868 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1207
1140 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1124
8691141 msgid "My delegates a_nd me"
8701142 msgstr "My delegates a_nd me"
8711143
872 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1716
873 msgid "Retrieving \"Delegates\" settings"
874 msgstr "Retrieving \"Delegates\" settings"
875
876 #: ../src/configuration/e-mail-config-ews-ooo-page.c:446
877 #: ../src/configuration/e-mail-config-ews-ooo-page.c:925
1144 #: ../src/configuration/e-mail-config-ews-delegates-page.c:1720
1145 #| msgid "Retrieving \"Delegates\" settings"
1146 msgid "Retrieving “Delegates” settings"
1147 msgstr "Retrieving “Delegates” settings"
1148
1149 #: ../src/configuration/e-mail-config-ews-folder-sizes-page.c:193
1150 #: ../src/configuration/e-mail-config-ews-folder-sizes-page.c:257
1151 msgid "EWS Settings"
1152 msgstr "EWS Settings"
1153
1154 #: ../src/configuration/e-mail-config-ews-folder-sizes-page.c:200
1155 msgid "View the size of all Exchange folders"
1156 msgstr "View the size of all Exchange folders"
1157
1158 #: ../src/configuration/e-mail-config-ews-folder-sizes-page.c:204
1159 #| msgctxt "Permissions"
1160 #| msgid "Folder visible"
1161 msgid "Folder _Sizes"
1162 msgstr "Folder _Sizes"
1163
1164 #: ../src/configuration/e-mail-config-ews-gal.c:222
1165 msgid "Locating offline address books"
1166 msgstr "Locating offline address books"
1167
1168 #: ../src/configuration/e-mail-config-ews-gal.c:301
1169 msgid "Cache o_ffline address book"
1170 msgstr "Cache o_ffline address book"
1171
1172 #: ../src/configuration/e-mail-config-ews-gal.c:327
1173 msgid "Select ad_dress list:"
1174 msgstr "Select ad_dress list:"
1175
1176 #: ../src/configuration/e-mail-config-ews-gal.c:351
1177 msgid "Fetch List"
1178 msgstr "Fetch List"
1179
1180 #: ../src/configuration/e-mail-config-ews-ooo-page.c:396
1181 #: ../src/configuration/e-mail-config-ews-ooo-page.c:933
8781182 msgid "Out of Office"
8791183 msgstr "Out of Office"
8801184
881 #: ../src/configuration/e-mail-config-ews-ooo-page.c:462
1185 #: ../src/configuration/e-mail-config-ews-ooo-page.c:412
8821186 msgid ""
8831187 "The messages specified below will be automatically sent to each internal and "
8841188 "external person who sends a mail to you."
8861190 "The messages specified below will be automatically sent to each internal and "
8871191 "external person who sends a mail to you."
8881192
889 #: ../src/configuration/e-mail-config-ews-ooo-page.c:470
1193 #: ../src/configuration/e-mail-config-ews-ooo-page.c:421
8901194 msgid "Do _not send Out of Office replies"
8911195 msgstr "Do _not send Out of Office replies"
8921196
893 #: ../src/configuration/e-mail-config-ews-ooo-page.c:478
1197 #: ../src/configuration/e-mail-config-ews-ooo-page.c:429
8941198 msgid "_Send Out of Office replies"
8951199 msgstr "_Send Out of Office replies"
8961200
897 #: ../src/configuration/e-mail-config-ews-ooo-page.c:486
1201 #: ../src/configuration/e-mail-config-ews-ooo-page.c:437
8981202 msgid "Send Out of Office replies only _during this time period:"
8991203 msgstr "Send Out of Office replies only _during this time period:"
9001204
901 #: ../src/configuration/e-mail-config-ews-ooo-page.c:506
1205 #: ../src/configuration/e-mail-config-ews-ooo-page.c:457
9021206 msgid "_From:"
9031207 msgstr "_From:"
9041208
905 #: ../src/configuration/e-mail-config-ews-ooo-page.c:531
1209 #: ../src/configuration/e-mail-config-ews-ooo-page.c:482
9061210 msgid "_To:"
9071211 msgstr "_To:"
9081212
909 #: ../src/configuration/e-mail-config-ews-ooo-page.c:556
1213 #: ../src/configuration/e-mail-config-ews-ooo-page.c:507
9101214 msgid "I_nternal:"
9111215 msgstr "I_nternal:"
9121216
913 #: ../src/configuration/e-mail-config-ews-ooo-page.c:565
1217 #: ../src/configuration/e-mail-config-ews-ooo-page.c:516
9141218 msgid "Message to be sent within the organization"
9151219 msgstr "Message to be sent within the organisation"
9161220
917 #: ../src/configuration/e-mail-config-ews-ooo-page.c:592
1221 #: ../src/configuration/e-mail-config-ews-ooo-page.c:544
9181222 msgid "E_xternal:"
9191223 msgstr "E_xternal:"
9201224
921 #: ../src/configuration/e-mail-config-ews-ooo-page.c:600
1225 #: ../src/configuration/e-mail-config-ews-ooo-page.c:552
9221226 msgid "Message to be sent outside the organization"
9231227 msgstr "Message to be sent outside the organisation"
9241228
925 #: ../src/configuration/e-mail-config-ews-ooo-page.c:610
1229 #: ../src/configuration/e-mail-config-ews-ooo-page.c:562
9261230 msgid "Do not reply to senders outside the organization"
9271231 msgstr "Do not reply to senders outside the organisation"
9281232
929 #: ../src/configuration/e-mail-config-ews-ooo-page.c:613
1233 #: ../src/configuration/e-mail-config-ews-ooo-page.c:565
9301234 msgid "Reply only to known senders outside the organization"
9311235 msgstr "Reply only to known senders outside the organisation"
9321236
933 #: ../src/configuration/e-mail-config-ews-ooo-page.c:616
1237 #: ../src/configuration/e-mail-config-ews-ooo-page.c:568
9341238 msgid "Reply to any sender outside the organization"
9351239 msgstr "Reply to any sender outside the organisation"
9361240
937 #: ../src/configuration/e-mail-config-ews-ooo-page.c:1001
938 msgid "Retrieving \"Out of Office\" settings"
939 msgstr "Retrieving \"Out of Office\" settings"
1241 #: ../src/configuration/e-mail-config-ews-ooo-page.c:1005
1242 #| msgid "Retrieving \"Out of Office\" settings"
1243 msgid "Retrieving “Out of Office” settings"
1244 msgstr "Retrieving “Out of Office” settings"
9401245
9411246 #: ../src/configuration/module-ews-configuration.error.xml.h:1
9421247 msgid "Autodiscovery query failed."
9431248 msgstr "Autodiscovery query failed."
9441249
9451250 #: ../src/configuration/module-ews-configuration.error.xml.h:2
946 msgid "The reported error was &quot;{0}&quot;."
947 msgstr "The reported error was &quot;{0}&quot;."
1251 #| msgid "The reported error was &quot;{0}&quot;."
1252 msgid "The reported error was “{0}”."
1253 msgstr "The reported error was “{0}”."
9481254
9491255 #: ../src/configuration/module-ews-configuration.error.xml.h:3
9501256 msgid "Failed to locate offline address books."
9511257 msgstr "Failed to locate offline address books."
9521258
9531259 #: ../src/configuration/module-ews-configuration.error.xml.h:4
954 msgid "Failed to retrieve &quot;Out of Office&quot; settings."
955 msgstr "Failed to retrieve &quot;Out of Office&quot; settings."
1260 #| msgid "Failed to retrieve &quot;Out of Office&quot; settings."
1261 msgid "Failed to retrieve “Out of Office” settings."
1262 msgstr "Failed to retrieve “Out of Office” settings."
9561263
9571264 #: ../src/configuration/module-ews-configuration.error.xml.h:5
958 msgid "Failed to retrieve &quot;Delegates&quot; settings."
959 msgstr "Failed to retrieve &quot;Delegates&quot; settings."
960
961 #: ../src/server/e-ews-connection.c:488
1265 #| msgid "Failed to retrieve &quot;Delegates&quot; settings."
1266 msgid "Failed to retrieve “Delegates” settings."
1267 msgstr "Failed to retrieve “Delegates” settings."
1268
1269 #: ../src/configuration/module-ews-configuration.error.xml.h:6
1270 msgid "Your Exchange account “{0}” has the status set as “Out of Office”."
1271 msgstr "Your Exchange account “{0}” has the status set as “Out of Office”."
1272
1273 #: ../src/server/camel-sasl-xoauth2-office365.c:23
1274 #| msgid "Out of Office"
1275 msgid "OAuth2 (Office365)"
1276 msgstr "OAuth2 (Office365)"
1277
1278 #: ../src/server/camel-sasl-xoauth2-office365.c:24
1279 msgid ""
1280 "This option will use an OAuth 2.0 access token to connect to the Office365."
1281 "com server"
1282 msgstr ""
1283 "This option will use an OAuth 2.0 access token to connect to the Office365."
1284 "com server"
1285
1286 #: ../src/server/e-ews-camel-common.c:376
1287 #, c-format
1288 msgid "CreateItem call failed to return ID for new message"
1289 msgstr "CreateItem call failed to return ID for new message"
1290
1291 #: ../src/server/e-ews-connection.c:759
9621292 msgid "Operation Cancelled"
9631293 msgstr "Operation Cancelled"
9641294
965 #: ../src/server/e-ews-connection.c:557
1295 #: ../src/server/e-ews-connection.c:880
9661296 msgid "Authentication failed"
9671297 msgstr "Authentication failed"
9681298
969 #: ../src/server/e-ews-connection.c:568
1299 #: ../src/server/e-ews-connection.c:902
9701300 #, c-format
9711301 msgid "No response: %s"
9721302 msgstr "No response: %s"
9731303
974 #: ../src/server/e-ews-connection.c:1852
1304 #: ../src/server/e-ews-connection.c:965
1305 #, c-format
1306 msgid "Exchange server is busy, waiting to retry (%d:%02d minute)"
1307 msgid_plural "Exchange server is busy, waiting to retry (%d:%02d minutes)"
1308 msgstr[0] "Exchange server is busy, waiting to retry (%d:%02d minute)"
1309 msgstr[1] "Exchange server is busy, waiting to retry (%d:%02d minutes)"
1310
1311 #: ../src/server/e-ews-connection.c:971
1312 #, c-format
1313 msgid "Exchange server is busy, waiting to retry (%d second)"
1314 msgid_plural "Exchange server is busy, waiting to retry (%d seconds)"
1315 msgstr[0] "Exchange server is busy, waiting to retry (%d second)"
1316 msgstr[1] "Exchange server is busy, waiting to retry (%d seconds)"
1317
1318 #: ../src/server/e-ews-connection.c:2900
9751319 #, c-format
9761320 msgid "Failed to parse autodiscover response XML"
9771321 msgstr "Failed to parse autodiscover response XML"
9781322
979 #: ../src/server/e-ews-connection.c:1859
1323 #: ../src/server/e-ews-connection.c:2907
9801324 #, c-format
9811325 msgid "Failed to find <Autodiscover> element"
9821326 msgstr "Failed to find <Autodiscover> element"
9831327
984 #: ../src/server/e-ews-connection.c:1870
1328 #: ../src/server/e-ews-connection.c:2918
9851329 #, c-format
9861330 msgid "Failed to find <Response> element"
9871331 msgstr "Failed to find <Response> element"
9881332
989 #: ../src/server/e-ews-connection.c:1881
1333 #: ../src/server/e-ews-connection.c:2929
9901334 #, c-format
9911335 msgid "Failed to find <Account> element"
9921336 msgstr "Failed to find <Account> element"
9931337
994 #: ../src/server/e-ews-connection.c:1900
1338 #: ../src/server/e-ews-connection.c:2954
9951339 #, c-format
9961340 msgid "Failed to find <ASUrl> and <OABUrl> in autodiscover response"
9971341 msgstr "Failed to find <ASUrl> and <OABUrl> in autodiscover response"
9981342
999 #: ../src/server/e-ews-connection.c:1980
1343 #: ../src/server/e-ews-connection.c:3045
10001344 msgid "URL cannot be NULL"
10011345 msgstr "URL cannot be NULL"
10021346
1003 #: ../src/server/e-ews-connection.c:1987
1004 #, c-format
1005 msgid "URL '%s' is not valid"
1006 msgstr "URL '%s' is not valid"
1007
1008 #: ../src/server/e-ews-connection.c:2089
1347 #: ../src/server/e-ews-connection.c:3053
1348 #, c-format
1349 #| msgid "URL '%s' is not valid"
1350 msgid "URL “%s” is not valid"
1351 msgstr "URL “%s” is not valid"
1352
1353 #: ../src/server/e-ews-connection.c:3144
10091354 msgid "Email address is missing a domain part"
10101355 msgstr "Email address is missing a domain part"
10111356
1012 #: ../src/server/e-ews-connection.c:2359
1357 #: ../src/server/e-ews-connection.c:3499
10131358 msgid "Failed to parse oab XML"
10141359 msgstr "Failed to parse oab XML"
10151360
1016 #: ../src/server/e-ews-connection.c:2367
1361 #: ../src/server/e-ews-connection.c:3507
10171362 msgid "Failed to find <OAB> element\n"
10181363 msgstr "Failed to find <OAB> element\n"
10191364
1020 #: ../src/server/e-ews-connection.c:3509
1365 #: ../src/server/e-ews-connection.c:4814
10211366 msgid "No items found"
10221367 msgstr "No items found"
10231368
1024 #: ../src/server/e-ews-folder.c:539
1369 #: ../src/server/e-ews-connection-utils.c:197
1370 #, c-format
1371 msgid "Password expired. Change password at “%s”."
1372 msgstr "Password expired. Change password at “%s”."
1373
1374 #: ../src/server/e-ews-connection-utils.c:200
1375 msgid "Password expired."
1376 msgstr "Password expired."
1377
1378 #: ../src/server/e-ews-connection-utils.c:427
1379 #| msgctxt "User"
1380 #| msgid "Unknown"
1381 msgid "Unknown error"
1382 msgstr "Unknown error"
1383
1384 #: ../src/server/e-ews-folder.c:728
10251385 msgid "Cannot add folder, unsupported folder type"
10261386 msgstr "Cannot add folder, unsupported folder type"
10271387
1028 #: ../src/server/e-ews-folder.c:544
1388 #: ../src/server/e-ews-folder.c:733
10291389 msgid "Cannot add folder, master source not found"
10301390 msgstr "Cannot add folder, master source not found"
10311391
1032 #: ../src/utils/ews-camel-common.c:176
1033 #, c-format
1034 msgid "CreateItem call failed to return ID for new message"
1035 msgstr "CreateItem call failed to return ID for new message"
1392 #. Translators: This is a user-visible string, display name of an OAuth2 service.
1393 #: ../src/server/e-oauth2-service-office365.c:124
1394 msgctxt "OAuth2Service"
1395 msgid "Office365"
1396 msgstr "Office365"
1397
1398 #~ msgid "The backend does not support bulk additions"
1399 #~ msgstr "The backend does not support bulk additions"
1400
1401 #~ msgid "The backend does not support bulk modifications"
1402 #~ msgstr "The backend does not support bulk modifications"
1403
1404 #~ msgid "Wait till syncing is done"
1405 #~ msgstr "Wait till syncing is done"
1406
1407 #~ msgid "Downloading contacts in %s %d%% completed... "
1408 #~ msgstr "Downloading contacts in %s %d%% completed… "
1409
1410 #~ msgid "Syncing contacts..."
1411 #~ msgstr "Syncing contacts…"
1412
1413 #~ msgid "Insufficient memory"
1414 #~ msgstr "Insufficient memory"
1415
1416 #~ msgid "EWS does not support bulk removals"
1417 #~ msgstr "EWS does not support bulk removals"
1418
1419 #~ msgid "EWS does not support bulk additions"
1420 #~ msgstr "EWS does not support bulk additions"
1421
1422 #~ msgid "EWS does not support bulk modifications"
1423 #~ msgstr "EWS does not support bulk modifications"
1424
1425 #~ msgid "Authentication password not available"
1426 #~ msgstr "Authentication password not available"
1427
1428 #~ msgid "Query for authentication types is not supported"
1429 #~ msgstr "Query for authentication types is not supported"
1430
1431 #~ msgid ""
1432 #~ "Cannot list folders available for subscription of Exchange Web Services "
1433 #~ "account, use 'Subscribe to folder of other user' context menu option "
1434 #~ "above the account node in the folder tree instead."
1435 #~ msgstr ""
1436 #~ "Cannot list folders available for subscription of Exchange Web Services "
1437 #~ "account, use 'Subscribe to folder of other user' context menu option "
1438 #~ "above the account node in the folder tree instead."
1439
1440 #~ msgid ""
1441 #~ "Exchange server cannot send message as '%s', when the account was "
1442 #~ "configured for address '%s'"
1443 #~ msgstr ""
1444 #~ "Exchange server cannot send message as '%s', when the account was "
1445 #~ "configured for address '%s'"
1446
1447 #~ msgctxt "ForeignFolder"
1448 #~ msgid "%s - %s"
1449 #~ msgstr "%s - %s"
5050 #include "ews-oab-decoder.h"
5151 #include "ews-oab-decompress.h"
5252
53 #ifdef G_OS_WIN32
54 #ifdef gmtime_r
55 #undef gmtime_r
56 #endif
57
58 /* The gmtime() in Microsoft's C library is MT-safe */
59 #define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0)
60 #endif
61
5362 #define d(x)
5463
5564 #define EDB_ERROR(_code) e_data_book_create_error (E_DATA_BOOK_STATUS_ ## _code, NULL)
5665 #define EDB_ERROR_EX(_code,_msg) e_data_book_create_error (E_DATA_BOOK_STATUS_ ## _code, _msg)
5766
5867 #define X_EWS_ORIGINAL_VCARD "X-EWS-ORIGINAL-VCARD"
68 #define X_EWS_CHANGEKEY "X-EWS-CHANGEKEY"
69 #define X_EWS_GAL_SHA1 "X-EWS-GAL-SHA1"
5970
6071 #define EWS_MAX_FETCH_COUNT 500
6172
6576 /* passing field uris for PhysicalAddress, PhoneNumbers causes error, so we
6677 * use Default view to fetch them. Thus the summary props just have attachments
6778 * and some additional properties that are not return with Default view */
68 #define CONTACT_ITEM_PROPS "item:Attachments item:HasAttachments item:Body contacts:Manager contacts:Department contacts:SpouseName contacts:AssistantName contacts:BusinessHomePage contacts:Birthday"
79 #define CONTACT_ITEM_PROPS "item:Attachments item:HasAttachments item:Body item:LastModifiedTime contacts:Manager contacts:Department contacts:SpouseName contacts:AssistantName contacts:BusinessHomePage contacts:Birthday"
6980
7081 struct _EBookBackendEwsPrivate {
7182 GRecMutex cnc_lock;
186197 };
187198
188199 static void
200 ebews_populate_rev (EContact *contact,
201 EEwsItem *item)
202 {
203 struct tm stm;
204 time_t tt = 0;
205 gchar time_string[100] = { 0 };
206
207 g_return_if_fail (E_IS_CONTACT (contact));
208
209 if (item) {
210 g_return_if_fail (E_IS_EWS_ITEM (item));
211
212 tt = e_ews_item_get_last_modified_time (item);
213 }
214
215 if (tt <= 0)
216 tt = time (NULL);
217
218 gmtime_r (&tt, &stm);
219 strftime (time_string, 100, "%Y-%m-%dT%H:%M:%SZ", &stm);
220
221 e_contact_set (contact, E_CONTACT_REV, time_string);
222 }
223
224 static void
189225 ebews_populate_uid (EBookBackendEws *bbews,
190226 EContact *contact,
191227 EEwsItem *item,
197233 id = e_ews_item_get_id (item);
198234 if (id) {
199235 e_contact_set (contact, E_CONTACT_UID, id->id);
200 e_contact_set (contact, E_CONTACT_REV, id->change_key);
236 ebews_populate_rev (contact, item);
237 e_vcard_util_set_x_attribute (E_VCARD (contact), X_EWS_CHANGEKEY, id->change_key);
201238 }
202239 }
203240
859896 if (!item_id) {
860897 id = g_new0 (EwsId, 1);
861898 id->id = e_contact_get (contact, E_CONTACT_UID);
862 id->change_key = e_contact_get (contact, E_CONTACT_REV);
899 id->change_key = e_vcard_util_dup_x_attribute (E_VCARD (contact), X_EWS_CHANGEKEY);
900 if (!id->change_key)
901 id->change_key = e_contact_get (contact, E_CONTACT_REV);
863902
864903 item_id = id;
865904 }
14411480 ConvertData *cd = user_data;
14421481 EContact *old_contact = cd->old_contact;
14431482 EContact *new_contact = cd->new_contact;
1483 gchar *change_key = NULL;
1484
1485 if (!cd->change_key) {
1486 change_key = e_vcard_util_dup_x_attribute (E_VCARD (old_contact), X_EWS_CHANGEKEY);
1487 if (!change_key)
1488 change_key = e_contact_get (old_contact, E_CONTACT_REV);
1489 }
14441490
14451491 e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
14461492 e_contact_get_const (old_contact, E_CONTACT_UID),
1447 cd->change_key ? cd->change_key : e_contact_get_const (old_contact, E_CONTACT_REV),
1493 cd->change_key ? cd->change_key : change_key,
14481494 0);
14491495 e_ews_message_start_set_item_field (msg, "Members", "distributionlist", "DistributionList");
14501496 ebb_ews_write_dl_members (msg, new_contact);
14511497 e_ews_message_end_set_item_field (msg);
14521498 e_ews_message_end_item_change (msg);
1499
1500 g_free (change_key);
14531501 }
14541502
14551503 static void
14601508 EContact *old_contact = cd->old_contact;
14611509 EContact *new_contact = cd->new_contact;
14621510 gchar *value = NULL, *old_value = NULL;
1511 gchar *change_key = NULL;
14631512 gint i, element_type;
14641513
14651514 /* Pre-flight, to update the ChangeKey if needed */
14811530 }
14821531 }
14831532
1533 if (!cd->change_key) {
1534 change_key = e_vcard_util_dup_x_attribute (E_VCARD (old_contact), X_EWS_CHANGEKEY);
1535 if (!change_key)
1536 change_key = e_contact_get (old_contact, E_CONTACT_REV);
1537 }
1538
14841539 e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
14851540 e_contact_get_const (old_contact, E_CONTACT_UID),
1486 cd->change_key ? cd->change_key : e_contact_get_const (old_contact, E_CONTACT_REV),
1541 cd->change_key ? cd->change_key : change_key,
14871542 0);
14881543
14891544 /* Iterate for each field in contact */
15151570 }
15161571
15171572 e_ews_message_end_item_change (msg);
1573
1574 g_free (change_key);
15181575 }
15191576
15201577 static EContact *
16741731
16751732 static EContact *
16761733 ebb_ews_get_dl_info (EBookBackendEws *bbews,
1734 EEwsItem *item,
16771735 const EwsId *id,
16781736 const gchar *d_name,
16791737 GSList *members,
16861744
16871745 contact = e_contact_new ();
16881746 e_contact_set (contact, E_CONTACT_UID, id->id);
1689 e_contact_set (contact, E_CONTACT_REV, id->change_key);
1747 e_vcard_util_set_x_attribute (E_VCARD (contact), X_EWS_CHANGEKEY, id->change_key);
1748 ebews_populate_rev (contact, item);
16901749
16911750 e_contact_set (contact, E_CONTACT_IS_LIST, GINT_TO_POINTER (TRUE));
16921751 e_contact_set (contact, E_CONTACT_LIST_SHOW_ADDRESSES, GINT_TO_POINTER (TRUE));
17381797
17391798 static gboolean
17401799 ebb_ews_contacts_append_dl (EBookBackendEws *bbews,
1800 EEwsItem *item,
17411801 const EwsId *id,
17421802 const gchar *d_name,
17431803 GSList *members,
17481808 EContact *contact;
17491809 EVCardAttribute *attr;
17501810
1751 contact = ebb_ews_get_dl_info (bbews, id, d_name, members, cancellable, error);
1811 contact = ebb_ews_get_dl_info (bbews, item, id, d_name, members, cancellable, error);
17521812 if (contact == NULL)
17531813 return FALSE;
17541814
18361896 if (e_ews_connection_expand_dl_sync (
18371897 bbews->priv->cnc, EWS_PRIORITY_MEDIUM, mb, &members,
18381898 &includes_last, cancellable, &local_error)) {
1839 ret = ebb_ews_contacts_append_dl (bbews, id, d_name, members, contacts, cancellable, error);
1899 ret = ebb_ews_contacts_append_dl (bbews, item, id, d_name, members, contacts, cancellable, error);
18401900 g_slist_free_full (members, (GDestroyNotify) e_ews_mailbox_free);
18411901 } else {
18421902 ret = g_error_matches (local_error, EWS_CONNECTION_ERROR, EWS_CONNECTION_ERROR_NAMERESOLUTIONNORESULTS);
21642224 const gchar *uid = e_contact_get_const (contact, E_CONTACT_UID);
21652225 EBookMetaBackendInfo *nfo;
21662226
2167 e_contact_set (contact, E_CONTACT_REV, sha1);
2168
2169 nfo = e_book_meta_backend_info_new (uid, sha1, NULL, NULL);
2227 ebews_populate_rev (contact, NULL);
2228 e_vcard_util_set_x_attribute (E_VCARD (contact), X_EWS_GAL_SHA1, sha1);
2229
2230 nfo = e_book_meta_backend_info_new (uid, e_contact_get_const (contact, E_CONTACT_REV), NULL, NULL);
21702231 nfo->object = e_vcard_to_string (E_VCARD (contact), EVC_FORMAT_VCARD_30);
21712232
21722233 if (g_hash_table_remove (data->uids, uid)) {
21962257 gpointer user_data)
21972258 {
21982259 struct _db_data *data = user_data;
2199 gchar *dup_uid, *dup_rev;
2260 EVCard *vcard;
2261 gchar *dup_uid, *dup_sha1 = NULL;
22002262
22012263 g_return_val_if_fail (data != NULL, FALSE);
22022264 g_return_val_if_fail (data->uids != NULL, FALSE);
22032265 g_return_val_if_fail (data->sha1s != NULL, FALSE);
2266 g_return_val_if_fail (object != NULL, FALSE);
2267
2268 vcard = e_vcard_new_from_string (object);
2269 if (vcard) {
2270 dup_sha1 = e_vcard_util_dup_x_attribute (vcard, X_EWS_GAL_SHA1);
2271 g_object_unref (vcard);
2272 }
22042273
22052274 dup_uid = g_strdup (uid);
2206 dup_rev = g_strdup (revision);
2207
2208 g_hash_table_insert (data->uids, dup_uid, dup_rev);
2209 if (dup_rev)
2210 g_hash_table_insert (data->sha1s, dup_rev, dup_uid);
2275 if (!dup_sha1)
2276 dup_sha1 = g_strdup (revision);
2277
2278 g_hash_table_insert (data->uids, dup_uid, dup_sha1);
2279 if (dup_sha1)
2280 g_hash_table_insert (data->sha1s, dup_sha1, dup_uid);
22112281
22122282 return TRUE;
22132283 }
26022672 EContact *contact = NULL;
26032673 gboolean is_public_dl = FALSE;
26042674 const gchar *str;
2605 gchar *fake_rev;
26062675
26072676 if (g_strcmp0 (mb->mailbox_type, "PublicDL") == 0) {
26082677 contact = e_contact_new ();
26252694
26262695 /* There is no ChangeKey provided either, thus make up some revision,
26272696 to have the contact always updated in the local cache. */
2628 fake_rev = e_util_generate_uid ();
2629
2630 e_contact_set (contact, E_CONTACT_REV, fake_rev);
2631
2632 g_free (fake_rev);
2697 ebews_populate_rev (contact, NULL);
26332698
26342699 str = e_contact_get_const (contact, E_CONTACT_FULL_NAME);
26352700 if (!str || !*str)
27382803 EContact *existing = NULL;
27392804
27402805 if (e_book_cache_get_contact (book_cache, id->id, TRUE, &existing, cancellable, NULL) &&
2741 existing && g_strcmp0 (e_contact_get_const (existing, E_CONTACT_REV), id->change_key) == 0) {
2742 g_object_unref (item);
2806 existing) {
2807 gchar *change_key;
2808
2809 change_key = e_vcard_util_dup_x_attribute (E_VCARD (existing), X_EWS_CHANGEKEY);
2810 if (!change_key)
2811 change_key = e_contact_get (existing, E_CONTACT_REV);
2812
2813 if (g_strcmp0 (change_key, id->change_key) == 0) {
2814 g_object_unref (item);
2815 } else {
2816 items = g_slist_prepend (items, item);
2817 }
2818
2819 g_free (change_key);
27432820 } else {
27442821 items = g_slist_prepend (items, item);
27452822 }
178178 EwsOabDecoderPrivate *priv = GET_PRIVATE (eod);
179179 const gchar *at;
180180 GBytes *bytes = value;
181 EContactPhoto *photo = g_new0 (EContactPhoto, 1);
182 gchar *email = e_contact_get (contact, E_CONTACT_EMAIL_1);
181 EContactPhoto *photo;
182 gchar *email;
183183 gchar *filename = NULL, *pic_name = NULL, *name;
184184 gboolean success = TRUE;
185185 GError *local_error = NULL;
187187 if (!bytes)
188188 return;
189189
190 email = e_contact_get (contact, E_CONTACT_EMAIL_1);
191 if (!email || !strchr (email, '@')) {
192 g_free (email);
193 return;
194 }
195
196 photo = g_new0 (EContactPhoto, 1);
197
190198 /* Rename the binary file to name.jpg */
191199 at = strchr (email, '@');
192200 name = g_strndup (email, at - email);
200208 photo->type = E_CONTACT_PHOTO_TYPE_URI;
201209 photo->data.uri = filename;
202210
203 e_contact_set (contact, field, (gpointer) photo);
211 e_contact_set (contact, field, photo);
204212 } else {
205213 g_warning ("%s: Failed to store '%s': %s", G_STRFUNC, filename, local_error ? local_error->message : "Unknown error");
206214 }
221221 e_ews_collect_attendees (icalcomponent *comp,
222222 GSList **required,
223223 GSList **optional,
224 GSList **resource)
224 GSList **resource,
225 gboolean *out_rsvp_requested)
225226 {
226227 icalproperty *prop;
227228 icalparameter *param;
228229 const gchar *str = NULL;
229230 const gchar *org_email_address = NULL;
230231
232 if (out_rsvp_requested)
233 *out_rsvp_requested = TRUE;
234
231235 /* we need to know who the orgenizer is so we wont duplicate him/her */
232236 org_email_address = e_ews_collect_organizer (comp);
233237
261265 switch (icalparameter_get_role (param)) {
262266 case ICAL_ROLE_OPTPARTICIPANT:
263267 *optional = g_slist_append (*optional, (gpointer)str);
268
269 if (out_rsvp_requested && *out_rsvp_requested) {
270 icalparameter *rsvp;
271
272 rsvp = icalproperty_get_first_parameter (prop, ICAL_RSVP_PARAMETER);
273 if (rsvp && icalparameter_get_rsvp (rsvp) == ICAL_RSVP_FALSE)
274 *out_rsvp_requested = FALSE;
275 }
264276 break;
265277 case ICAL_ROLE_CHAIR:
266278 case ICAL_ROLE_REQPARTICIPANT:
267279 *required = g_slist_append (*required, (gpointer)str);
280
281 if (out_rsvp_requested && *out_rsvp_requested) {
282 icalparameter *rsvp;
283
284 rsvp = icalproperty_get_first_parameter (prop, ICAL_RSVP_PARAMETER);
285 if (rsvp && icalparameter_get_rsvp (rsvp) == ICAL_RSVP_FALSE)
286 *out_rsvp_requested = FALSE;
287 }
268288 break;
269289 case ICAL_ROLE_NONPARTICIPANT:
270290 *resource = g_slist_append (*resource, (gpointer)str);
10591079 icaltimetype dtstart, dtend;
10601080 icaltimezone *tzid_start, *tzid_end;
10611081 icalproperty *prop;
1062 gboolean has_alarms, satisfies;
1082 gboolean has_alarms, satisfies, rsvp_requested = TRUE, is_all_day_event;
10631083 const gchar *ical_location_start, *ical_location_end, *value;
10641084 const gchar *msdn_location_start, *msdn_location_end;
10651085
10921112 e_ews_message_write_string_parameter (msg, "ReminderIsSet", NULL, "false");
10931113
10941114 /* start time, end time and meeting time zone */
1095 dtstart = icalcomponent_get_dtstart (icalcomp);
1115 dtstart = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart);
10961116 tzid_start = (icaltimezone *) (dtstart.zone ? dtstart.zone : convert_data->default_zone);
10971117 ical_location_start = icaltimezone_get_location (tzid_start);
10981118
1099 dtend = icalcomponent_get_dtend (icalcomp);
1119 dtend = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend);
11001120 tzid_end = (icaltimezone *) (dtend.zone ? dtend.zone : convert_data->default_zone);
11011121 ical_location_end = icaltimezone_get_location (tzid_end);
11021122
11161136 ical_location_end);
11171137 }
11181138
1119 e_ews_cal_utils_set_time (msg, "Start", &dtstart, FALSE);
1139 is_all_day_event = check_is_all_day_event (dtstart, tzid_start, dtend, tzid_end);
1140
1141 e_ews_cal_utils_set_time (msg, "Start", &dtstart, is_all_day_event && dtstart.is_date);
11201142
11211143 /* Cover components without DTEND */
11221144 if (icaltime_is_valid_time (dtend) &&
11231145 !icaltime_is_null_time (dtend))
1124 e_ews_cal_utils_set_time (msg, "End", &dtend, FALSE);
1146 e_ews_cal_utils_set_time (msg, "End", &dtend, is_all_day_event && dtend.is_date);
11251147 else
1126 e_ews_cal_utils_set_time (msg, "End", &dtstart, FALSE);
1148 e_ews_cal_utils_set_time (msg, "End", &dtstart, is_all_day_event && dtstart.is_date);
11271149
11281150 /* We have to do the time zone(s) later, or the server rejects the request */
11291151
11301152 /* All day event ? */
1131 if (check_is_all_day_event (dtstart, tzid_start, dtend, tzid_end))
1153 if (is_all_day_event)
11321154 e_ews_message_write_string_parameter (msg, "IsAllDayEvent", NULL, "true");
11331155
11341156 /*freebusy*/
11441166 e_ews_message_write_string_parameter (msg, "Location", NULL, value);
11451167
11461168 /* collect attendees */
1147 e_ews_collect_attendees (icalcomp, &required, &optional, &resource);
1169 e_ews_collect_attendees (icalcomp, &required, &optional, &resource, &rsvp_requested);
1170
1171 e_ews_message_write_string_parameter (msg, "IsResponseRequested", NULL, rsvp_requested ? "true" : "false");
11481172
11491173 if (required != NULL) {
11501174 add_attendees_list_to_message (msg, "RequiredAttendees", required);
12041228 g_object_unref (comp);
12051229 }
12061230
1231 static const gchar *
1232 ews_priority_to_string (gint priority)
1233 {
1234 if (priority <= 3)
1235 return "High";
1236
1237 if (priority >= 7)
1238 return "Low";
1239
1240 return "Normal";
1241 }
1242
12071243 static void
12081244 convert_vtodo_calcomp_to_xml (ESoapMessage *msg,
12091245 gpointer user_data)
12251261
12261262 convert_categories_calcomp_to_xml (msg, NULL, icalcomp);
12271263
1264 prop = icalcomponent_get_first_property (icalcomp, ICAL_PRIORITY_PROPERTY);
1265 if (prop) {
1266 gint priority;
1267
1268 priority = icalproperty_get_priority (prop);
1269 e_ews_message_write_string_parameter (msg, "Importance", NULL, ews_priority_to_string (priority));
1270 }
1271
12281272 prop = icalcomponent_get_first_property (icalcomp, ICAL_DUE_PROPERTY);
12291273 if (prop) {
1230 dt = icalproperty_get_due (prop);
1274 dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DUE_PROPERTY, icalproperty_get_due);
12311275 e_ews_cal_utils_set_time (msg, "DueDate", &dt, TRUE);
12321276 }
12331277
12401284
12411285 prop = icalcomponent_get_first_property (icalcomp, ICAL_DTSTART_PROPERTY);
12421286 if (prop) {
1243 dt = icalproperty_get_dtstart (prop);
1287 dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart);
12441288 e_ews_cal_utils_set_time (msg, "StartDate", &dt, TRUE);
12451289 }
12461290
13841428 gboolean has_alarms, has_alarms_old;
13851429 gboolean dt_start_changed = FALSE, dt_end_changed = FALSE, dt_changed;
13861430 gboolean dt_start_changed_timezone_name = FALSE, dt_end_changed_timezone_name = FALSE;
1387 gboolean satisfies;
1431 gboolean satisfies, rsvp_requested = TRUE, is_all_day_event = FALSE;
13881432 gint alarm = 0, alarm_old = 0;
13891433 gchar *recid;
13901434 GError *error = NULL;
14911535 }
14921536 /* Update other properties allowed only for meeting organizers*/
14931537 /*meeting dates*/
1494 dtstart = icalcomponent_get_dtstart (icalcomp);
1495 dtstart_old = icalcomponent_get_dtstart (icalcomp_old);
1538 dtstart = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart);
1539 dtstart_old = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp_old, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart);
14961540 dt_start_changed = icaltime_compare (dtstart, dtstart_old) != 0;
14971541 if (dtstart.zone != NULL) {
14981542 tzid_start = (icaltimezone *) dtstart.zone;
15031547 dt_start_changed_timezone_name = TRUE;
15041548 }
15051549
1506 dtend = icalcomponent_get_dtend (icalcomp);
1507 dtend_old = icalcomponent_get_dtend (icalcomp_old);
1550 dtend = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend);
1551 dtend_old = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp_old, ICAL_DTEND_PROPERTY, icalproperty_get_dtend);
15081552 dt_end_changed = icaltime_compare (dtend, dtend_old) != 0;
15091553 if (dtend.zone != NULL) {
15101554 tzid_end = (icaltimezone *) dtend.zone;
15531597 ical_location_end);
15541598 }
15551599
1600 dt_changed = dt_start_changed || dt_end_changed;
1601
1602 if (dt_changed)
1603 is_all_day_event = check_is_all_day_event (dtstart, tzid_start, dtend, tzid_end);
1604
15561605 if (dt_start_changed) {
15571606 e_ews_message_start_set_item_field (msg, "Start", "calendar","CalendarItem");
1558 e_ews_cal_utils_set_time (msg, "Start", &dtstart, FALSE);
1607 e_ews_cal_utils_set_time (msg, "Start", &dtstart, is_all_day_event && dtstart.is_date);
15591608 e_ews_message_end_set_item_field (msg);
15601609 }
15611610
15621611 if (dt_end_changed) {
15631612 e_ews_message_start_set_item_field (msg, "End", "calendar", "CalendarItem");
1564 e_ews_cal_utils_set_time (msg, "End", &dtend, FALSE);
1613 e_ews_cal_utils_set_time (msg, "End", &dtend, is_all_day_event && dtend.is_date);
15651614 e_ews_message_end_set_item_field (msg);
15661615 }
1567
1568 dt_changed = dt_start_changed || dt_end_changed;
15691616
15701617 /*Check for All Day Event*/
15711618 if (dt_changed) {
1572 if (check_is_all_day_event (dtstart, tzid_start, dtend, tzid_end))
1619 if (is_all_day_event)
15731620 convert_vevent_property_to_updatexml (msg, "IsAllDayEvent", "true", "calendar", NULL, NULL);
15741621 else
15751622 convert_vevent_property_to_updatexml (msg, "IsAllDayEvent", "false", "calendar", NULL, NULL);
15761623 }
15771624
1578 e_ews_collect_attendees (icalcomp, &required, &optional, &resource);
1625 e_ews_collect_attendees (icalcomp, &required, &optional, &resource, &rsvp_requested);
1626
1627 convert_vevent_property_to_updatexml (msg, "IsResponseRequested", rsvp_requested ? "true" : "false", "calendar", NULL, NULL);
1628
15791629 if (required != NULL) {
15801630 e_ews_message_start_set_item_field (msg, "RequiredAttendees", "calendar", "CalendarItem");
15811631
17171767
17181768 prop = icalcomponent_get_first_property (icalcomp, ICAL_DUE_PROPERTY);
17191769 if (prop) {
1720 dt = icalproperty_get_due (prop);
1770 dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DUE_PROPERTY, icalproperty_get_due);
17211771 e_ews_message_start_set_item_field (msg, "DueDate", "task", "Task");
17221772 e_ews_cal_utils_set_time (msg, "DueDate", &dt, TRUE);
17231773 e_ews_message_end_set_item_field (msg);
17361786
17371787 prop = icalcomponent_get_first_property (icalcomp, ICAL_DTSTART_PROPERTY);
17381788 if (prop) {
1739 dt = icalproperty_get_dtstart (prop);
1789 dt = e_cal_backend_ews_get_datetime_with_zone (convert_data->timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart);
17401790 e_ews_message_start_set_item_field (msg, "StartDate", "task", "Task");
17411791 e_ews_cal_utils_set_time (msg, "StartDate", &dt, TRUE);
17421792 e_ews_message_end_set_item_field (msg);
17641814
17651815 /* Categories */
17661816 convert_component_categories_to_updatexml (convert_data->comp, msg, "Task");
1817
1818 prop = icalcomponent_get_first_property (icalcomp, ICAL_PRIORITY_PROPERTY);
1819 if (prop) {
1820 gint priority;
1821
1822 priority = icalproperty_get_priority (prop);
1823 convert_vtodo_property_to_updatexml (msg, "Importance", ews_priority_to_string (priority), "item", NULL, NULL);
1824 }
17671825
17681826 e_ews_message_end_item_change (msg);
17691827 }
19492007 /* end of "AcceptItem" */
19502008 e_soap_message_end_element (msg);
19512009 }
2010
2011 struct icaltimetype
2012 e_cal_backend_ews_get_datetime_with_zone (ETimezoneCache *timezone_cache,
2013 icalcomponent *comp,
2014 icalproperty_kind prop_kind,
2015 struct icaltimetype (* get_func) (const icalproperty *prop))
2016 {
2017 struct icaltimetype dt = icaltime_null_time ();
2018 icalproperty *prop;
2019 icalparameter *param;
2020 const gchar *tzid;
2021
2022 g_return_val_if_fail (E_IS_TIMEZONE_CACHE (timezone_cache), dt);
2023 g_return_val_if_fail (comp != NULL, dt);
2024 g_return_val_if_fail (get_func != NULL, dt);
2025
2026 prop = icalcomponent_get_first_property (comp, prop_kind);
2027 if (!prop)
2028 return dt;
2029
2030 dt = get_func (prop);
2031
2032 if (!icaltime_is_valid_time (dt) ||
2033 icaltime_is_null_time (dt))
2034 return dt;
2035
2036 param = icalproperty_get_first_parameter (prop, ICAL_TZID_PARAMETER);
2037 if (!param)
2038 return dt;
2039
2040 tzid = icalparameter_get_tzid (param);
2041 if (!tzid || !*tzid)
2042 return dt;
2043
2044 dt.zone = e_timezone_cache_get_timezone (timezone_cache, tzid);
2045
2046 return dt;
2047 }
3838
3939 typedef struct {
4040 EEwsConnection *connection;
41 ETimezoneCache *timezone_cache;
4142 icaltimezone *default_zone;
4243 gchar *user_email;
4344 gchar *response_type; /* Accept */
5455 } EwsCalendarConvertData;
5556
5657 const gchar *e_ews_collect_organizer (icalcomponent *comp);
57 void e_ews_collect_attendees (icalcomponent *comp, GSList **required, GSList **optional, GSList **resource);
58 void e_ews_collect_attendees (icalcomponent *comp, GSList **required, GSList **optional, GSList **resource, gboolean *out_rsvp_requested);
5859
5960 void ewscal_set_timezone (ESoapMessage *msg, const gchar *name, EEwsCalendarTimeZoneDefinition *tzd);
6061 void ewscal_set_meeting_timezone (ESoapMessage *msg, icaltimezone *icaltz);
7879
7980 guint e_cal_backend_ews_rid_to_index (icaltimezone *timezone, const gchar *rid, icalcomponent *comp, GError **error);
8081
82 struct icaltimetype
83 e_cal_backend_ews_get_datetime_with_zone (ETimezoneCache *timezone_cache,
84 icalcomponent *comp,
85 icalproperty_kind prop_kind,
86 struct icaltimetype (* get_func) (const icalproperty *prop));
87
8188 G_END_DECLS
8289
8390 #endif
8686 " calendar:Resources" \
8787 " calendar:ModifiedOccurrences" \
8888 " calendar:IsMeeting" \
89 " calendar:IsResponseRequested" \
8990 " calendar:MyResponseType" \
9091 " calendar:RequiredAttendees" \
9192 " calendar:OptionalAttendees"
577578 if (start_zone != NULL) {
578579 icalcomp = icalcomponent_get_first_component (vcomp, kind);
579580
580 dt = icalcomponent_get_dtstart (icalcomp);
581 dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart);
581582 dt = icaltime_convert_to_zone (dt, start_zone);
582583 icalcomponent_set_dtstart (icalcomp, dt);
583584
585586 e_timezone_cache_add_timezone (timezone_cache, start_zone);
586587
587588 if (end_zone != NULL) {
588 dt = icalcomponent_get_dtend (icalcomp);
589 dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend);
589590 dt = icaltime_convert_to_zone (dt, end_zone);
590591 icalcomponent_set_dtend (icalcomp, dt);
591592
653654 zone = icaltimezone_get_builtin_timezone (tzid);
654655
655656 if (zone != NULL) {
656 dt = icalcomponent_get_dtstart (icalcomp);
657 dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, icalcomp, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart);
657658 dt = icaltime_convert_to_zone (dt, zone);
658659 icalcomponent_set_dtstart (icalcomp, dt);
659660
660 dt = icalcomponent_get_dtend (icalcomp);
661 dt = e_cal_backend_ews_get_datetime_with_zone (timezone_cache, icalcomp, ICAL_DTEND_PROPERTY, icalproperty_get_dtend);
661662 dt = icaltime_convert_to_zone (dt, zone);
662663 icalcomponent_set_dtend (icalcomp, dt);
663664 }
678679 item_id = e_ews_item_get_id (item);
679680
680681 if (e_ews_item_get_is_meeting (item)) {
682 gboolean is_response_requested = e_ews_item_get_is_response_requested (item);
681683 gchar *user_email;
682684
683685 user_email = camel_ews_settings_dup_email (ews_settings);
717719 icalproperty_add_parameter (icalprop, cu_type);
718720 icalproperty_add_parameter (icalprop, param);
719721
722 if (is_response_requested) {
723 param = icalparameter_new_rsvp (ICAL_RSVP_TRUE);
724 icalproperty_add_parameter (icalprop, param);
725 }
726
720727 if (user_email && (email || attendee->mailbox->email) && e_ews_item_get_my_response_type (item) &&
721728 g_ascii_strcasecmp (email ? email : attendee->mailbox->email, user_email) == 0) {
722729 param = ecb_ews_responsetype_to_partstat (e_ews_item_get_my_response_type (item));
10411048
10421049 for (link = items; link; link = g_slist_next (link)) {
10431050 EEwsItem *item = link->data;
1044
1045 if (!item)
1051 ECalComponent *comp;
1052 GError *local_error = NULL;
1053
1054 if (!item || e_ews_item_get_item_type (item) == E_EWS_ITEM_TYPE_ERROR)
10461055 continue;
10471056
1048 if (e_ews_item_get_item_type (item) == E_EWS_ITEM_TYPE_ERROR) {
1049 g_propagate_error (error, g_error_copy (e_ews_item_get_error (item)));
1057 comp = ecb_ews_item_to_component_sync (cbews, item, cancellable, &local_error);
1058 if (!comp) {
1059 if (!local_error)
1060 continue;
1061
1062 g_propagate_error (error, local_error);
10501063 success = FALSE;
10511064 break;
1052 } else {
1053 ECalComponent *comp;
1054 GError *local_error = NULL;
1055
1056 comp = ecb_ews_item_to_component_sync (cbews, item, cancellable, &local_error);
1057 if (!comp) {
1058 if (!local_error)
1059 continue;
1060
1061 g_propagate_error (error, local_error);
1062 success = FALSE;
1063 break;
1064 }
1065
1066 ecb_ews_store_original_comp (comp);
1067
1068 *out_components = g_slist_prepend (*out_components, comp);
1069 }
1065 }
1066
1067 ecb_ews_store_original_comp (comp);
1068
1069 *out_components = g_slist_prepend (*out_components, comp);
10701070 }
10711071
10721072 exit:
24462446 ews_settings = ecb_ews_get_collection_settings (cbews);
24472447
24482448 convert_data.connection = cbews->priv->cnc;
2449 convert_data.timezone_cache = E_TIMEZONE_CACHE (cbews);
24492450 convert_data.user_email = camel_ews_settings_dup_email (ews_settings);
24502451 convert_data.comp = comp;
24512452 convert_data.old_comp = oldcomp;
26272628 }
26282629
26292630 convert_data.connection = cbews->priv->cnc;
2631 convert_data.timezone_cache = E_TIMEZONE_CACHE (cbews);
26302632 convert_data.icalcomp = icalcomp;
26312633 convert_data.default_zone = icaltimezone_get_utc_timezone ();
26322634
26832685 if (success && e_cal_component_has_attachments (master) > 0) {
26842686 GSList *info_attachments = NULL;
26852687
2686 if (ecb_ews_extract_attachments (icalcomp, &info_attachments)) {
2688 g_warn_if_fail (ews_id != NULL);
2689
2690 if (ews_id && ecb_ews_extract_attachments (icalcomp, &info_attachments)) {
26872691 GSList *ids = NULL;
26882692
26892693 success = e_ews_connection_create_attachments_sync (cbews->priv->cnc, EWS_PRIORITY_MEDIUM,
28392843 g_clear_object (&comp);
28402844 return;
28412845 }
2846
2847 convert_data.timezone_cache = E_TIMEZONE_CACHE (cbews);
28422848
28432849 if (e_cal_component_has_recurrences (comp)) {
28442850 gint *index;
29232929 icalcomponent_add_property (vevent, icalproperty_new_status (ICAL_STATUS_CANCELLED));
29242930 prop = icalcomponent_get_first_property (vevent, ICAL_METHOD_PROPERTY);
29252931 if (prop != NULL) icalcomponent_remove_property (vevent, prop);
2926 dt = icalcomponent_get_dtstart (vevent);
2932 dt = e_cal_backend_ews_get_datetime_with_zone (E_TIMEZONE_CACHE (cbews), vevent, ICAL_DTSTART_PROPERTY, icalproperty_get_dtstart);
29272933 icaltz = (icaltimezone *)
29282934 (dt.zone ? dt.zone : ecb_ews_get_timezone_from_ical_component (cbews, vevent));
29292935 vtz = icaltimezone_get_component (icaltz);
29752981 EwsFolderId *fid;
29762982
29772983 convert_data.connection = cbews->priv->cnc;
2984 convert_data.timezone_cache = E_TIMEZONE_CACHE (cbews);
29782985 convert_data.icalcomp = subcomp;
29792986 convert_data.default_zone = icaltimezone_get_utc_timezone ();
29802987
32543261 } else {
32553262 EwsCalendarConvertData convert_data = { 0 };
32563263
3264 convert_data.timezone_cache = E_TIMEZONE_CACHE (cbews);
32573265 convert_data.response_type = (gchar *) response_type;
32583266 convert_data.item_id = item_id;
32593267 convert_data.change_key = change_key;
33563364 break;
33573365 }
33583366 }
3367
3368 convert_data.timezone_cache = E_TIMEZONE_CACHE (cbews);
33593369
33603370 e_ews_connection_update_items_sync (
33613371 cbews->priv->cnc,
17741774 CamelFolder *folder;
17751775 CamelFolderSummary *folder_summary;
17761776 CamelEwsFolder *ews_folder;
1777 CamelSettings *settings;
1778 gboolean filter_inbox = FALSE;
1779 gboolean filter_junk = FALSE;
1780 gboolean filter_junk_inbox = FALSE;
1781 gboolean offline_limit_by_age = FALSE;
1782 CamelTimeUnit offline_limit_unit;
1783 gint offline_limit_value = 0;
1784 guint32 add_folder_flags = 0;
17771785 gchar *state_file;
17781786 const gchar *short_name;
17791787
18001808 return NULL;
18011809 }
18021810
1811 settings = camel_service_ref_settings (CAMEL_SERVICE (store));
1812
1813 g_object_get (
1814 settings,
1815 "filter-inbox", &filter_inbox,
1816 "filter-junk", &filter_junk,
1817 "filter-junk-inbox", &filter_junk_inbox,
1818 "limit-by-age", &offline_limit_by_age,
1819 "limit-unit", &offline_limit_unit,
1820 "limit-value", &offline_limit_value,
1821 NULL);
1822
1823 g_clear_object (&settings);
1824
18031825 camel_folder_take_folder_summary (folder, folder_summary);
18041826
18051827 /* set/load persistent state */
18151837 }
18161838
18171839 if (camel_offline_folder_can_downsync (CAMEL_OFFLINE_FOLDER (folder))) {
1818 CamelSettings *settings;
1819 gboolean offline_limit_by_age = FALSE;
1820 CamelTimeUnit offline_limit_unit;
1821 gint offline_limit_value;
18221840 time_t when = (time_t) 0;
1823
1824 settings = camel_service_ref_settings (CAMEL_SERVICE (store));
1825
1826 g_object_get (
1827 settings,
1828 "limit-by-age", &offline_limit_by_age,
1829 "limit-unit", &offline_limit_unit,
1830 "limit-value", &offline_limit_value,
1831 NULL);
1832
1833 g_clear_object (&settings);
18341841
18351842 if (offline_limit_by_age)
18361843 when = camel_time_value_apply (when, offline_limit_unit, offline_limit_value);
18541861
18551862 if (!g_ascii_strcasecmp (folder_name, "Inbox") ||
18561863 folder_has_inbox_type (CAMEL_EWS_STORE (store), folder_name)) {
1857 CamelSettings *settings;
1858 gboolean filter_inbox;
1859
18601864 settings = camel_service_ref_settings (CAMEL_SERVICE (store));
18611865
1862 filter_inbox = camel_store_settings_get_filter_inbox (
1863 CAMEL_STORE_SETTINGS (settings));
1864
18651866 if (filter_inbox)
1866 camel_folder_set_flags (folder, camel_folder_get_flags (folder) | CAMEL_FOLDER_FILTER_RECENT);
1867
1868 g_object_unref (settings);
1869 }
1867 add_folder_flags |= CAMEL_FOLDER_FILTER_RECENT;
1868
1869 if (filter_junk)
1870 add_folder_flags |= CAMEL_FOLDER_FILTER_JUNK;
1871 } else {
1872 if (filter_junk && !filter_junk_inbox)
1873 add_folder_flags |= CAMEL_FOLDER_FILTER_JUNK;
1874 }
1875
1876 if (add_folder_flags)
1877 camel_folder_set_flags (folder, camel_folder_get_flags (folder) | add_folder_flags);
18701878
18711879 ews_folder->search = camel_ews_search_new (CAMEL_EWS_STORE (store));
18721880 if (!ews_folder->search) {
15381538
15391539 } else {
15401540 EMailConfigEwsDelegatesPage *page = async_context->page;
1541 GtkWidget *radio = page->priv->deliver_copy_me_radio;
1541 GtkWidget *radio;
15421542 GtkTreeModel *model;
15431543 const GSList *iter;
15441544
15511551 case EwsDelegateDeliver_DelegatesAndMe:
15521552 radio = page->priv->deliver_delegates_and_me_radio;
15531553 break;
1554 default:
15541555 case EwsDelegateDeliver_DelegatesAndSendInformationToMe:
15551556 radio = page->priv->deliver_copy_me_radio;
15561557 break;
226226 g_return_if_fail (tt != NULL);
227227
228228 if (with_timezone) {
229 if (icaltime_is_utc (*tt) || !tt->zone || tt->zone == icaltimezone_get_utc_timezone ()) {
229 if (icaltime_is_utc (*tt) || !tt->zone || tt->zone == icaltimezone_get_utc_timezone () || tt->is_date) {
230230 tz_ident = g_strdup ("Z");
231231 } else {
232232 gint offset, is_daylight, hrs, mins;
13911391 const gchar *name = (const gchar *) subparam->name;
13921392
13931393 if (g_str_has_suffix (name, "ResponseMessage")) {
1394 /* coverity[unchecked_value] */
1395 ews_get_response_status (subparam, &error);
1394 if (ews_get_response_status (subparam, &error))
1395 error = NULL;
1396
13961397 ews_handle_items_param (subparam, async_data, error);
13971398 } else {
13981399 g_warning (
73327333 GError *local_error = NULL;
73337334
73347335 g_return_if_fail (cnc != NULL);
7336 g_return_if_fail (parent != NULL);
73357337
73367338 simple = g_simple_async_result_new (
73377339 G_OBJECT (cnc), callback, user_data,
74347436 gboolean ret;
74357437
74367438 g_return_val_if_fail (cnc != NULL, FALSE);
7439 g_return_val_if_fail (parent != NULL, FALSE);
74377440
74387441 closure = e_async_closure_new ();
74397442
146146 if (priv->folder_type == E_EWS_FOLDER_TYPE_MAILBOX) {
147147 subparam = e_soap_parameter_get_first_child_by_name (node, "FolderClass");
148148 if (subparam) {
149 EEwsFolderType folder_type;
149150 gchar *folder_class = e_soap_parameter_get_string_value (subparam);
150151
151 priv->folder_type = E_EWS_FOLDER_TYPE_UNKNOWN;
152 folder_type = E_EWS_FOLDER_TYPE_UNKNOWN;
152153
153154 if (g_strcmp0 (folder_class, "IPF.Note") == 0 || (folder_class && g_str_has_prefix (folder_class, "IPF.Note."))) {
154 priv->folder_type = E_EWS_FOLDER_TYPE_MAILBOX;
155 folder_type = E_EWS_FOLDER_TYPE_MAILBOX;
155156 } else if (g_strcmp0 (folder_class, "IPF.Contact") == 0) {
156 priv->folder_type = E_EWS_FOLDER_TYPE_CONTACTS;
157 folder_type = E_EWS_FOLDER_TYPE_CONTACTS;
157158 } else if (g_strcmp0 (folder_class, "IPF.Appointment") == 0) {
158 priv->folder_type = E_EWS_FOLDER_TYPE_CALENDAR;
159 folder_type = E_EWS_FOLDER_TYPE_CALENDAR;
159160 } else if (g_strcmp0 (folder_class, "IPF.Task") == 0) {
160 priv->folder_type = E_EWS_FOLDER_TYPE_TASKS;
161 folder_type = E_EWS_FOLDER_TYPE_TASKS;
161162 } else if (g_strcmp0 (folder_class, "IPF.StickyNote") == 0) {
162 priv->folder_type = E_EWS_FOLDER_TYPE_MEMOS;
163 folder_type = E_EWS_FOLDER_TYPE_MEMOS;
163164 }
165
166 priv->folder_type = folder_type;
164167
165168 g_free (folder_class);
166169 }
112112 time_t date_received;
113113 time_t date_sent;
114114 time_t date_created;
115 time_t last_modified_time;
115116
116117 gsize size;
117118 gchar *msg_id;
137138 EwsMailbox *sender;
138139
139140 gboolean is_meeting;
141 gboolean is_response_requested;
140142 GSList *modified_occurrences;
141143 GSList *attachments_ids;
142144 gchar *my_response_type;
280282
281283 item->priv->item_type = E_EWS_ITEM_TYPE_UNKNOWN;
282284 item->priv->is_meeting = FALSE;
285 item->priv->is_response_requested = FALSE;
283286
284287 item->priv->mapi_extended_tags = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free);
285288 item->priv->mapi_extended_sets = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_hash_table_destroy);
10731076 } else if (!g_ascii_strcasecmp (name, "DateTimeCreated")) {
10741077 value = e_soap_parameter_get_string_value (subparam);
10751078 priv->date_created = ews_item_parse_date (value);
1079 g_free (value);
1080 } else if (!g_ascii_strcasecmp (name, "LastModifiedTime")) {
1081 value = e_soap_parameter_get_string_value (subparam);
1082 priv->last_modified_time = ews_item_parse_date (value);
10761083 g_free (value);
10771084 } else if (!g_ascii_strcasecmp (name, "HasAttachments")) {
10781085 value = e_soap_parameter_get_string_value (subparam);
11391146 value = e_soap_parameter_get_string_value (subparam);
11401147 priv->is_meeting = (!g_ascii_strcasecmp (value, "true"));
11411148 g_free (value);
1149 } else if (!g_ascii_strcasecmp (name, "IsResponseRequested")) {
1150 value = e_soap_parameter_get_string_value (subparam);
1151 priv->is_response_requested = (!g_ascii_strcasecmp (value, "true"));
1152 g_free (value);
11421153 } else if (!g_ascii_strcasecmp (name, "MyResponseType")) {
11431154 g_free (priv->my_response_type);
11441155 priv->my_response_type = e_soap_parameter_get_string_value (subparam);
13661377 return item->priv->date_created;
13671378 }
13681379
1380 time_t
1381 e_ews_item_get_last_modified_time (EEwsItem *item)
1382 {
1383 g_return_val_if_fail (E_IS_EWS_ITEM (item), -1);
1384
1385 return item->priv->last_modified_time;
1386 }
1387
13691388 gboolean
13701389 e_ews_item_has_attachments (EEwsItem *item,
13711390 gboolean *has_attachments)
13941413 g_return_val_if_fail (E_IS_EWS_ITEM (item), FALSE);
13951414
13961415 return item->priv->is_meeting;
1416 }
1417
1418 gboolean
1419 e_ews_item_get_is_response_requested (EEwsItem *item)
1420 {
1421 g_return_val_if_fail (E_IS_EWS_ITEM (item), FALSE);
1422
1423 return item->priv->is_response_requested;
13971424 }
13981425
13991426 gboolean
189189 time_t e_ews_item_get_date_received (EEwsItem *item);
190190 time_t e_ews_item_get_date_sent (EEwsItem *item);
191191 time_t e_ews_item_get_date_created (EEwsItem *item);
192 time_t e_ews_item_get_last_modified_time
193 (EEwsItem *item);
192194 gboolean e_ews_item_has_attachments (EEwsItem *item,
193195 gboolean *has_attachments);
194196 gboolean e_ews_item_is_read (EEwsItem *item,
215217 void e_ews_mailbox_free (EwsMailbox *mailbox);
216218
217219 gboolean e_ews_item_get_is_meeting (EEwsItem *item);
220 gboolean e_ews_item_get_is_response_requested
221 (EEwsItem *item);
218222 const GSList * e_ews_item_get_modified_occurrences
219223 (EEwsItem *item);
220224 gchar * e_ews_embed_attachment_id_in_uri (const gchar *olduri, const gchar *attach_id);