Merge lp:~mterry/duplicity/po-fixes into lp:~duplicity-team/duplicity/trunk
- po-fixes
- Merge into trunk
Proposed by
Michael Terry
Status: | Merged |
---|---|
Approved by: | Kenneth Loafman |
Approved revision: | 548 |
Merged at revision: | not available |
Proposed branch: | lp:~mterry/duplicity/po-fixes |
Merge into: | lp:~duplicity-team/duplicity/trunk |
Diff against target: | None lines |
To merge this branch: | bzr merge lp:~mterry/duplicity/po-fixes |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Kenneth Loafman | Approve | ||
Review via email: mp+8160@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Michael Terry (mterry) wrote : | # |
Revision history for this message
Kenneth Loafman (kenneth-loafman) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'dist/makedist' |
2 | --- dist/makedist 2009-06-24 17:02:34 +0000 |
3 | +++ dist/makedist 2009-07-02 21:51:53 +0000 |
4 | @@ -125,14 +125,19 @@ |
5 | (SourceDir, filename, tardir)), filename |
6 | |
7 | os.mkdir(os.path.join(tardir, "po")) |
8 | + assert not os.system("cd po && ./update-pot") |
9 | for filename in [ |
10 | - "Makevars", |
11 | - "POTFILES.in", |
12 | + "duplicity.pot", |
13 | ]: |
14 | assert not os.system("cp po/%s %s/po" % (filename, tardir)), filename |
15 | - for lang in ["io"]: |
16 | - assert not os.mkdir(os.path.join(tardir, "po", lang)), lang |
17 | - assert not os.system("cp po/%s/duplicity.[pm]o %s/po/%s" % (lang, tardir, lang)), lang |
18 | + linguas = open('po/LINGUAS') |
19 | + for line in linguas: |
20 | + langs = line.split() |
21 | + for lang in langs: |
22 | + assert not os.mkdir(os.path.join(tardir, "po", lang)), lang |
23 | + assert not os.system("cp po/%s.po %s/po/%s" % (lang, tardir, lang)), lang |
24 | + assert not os.system("msgfmt po/%s.po -o %s/po/%s/duplicity.mo" % (lang, tardir, lang)), lang |
25 | + linguas.close() |
26 | |
27 | VersionedCopy(os.path.join(SourceDir, "globals.py"), |
28 | os.path.join(tardir, "src", "globals.py")) |
29 | |
30 | === added file 'po/LINGUAS' |
31 | --- po/LINGUAS 1970-01-01 00:00:00 +0000 |
32 | +++ po/LINGUAS 2009-07-02 21:51:53 +0000 |
33 | @@ -0,0 +1,1 @@ |
34 | +io |
35 | |
36 | === modified file 'po/POTFILES.in' |
37 | --- po/POTFILES.in 2008-12-29 14:50:41 +0000 |
38 | +++ po/POTFILES.in 2009-07-02 21:51:53 +0000 |
39 | @@ -1,34 +1,45 @@ |
40 | [encoding: UTF-8] |
41 | |
42 | -duplicity |
43 | +duplicity-bin |
44 | rdiffdir |
45 | -_librsyncmodule.c |
46 | -src/asyncscheduler.py |
47 | -src/backend.py |
48 | -src/collections.py |
49 | -src/commandline.py |
50 | -src/diffdir.py |
51 | -src/dup_temp.py |
52 | -src/dup_threading.py |
53 | -src/dup_time.py |
54 | -src/errors.py |
55 | -src/file_naming.py |
56 | -src/globals.py |
57 | -src/gpg.py |
58 | -src/__init__.py |
59 | -src/lazy.py |
60 | -src/librsync.py |
61 | -src/log.py |
62 | -src/manifest.py |
63 | -src/misc.py |
64 | -src/patchdir.py |
65 | -src/path.py |
66 | -src/robust.py |
67 | -src/selection.py |
68 | -src/static.py |
69 | -src/statistics.py |
70 | -src/tarfile.py |
71 | -src/tempdir.py |
72 | -src/urlparse_2_5.py |
73 | -src/util.py |
74 | - |
75 | +duplicity/_librsyncmodule.c |
76 | +duplicity/asyncscheduler.py |
77 | +duplicity/backend.py |
78 | +duplicity/collections.py |
79 | +duplicity/commandline.py |
80 | +duplicity/diffdir.py |
81 | +duplicity/dup_temp.py |
82 | +duplicity/dup_threading.py |
83 | +duplicity/dup_time.py |
84 | +duplicity/errors.py |
85 | +duplicity/file_naming.py |
86 | +duplicity/globals.py |
87 | +duplicity/gpg.py |
88 | +duplicity/__init__.py |
89 | +duplicity/lazy.py |
90 | +duplicity/librsync.py |
91 | +duplicity/log.py |
92 | +duplicity/manifest.py |
93 | +duplicity/misc.py |
94 | +duplicity/patchdir.py |
95 | +duplicity/path.py |
96 | +duplicity/robust.py |
97 | +duplicity/selection.py |
98 | +duplicity/static.py |
99 | +duplicity/statistics.py |
100 | +duplicity/tarfile.py |
101 | +duplicity/tempdir.py |
102 | +duplicity/urlparse_2_5.py |
103 | +duplicity/util.py |
104 | +duplicity/backends/botobackend.py |
105 | +duplicity/backends/cloudfilesbackend.py |
106 | +duplicity/backends/ftpbackend.py |
107 | +duplicity/backends/giobackend.py |
108 | +duplicity/backends/hsibackend.py |
109 | +duplicity/backends/imapbackend.py |
110 | +duplicity/backends/__init__.py |
111 | +duplicity/backends/localbackend.py |
112 | +duplicity/backends/rsyncbackend.py |
113 | +duplicity/backends/sshbackend.py |
114 | +duplicity/backends/tahoebackend.py |
115 | +duplicity/backends/webdavbackend.py |
116 | |
117 | === added file 'po/duplicity.pot' |
118 | --- po/duplicity.pot 1970-01-01 00:00:00 +0000 |
119 | +++ po/duplicity.pot 2009-07-02 21:51:53 +0000 |
120 | @@ -0,0 +1,1080 @@ |
121 | +# SOME DESCRIPTIVE TITLE. |
122 | +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
123 | +# This file is distributed under the same license as the PACKAGE package. |
124 | +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. |
125 | +# |
126 | +#, fuzzy |
127 | +msgid "" |
128 | +msgstr "" |
129 | +"Project-Id-Version: PACKAGE VERSION\n" |
130 | +"Report-Msgid-Bugs-To: Kenneth Loafman <kenneth@loafman.com>\n" |
131 | +"POT-Creation-Date: 2009-07-02 17:50-0400\n" |
132 | +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
133 | +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
134 | +"Language-Team: LANGUAGE <LL@li.org>\n" |
135 | +"MIME-Version: 1.0\n" |
136 | +"Content-Type: text/plain; charset=CHARSET\n" |
137 | +"Content-Transfer-Encoding: 8bit\n" |
138 | +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" |
139 | + |
140 | +#: ../duplicity-bin:437 |
141 | +msgid "" |
142 | +"Fatal Error: Unable to start incremental backup. Old signatures not found " |
143 | +"and incremental specified" |
144 | +msgstr "" |
145 | + |
146 | +#: ../duplicity-bin:441 |
147 | +msgid "No signatures found, switching to full backup." |
148 | +msgstr "" |
149 | + |
150 | +#: ../duplicity-bin:455 |
151 | +msgid "Backup Statistics" |
152 | +msgstr "" |
153 | + |
154 | +#: ../duplicity-bin:508 |
155 | +msgid "No signature data found, unable to list files." |
156 | +msgstr "" |
157 | + |
158 | +#: ../duplicity-bin:537 |
159 | +#, python-format |
160 | +msgid "%s not found in archive, no files restored." |
161 | +msgstr "" |
162 | + |
163 | +#: ../duplicity-bin:541 |
164 | +msgid "No files found in archive - nothing restored." |
165 | +msgstr "" |
166 | + |
167 | +#: ../duplicity-bin:574 |
168 | +#, python-format |
169 | +msgid "Processed volume %d of %d" |
170 | +msgstr "" |
171 | + |
172 | +#: ../duplicity-bin:614 |
173 | +#, python-format |
174 | +msgid "Invalid data - %s hash mismatch:" |
175 | +msgstr "" |
176 | + |
177 | +#: ../duplicity-bin:615 |
178 | +#, python-format |
179 | +msgid "Calculated hash: %s" |
180 | +msgstr "" |
181 | + |
182 | +#: ../duplicity-bin:616 |
183 | +#, python-format |
184 | +msgid "Manifest hash: %s" |
185 | +msgstr "" |
186 | + |
187 | +#: ../duplicity-bin:633 |
188 | +#, python-format |
189 | +msgid "Volume was signed by key %s, not %s" |
190 | +msgstr "" |
191 | + |
192 | +#. Unfortunately, ngettext doesn't handle multiple number variables, so we |
193 | +#. split up the string. |
194 | +#: ../duplicity-bin:663 |
195 | +#, python-format |
196 | +msgid "Verify complete: %s, %s." |
197 | +msgstr "" |
198 | + |
199 | +#: ../duplicity-bin:664 |
200 | +#, python-format |
201 | +msgid "%d file compared" |
202 | +msgid_plural "%d files compared" |
203 | +msgstr[0] "" |
204 | +msgstr[1] "" |
205 | + |
206 | +#: ../duplicity-bin:666 |
207 | +#, python-format |
208 | +msgid "%d difference found" |
209 | +msgid_plural "%d differences found" |
210 | +msgstr[0] "" |
211 | +msgstr[1] "" |
212 | + |
213 | +#: ../duplicity-bin:685 |
214 | +msgid "No extraneous files found, nothing deleted in cleanup." |
215 | +msgstr "" |
216 | + |
217 | +#: ../duplicity-bin:690 |
218 | +msgid "Deleting this file from backend:" |
219 | +msgid_plural "Deleting these files from backend:" |
220 | +msgstr[0] "" |
221 | +msgstr[1] "" |
222 | + |
223 | +#: ../duplicity-bin:699 |
224 | +msgid "Found the following file to delete:" |
225 | +msgid_plural "Found the following files to delete:" |
226 | +msgstr[0] "" |
227 | +msgstr[1] "" |
228 | + |
229 | +#: ../duplicity-bin:703 |
230 | +msgid "Run duplicity again with the --force option to actually delete." |
231 | +msgstr "" |
232 | + |
233 | +#: ../duplicity-bin:742 |
234 | +msgid "There are backup set(s) at time(s):" |
235 | +msgstr "" |
236 | + |
237 | +#: ../duplicity-bin:744 |
238 | +msgid "Which can't be deleted because newer sets depend on them." |
239 | +msgstr "" |
240 | + |
241 | +#: ../duplicity-bin:748 |
242 | +msgid "" |
243 | +"Current active backup chain is older than specified time. However, it will " |
244 | +"not be deleted. To remove all your backups, manually purge the repository." |
245 | +msgstr "" |
246 | + |
247 | +#: ../duplicity-bin:754 |
248 | +msgid "No old backup sets found, nothing deleted." |
249 | +msgstr "" |
250 | + |
251 | +#: ../duplicity-bin:757 |
252 | +msgid "Deleting backup set at time:" |
253 | +msgid_plural "Deleting backup sets at times:" |
254 | +msgstr[0] "" |
255 | +msgstr[1] "" |
256 | + |
257 | +#: ../duplicity-bin:769 |
258 | +msgid "Found old backup set at the following time:" |
259 | +msgid_plural "Found old backup sets at the following times:" |
260 | +msgstr[0] "" |
261 | +msgstr[1] "" |
262 | + |
263 | +#: ../duplicity-bin:773 |
264 | +msgid "Rerun command with --force option to actually delete." |
265 | +msgstr "" |
266 | + |
267 | +#: ../duplicity-bin:838 ../duplicity/dup_temp.py:241 |
268 | +#, python-format |
269 | +msgid "Failed to read %s: %s" |
270 | +msgstr "" |
271 | + |
272 | +#: ../duplicity-bin:849 |
273 | +#, python-format |
274 | +msgid "Copying %s to local cache." |
275 | +msgstr "" |
276 | + |
277 | +#: ../duplicity-bin:888 |
278 | +msgid "Local and Remote metadata are synchronized, no sync needed." |
279 | +msgstr "" |
280 | + |
281 | +#: ../duplicity-bin:892 |
282 | +msgid "Synchronizing remote metadata to local cache..." |
283 | +msgstr "" |
284 | + |
285 | +#: ../duplicity-bin:896 |
286 | +msgid "Sync would copy the following from remote to local:" |
287 | +msgstr "" |
288 | + |
289 | +#: ../duplicity-bin:939 |
290 | +msgid "Unable to get free space on temp." |
291 | +msgstr "" |
292 | + |
293 | +#: ../duplicity-bin:947 |
294 | +#, python-format |
295 | +msgid "Temp space has %d available, backup needs approx %d." |
296 | +msgstr "" |
297 | + |
298 | +#: ../duplicity-bin:950 |
299 | +#, python-format |
300 | +msgid "Temp has %d available, backup will use approx %d." |
301 | +msgstr "" |
302 | + |
303 | +#: ../duplicity-bin:958 |
304 | +msgid "Unable to get max open files." |
305 | +msgstr "" |
306 | + |
307 | +#: ../duplicity-bin:962 |
308 | +#, python-format |
309 | +msgid "" |
310 | +"Max open files of %s is too low, should be >= 1024.\n" |
311 | +"Use 'ulimit -n 1024' or higher to correct.\n" |
312 | +msgstr "" |
313 | + |
314 | +#. log it -- main restart heavy lifting is done in write_multivol |
315 | +#: ../duplicity-bin:1066 |
316 | +#, python-format |
317 | +msgid "Last %s backup left a partial set, restarting." |
318 | +msgstr "" |
319 | + |
320 | +#. remove last partial backup and get new collection status |
321 | +#: ../duplicity-bin:1070 |
322 | +#, python-format |
323 | +msgid "Cleaning up previous partial %s backup set, restarting." |
324 | +msgstr "" |
325 | + |
326 | +#: ../duplicity-bin:1081 |
327 | +msgid "Last full backup date:" |
328 | +msgstr "" |
329 | + |
330 | +#: ../duplicity-bin:1083 |
331 | +msgid "Last full backup date: none" |
332 | +msgstr "" |
333 | + |
334 | +#: ../duplicity-bin:1085 |
335 | +msgid "Last full backup is too old, forcing full backup" |
336 | +msgstr "" |
337 | + |
338 | +#. For gpg errors, don't show an ugly stack trace by |
339 | +#. default. But do with sufficient verbosity. |
340 | +#: ../duplicity-bin:1159 |
341 | +#, python-format |
342 | +msgid "GPG error detail: %s" |
343 | +msgstr "" |
344 | + |
345 | +#. For user errors, don't show an ugly stack trace by |
346 | +#. default. But do with sufficient verbosity. |
347 | +#: ../duplicity-bin:1168 |
348 | +#, python-format |
349 | +msgid "User error detail: %s" |
350 | +msgstr "" |
351 | + |
352 | +#. For backend errors, don't show an ugly stack trace by |
353 | +#. default. But do with sufficient verbosity. |
354 | +#: ../duplicity-bin:1177 |
355 | +#, python-format |
356 | +msgid "Backend error detail: %s" |
357 | +msgstr "" |
358 | + |
359 | +#: ../duplicity/asyncscheduler.py:69 |
360 | +#, python-format |
361 | +msgid "instantiating at concurrency %d" |
362 | +msgstr "" |
363 | + |
364 | +#: ../duplicity/asyncscheduler.py:96 |
365 | +msgid "inserting barrier" |
366 | +msgstr "" |
367 | + |
368 | +#: ../duplicity/asyncscheduler.py:145 |
369 | +msgid "running task synchronously (asynchronicity disabled)" |
370 | +msgstr "" |
371 | + |
372 | +#: ../duplicity/asyncscheduler.py:151 |
373 | +msgid "scheduling task for asynchronous execution" |
374 | +msgstr "" |
375 | + |
376 | +#: ../duplicity/asyncscheduler.py:181 |
377 | +msgid "task completed successfully" |
378 | +msgstr "" |
379 | + |
380 | +#: ../duplicity/asyncscheduler.py:192 |
381 | +msgid "" |
382 | +"a previously scheduled task has failed; propagating the result immediately" |
383 | +msgstr "" |
384 | + |
385 | +#: ../duplicity/asyncscheduler.py:215 ../duplicity/asyncscheduler.py:236 |
386 | +#, python-format |
387 | +msgid "active workers = %d" |
388 | +msgstr "" |
389 | + |
390 | +#: ../duplicity/asyncscheduler.py:256 |
391 | +#, python-format |
392 | +msgid "task execution done (success: %s)" |
393 | +msgstr "" |
394 | + |
395 | +#: ../duplicity/backend.py:335 |
396 | +#, python-format |
397 | +msgid "Running '%s'" |
398 | +msgstr "" |
399 | + |
400 | +#: ../duplicity/backend.py:349 |
401 | +#, python-format |
402 | +msgid "Running '%s' (attempt #%d)" |
403 | +msgid_plural "Running '%s' (attempt #%d)" |
404 | +msgstr[0] "" |
405 | +msgstr[1] "" |
406 | + |
407 | +#: ../duplicity/backend.py:354 ../duplicity/backend.py:395 |
408 | +#, python-format |
409 | +msgid "Running '%s' failed (attempt #%d)" |
410 | +msgid_plural "Running '%s' failed (attempt #%d)" |
411 | +msgstr[0] "" |
412 | +msgstr[1] "" |
413 | + |
414 | +#: ../duplicity/backend.py:357 ../duplicity/backend.py:398 |
415 | +#, python-format |
416 | +msgid "Giving up trying to execute '%s' after %d attempt" |
417 | +msgid_plural "Giving up trying to execute '%s' after %d attempts" |
418 | +msgstr[0] "" |
419 | +msgstr[1] "" |
420 | + |
421 | +#: ../duplicity/backend.py:368 ../duplicity/backend.py:385 |
422 | +#, python-format |
423 | +msgid "Reading results of '%s'" |
424 | +msgstr "" |
425 | + |
426 | +#: ../duplicity/collections.py:159 |
427 | +msgid "Fatal Error: No manifests found for most recent backup" |
428 | +msgstr "" |
429 | + |
430 | +#: ../duplicity/collections.py:168 |
431 | +msgid "" |
432 | +"Fatal Error: Remote manifest does not match local one. Either the remote " |
433 | +"backup set or the local archive directory has been corrupted." |
434 | +msgstr "" |
435 | + |
436 | +#: ../duplicity/collections.py:176 |
437 | +msgid "Fatal Error: Neither remote nor local manifest is readable." |
438 | +msgstr "" |
439 | + |
440 | +#: ../duplicity/collections.py:280 |
441 | +msgid "Preferring Backupset over previous one!" |
442 | +msgstr "" |
443 | + |
444 | +#: ../duplicity/collections.py:283 |
445 | +#, python-format |
446 | +msgid "Ignoring incremental Backupset (start_time: %s; needed: %s)" |
447 | +msgstr "" |
448 | + |
449 | +#: ../duplicity/collections.py:288 |
450 | +#, python-format |
451 | +msgid "Added incremental Backupset (start_time: %s / end_time: %s)" |
452 | +msgstr "" |
453 | + |
454 | +#: ../duplicity/collections.py:354 |
455 | +msgid "Chain start time: " |
456 | +msgstr "" |
457 | + |
458 | +#: ../duplicity/collections.py:355 |
459 | +msgid "Chain end time: " |
460 | +msgstr "" |
461 | + |
462 | +#: ../duplicity/collections.py:356 |
463 | +#, python-format |
464 | +msgid "Number of contained backup sets: %d" |
465 | +msgstr "" |
466 | + |
467 | +#: ../duplicity/collections.py:358 |
468 | +#, python-format |
469 | +msgid "Total number of contained volumes: %d" |
470 | +msgstr "" |
471 | + |
472 | +#: ../duplicity/collections.py:360 |
473 | +msgid "Type of backup set:" |
474 | +msgstr "" |
475 | + |
476 | +#: ../duplicity/collections.py:360 |
477 | +msgid "Time:" |
478 | +msgstr "" |
479 | + |
480 | +#: ../duplicity/collections.py:360 |
481 | +msgid "Num volumes:" |
482 | +msgstr "" |
483 | + |
484 | +#: ../duplicity/collections.py:364 |
485 | +msgid "Full" |
486 | +msgstr "" |
487 | + |
488 | +#: ../duplicity/collections.py:367 |
489 | +msgid "Incremental" |
490 | +msgstr "" |
491 | + |
492 | +#: ../duplicity/collections.py:427 |
493 | +msgid "local" |
494 | +msgstr "" |
495 | + |
496 | +#: ../duplicity/collections.py:429 |
497 | +msgid "remote" |
498 | +msgstr "" |
499 | + |
500 | +#: ../duplicity/collections.py:581 |
501 | +msgid "Collection Status" |
502 | +msgstr "" |
503 | + |
504 | +#: ../duplicity/collections.py:583 |
505 | +#, python-format |
506 | +msgid "Connecting with backend: %s" |
507 | +msgstr "" |
508 | + |
509 | +#: ../duplicity/collections.py:585 |
510 | +#, python-format |
511 | +msgid "Archive dir: %s" |
512 | +msgstr "" |
513 | + |
514 | +#: ../duplicity/collections.py:588 |
515 | +#, python-format |
516 | +msgid "Found %d backup chain without signatures." |
517 | +msgid_plural "Found %d backup chains without signatures." |
518 | +msgstr[0] "" |
519 | +msgstr[1] "" |
520 | + |
521 | +#: ../duplicity/collections.py:593 |
522 | +#, python-format |
523 | +msgid "Signature-less chain %d of %d:" |
524 | +msgstr "" |
525 | + |
526 | +#: ../duplicity/collections.py:599 |
527 | +msgid "Found a complete backup chain with matching signature chain:" |
528 | +msgstr "" |
529 | + |
530 | +#: ../duplicity/collections.py:603 |
531 | +msgid "No backup chains with active signatures found" |
532 | +msgstr "" |
533 | + |
534 | +#: ../duplicity/collections.py:606 |
535 | +#, python-format |
536 | +msgid "Also found %d backup set not part of any chain," |
537 | +msgid_plural "Also found %d backup sets not part of any chain," |
538 | +msgstr[0] "" |
539 | +msgstr[1] "" |
540 | + |
541 | +#: ../duplicity/collections.py:610 |
542 | +#, python-format |
543 | +msgid "and %d incomplete backup set." |
544 | +msgid_plural "and %d incomplete backup sets." |
545 | +msgstr[0] "" |
546 | +msgstr[1] "" |
547 | + |
548 | +#: ../duplicity/collections.py:614 |
549 | +msgid "These may be deleted by running duplicity with the --cleanup option." |
550 | +msgstr "" |
551 | + |
552 | +#: ../duplicity/collections.py:617 |
553 | +msgid "No orphaned or incomplete backup sets found." |
554 | +msgstr "" |
555 | + |
556 | +#: ../duplicity/collections.py:633 |
557 | +#, python-format |
558 | +msgid "%d file exists on backend" |
559 | +msgid_plural "%d files exist on backend" |
560 | +msgstr[0] "" |
561 | +msgstr[1] "" |
562 | + |
563 | +#: ../duplicity/collections.py:640 |
564 | +#, python-format |
565 | +msgid "%d file exists in cache" |
566 | +msgid_plural "%d files exist in cache" |
567 | +msgstr[0] "" |
568 | +msgstr[1] "" |
569 | + |
570 | +#. It matches, remove the last backup set: |
571 | +#: ../duplicity/collections.py:692 |
572 | +msgid "Warning, discarding last backup set, because of missing signature file." |
573 | +msgstr "" |
574 | + |
575 | +#: ../duplicity/collections.py:725 |
576 | +msgid "Warning, found the following local orphaned signature file:" |
577 | +msgid_plural "Warning, found the following local orphaned signature files:" |
578 | +msgstr[0] "" |
579 | +msgstr[1] "" |
580 | + |
581 | +#: ../duplicity/collections.py:734 |
582 | +msgid "Warning, found the following remote orphaned signature file:" |
583 | +msgid_plural "Warning, found the following remote orphaned signature files:" |
584 | +msgstr[0] "" |
585 | +msgstr[1] "" |
586 | + |
587 | +#: ../duplicity/collections.py:744 |
588 | +msgid "Warning, found an unnecessary signature chain" |
589 | +msgid_plural "Warning, found unnecessary signature chains" |
590 | +msgstr[0] "" |
591 | +msgstr[1] "" |
592 | + |
593 | +#: ../duplicity/collections.py:752 |
594 | +msgid "Warning, found signatures but no corresponding backup files" |
595 | +msgstr "" |
596 | + |
597 | +#: ../duplicity/collections.py:756 |
598 | +msgid "" |
599 | +"Warning, found incomplete backup sets, probably left from aborted session" |
600 | +msgstr "" |
601 | + |
602 | +#: ../duplicity/collections.py:760 |
603 | +msgid "Warning, found the following orphaned backup file:" |
604 | +msgid_plural "Warning, found the following orphaned backup files:" |
605 | +msgstr[0] "" |
606 | +msgstr[1] "" |
607 | + |
608 | +#: ../duplicity/collections.py:778 |
609 | +#, python-format |
610 | +msgid "Extracting backup chains from list of files: %s" |
611 | +msgstr "" |
612 | + |
613 | +#: ../duplicity/collections.py:788 |
614 | +#, python-format |
615 | +msgid "File %s is part of known set" |
616 | +msgstr "" |
617 | + |
618 | +#: ../duplicity/collections.py:791 |
619 | +#, python-format |
620 | +msgid "File %s is not part of a known set; creating new set" |
621 | +msgstr "" |
622 | + |
623 | +#: ../duplicity/collections.py:796 |
624 | +#, python-format |
625 | +msgid "Ignoring file (rejected by backup set) '%s'" |
626 | +msgstr "" |
627 | + |
628 | +#: ../duplicity/collections.py:809 |
629 | +#, python-format |
630 | +msgid "Found backup chain %s" |
631 | +msgstr "" |
632 | + |
633 | +#: ../duplicity/collections.py:814 |
634 | +#, python-format |
635 | +msgid "Added set %s to pre-existing chain %s" |
636 | +msgstr "" |
637 | + |
638 | +#: ../duplicity/collections.py:818 |
639 | +#, python-format |
640 | +msgid "Found orphaned set %s" |
641 | +msgstr "" |
642 | + |
643 | +#: ../duplicity/commandline.py:122 |
644 | +#, python-format |
645 | +msgid "" |
646 | +"Warning: Option %s is pending deprecation and will be removed in a future " |
647 | +"release.\n" |
648 | +"Use of default filenames is strongly suggested." |
649 | +msgstr "" |
650 | + |
651 | +#: ../duplicity/commandline.py:173 |
652 | +#, python-format |
653 | +msgid "Error opening file %s" |
654 | +msgstr "" |
655 | + |
656 | +#: ../duplicity/commandline.py:285 |
657 | +msgid "Unable to load gio module" |
658 | +msgstr "" |
659 | + |
660 | +#: ../duplicity/commandline.py:416 |
661 | +#, python-format |
662 | +msgid "Using archive dir: %s" |
663 | +msgstr "" |
664 | + |
665 | +#: ../duplicity/commandline.py:417 |
666 | +#, python-format |
667 | +msgid "Using backup name: %s" |
668 | +msgstr "" |
669 | + |
670 | +#: ../duplicity/commandline.py:424 |
671 | +#, python-format |
672 | +msgid "Command line error: %s" |
673 | +msgstr "" |
674 | + |
675 | +#: ../duplicity/commandline.py:425 |
676 | +msgid "Enter 'duplicity --help' for help screen." |
677 | +msgstr "" |
678 | + |
679 | +#: ../duplicity/commandline.py:431 |
680 | +#, python-format |
681 | +msgid "" |
682 | +"\n" |
683 | +"duplicity version %s running on %s.\n" |
684 | +"Usage:\n" |
685 | +" duplicity [full|incremental] [options] source_dir target_url\n" |
686 | +" duplicity [restore] [options] source_url target_dir\n" |
687 | +" duplicity verify [options] source_url target_dir\n" |
688 | +" duplicity collection-status [options] target_url\n" |
689 | +" duplicity list-current-files [options] target_url\n" |
690 | +" duplicity cleanup [options] target_url\n" |
691 | +" duplicity remove-older-than time [options] target_url\n" |
692 | +" duplicity remove-all-but-n-full count [options] target_url\n" |
693 | +"\n" |
694 | +"Backends and their URL formats:\n" |
695 | +" cf+http://container_name\n" |
696 | +" file:///some_dir\n" |
697 | +" ftp://user[:password]@other.host[:port]/some_dir\n" |
698 | +" hsi://user[:password]@other.host[:port]/some_dir\n" |
699 | +" imap://user[:password]@other.host[:port]/some_dir\n" |
700 | +" rsync://user[:password]@other.host[:port]::/module/some_dir\n" |
701 | +" rsync://user[:password]@other.host[:port]/relative_path\n" |
702 | +" rsync://user[:password]@other.host[:port]//absolute_path\n" |
703 | +" s3://other.host/bucket_name[/prefix]\n" |
704 | +" s3+http://bucket_name[/prefix]\n" |
705 | +" scp://user[:password]@other.host[:port]/some_dir\n" |
706 | +" ssh://user[:password]@other.host[:port]/some_dir\n" |
707 | +" tahoe://alias/directory\n" |
708 | +" webdav://user[:password]@other.host/some_dir\n" |
709 | +" webdavs://user[:password]@other.host/some_dir\n" |
710 | +"\n" |
711 | +"Commands:\n" |
712 | +" cleanup <target_url>\n" |
713 | +" collection-status <target_url>\n" |
714 | +" full <source_dir> <target_url>\n" |
715 | +" incr <source_dir> <target_url>\n" |
716 | +" list-current-files <target_url>\n" |
717 | +" restore <target_url> <source_dir>\n" |
718 | +" remove-older-than <time> <target_url>\n" |
719 | +" remove-all-but-n-full <count> <target_url>\n" |
720 | +" verify <target_url> <source_dir>\n" |
721 | +"\n" |
722 | +"Options:\n" |
723 | +" --allow-source-mismatch\n" |
724 | +" --archive-dir <path>\n" |
725 | +" --asynchronous-upload\n" |
726 | +" --dry-run\n" |
727 | +" --encrypt-key <gpg-key-id>\n" |
728 | +" --exclude <shell_pattern>\n" |
729 | +" --exclude-device-files\n" |
730 | +" --exclude-filelist <filename>\n" |
731 | +" --exclude-filelist-stdin\n" |
732 | +" --exclude-globbing-filelist <filename>\n" |
733 | +" --exclude-other-filesystems\n" |
734 | +" --exclude-regexp <regexp>\n" |
735 | +" --file-to-restore <path>\n" |
736 | +" --full-if-older-than <time>\n" |
737 | +" --force\n" |
738 | +" --ftp-passive\n" |
739 | +" --ftp-regular\n" |
740 | +" --gio\n" |
741 | +" --gpg-options\n" |
742 | +" --include <shell_pattern>\n" |
743 | +" --include-filelist <filename>\n" |
744 | +" --include-filelist-stdin\n" |
745 | +" --include-globbing-filelist <filename>\n" |
746 | +" --include-regexp <regexp>\n" |
747 | +" --log-fd <fd>\n" |
748 | +" --log-file <filename>\n" |
749 | +" --name <backup name>\n" |
750 | +" --no-encryption\n" |
751 | +" --no-print-statistics\n" |
752 | +" --null-separator\n" |
753 | +" --num-retries <number>\n" |
754 | +" --old-filenames\n" |
755 | +" --s3-european-buckets\n" |
756 | +" --s3-use-new-style\n" |
757 | +" --scp-command <command>\n" |
758 | +" --sftp-command <command>\n" |
759 | +" --sign-key <gpg-key-id>\n" |
760 | +" --ssh-askpass\n" |
761 | +" --ssh-options\n" |
762 | +" --short-filenames\n" |
763 | +" --tempdir <directory>\n" |
764 | +" --timeout <seconds>\n" |
765 | +" -t<time>, --time <time>, --restore-time <time>\n" |
766 | +" --time-separator <char>\n" |
767 | +" --use-agent\n" |
768 | +" --version\n" |
769 | +" --volsize <number>\n" |
770 | +" -v[0-9], --verbosity [0-9]\n" |
771 | +" Verbosity must be one of: digit [0-9], character [ewnid],\n" |
772 | +" or word ['error', 'warning', 'notice', 'info', 'debug'].\n" |
773 | +" The default is 4 (Notice). It is strongly recommended\n" |
774 | +" that verbosity level is set at 2 (Warning) or higher.\n" |
775 | +msgstr "" |
776 | + |
777 | +#: ../duplicity/commandline.py:544 |
778 | +#, python-format |
779 | +msgid "Specified archive directory '%s' does not exist, or is not a directory" |
780 | +msgstr "" |
781 | + |
782 | +#: ../duplicity/commandline.py:553 |
783 | +#, python-format |
784 | +msgid "" |
785 | +"Sign key should be an 8 character hex string, like 'AA0E73D2'.\n" |
786 | +"Received '%s' instead." |
787 | +msgstr "" |
788 | + |
789 | +#: ../duplicity/commandline.py:611 |
790 | +#, python-format |
791 | +msgid "" |
792 | +"Restore destination directory %s already exists.\n" |
793 | +"Will not overwrite." |
794 | +msgstr "" |
795 | + |
796 | +#: ../duplicity/commandline.py:616 |
797 | +#, python-format |
798 | +msgid "Verify directory %s does not exist" |
799 | +msgstr "" |
800 | + |
801 | +#: ../duplicity/commandline.py:622 |
802 | +#, python-format |
803 | +msgid "Backup source directory %s does not exist." |
804 | +msgstr "" |
805 | + |
806 | +#: ../duplicity/commandline.py:694 |
807 | +#, python-format |
808 | +msgid "" |
809 | +"Bad URL '%s'.\n" |
810 | +"Examples of URL strings are \"scp://user@host.net:1234/path\" and\n" |
811 | +"\"file:///usr/local\". See the man page for more information." |
812 | +msgstr "" |
813 | + |
814 | +#: ../duplicity/commandline.py:719 |
815 | +msgid "Main action: " |
816 | +msgstr "" |
817 | + |
818 | +#: ../duplicity/diffdir.py:105 |
819 | +#, python-format |
820 | +msgid "Error %s getting delta for %s" |
821 | +msgstr "" |
822 | + |
823 | +#: ../duplicity/diffdir.py:119 |
824 | +#, python-format |
825 | +msgid "Getting delta of %s and %s" |
826 | +msgstr "" |
827 | + |
828 | +#: ../duplicity/diffdir.py:164 |
829 | +#, python-format |
830 | +msgid "A %s" |
831 | +msgstr "" |
832 | + |
833 | +#: ../duplicity/diffdir.py:171 |
834 | +#, python-format |
835 | +msgid "M %s" |
836 | +msgstr "" |
837 | + |
838 | +#: ../duplicity/diffdir.py:193 |
839 | +#, python-format |
840 | +msgid "Comparing %s and %s" |
841 | +msgstr "" |
842 | + |
843 | +#. but signature says it did |
844 | +#: ../duplicity/diffdir.py:199 |
845 | +#, python-format |
846 | +msgid "D %s" |
847 | +msgstr "" |
848 | + |
849 | +#: ../duplicity/dup_time.py:48 |
850 | +#, python-format |
851 | +msgid "" |
852 | +"Bad interval string \"%s\"\n" |
853 | +"\n" |
854 | +"Intervals are specified like 2Y (2 years) or 2h30m (2.5 hours). The\n" |
855 | +"allowed special characters are s, m, h, D, W, M, and Y. See the man\n" |
856 | +"page for more information." |
857 | +msgstr "" |
858 | + |
859 | +#: ../duplicity/dup_time.py:54 |
860 | +#, python-format |
861 | +msgid "" |
862 | +"Bad time string \"%s\"\n" |
863 | +"\n" |
864 | +"The acceptible time strings are intervals (like \"3D64s\"), w3-datetime\n" |
865 | +"strings, like \"2002-04-26T04:22:01-07:00\" (strings like\n" |
866 | +"\"2002-04-26T04:22:01\" are also acceptable - duplicity will use the\n" |
867 | +"current time zone), or ordinary dates like 2/4/1997 or 2001-04-23\n" |
868 | +"(various combinations are acceptable, but the month always precedes\n" |
869 | +"the day)." |
870 | +msgstr "" |
871 | + |
872 | +#: ../duplicity/lazy.py:326 |
873 | +#, python-format |
874 | +msgid "Warning: oldindex %s >= newindex %s" |
875 | +msgstr "" |
876 | + |
877 | +#: ../duplicity/lazy.py:401 |
878 | +#, python-format |
879 | +msgid "Error '%s' processing %s" |
880 | +msgstr "" |
881 | + |
882 | +#: ../duplicity/lazy.py:409 |
883 | +#, python-format |
884 | +msgid "Skipping %s because of previous error" |
885 | +msgstr "" |
886 | + |
887 | +#: ../duplicity/manifest.py:86 |
888 | +#, python-format |
889 | +msgid "" |
890 | +"Fatal Error: Backup source host has changed.\n" |
891 | +"Current hostname: %s\n" |
892 | +"Previous hostname: %s" |
893 | +msgstr "" |
894 | + |
895 | +#: ../duplicity/manifest.py:91 |
896 | +#, python-format |
897 | +msgid "" |
898 | +"Fatal Error: Backup source directory has changed.\n" |
899 | +"Current directory: %s\n" |
900 | +"Previous directory: %s" |
901 | +msgstr "" |
902 | + |
903 | +#: ../duplicity/manifest.py:98 |
904 | +msgid "" |
905 | +"Aborting because you may have accidentally tried to backup two different " |
906 | +"data sets to the same remote location, or using the same archive directory. " |
907 | +"If this is not a mistake, use the --allow-source-mismatch switch to avoid " |
908 | +"seeing this message" |
909 | +msgstr "" |
910 | + |
911 | +#: ../duplicity/manifest.py:181 |
912 | +msgid "Manifests not equal because different volume numbers" |
913 | +msgstr "" |
914 | + |
915 | +#: ../duplicity/manifest.py:186 |
916 | +msgid "Manifests not equal because volume lists differ" |
917 | +msgstr "" |
918 | + |
919 | +#: ../duplicity/manifest.py:191 |
920 | +msgid "Manifests not equal because hosts or directories differ" |
921 | +msgstr "" |
922 | + |
923 | +#: ../duplicity/manifest.py:338 |
924 | +msgid "Warning, found extra Volume identifier" |
925 | +msgstr "" |
926 | + |
927 | +#: ../duplicity/manifest.py:364 |
928 | +msgid "Other is not VolumeInfo" |
929 | +msgstr "" |
930 | + |
931 | +#: ../duplicity/manifest.py:367 |
932 | +msgid "Volume numbers don't match" |
933 | +msgstr "" |
934 | + |
935 | +#: ../duplicity/manifest.py:370 |
936 | +msgid "start_indicies don't match" |
937 | +msgstr "" |
938 | + |
939 | +#: ../duplicity/manifest.py:373 |
940 | +msgid "end_index don't match" |
941 | +msgstr "" |
942 | + |
943 | +#: ../duplicity/manifest.py:380 |
944 | +msgid "Hashes don't match" |
945 | +msgstr "" |
946 | + |
947 | +#: ../duplicity/misc.py:99 |
948 | +#, python-format |
949 | +msgid "Starting to write %s" |
950 | +msgstr "" |
951 | + |
952 | +#. special case first index |
953 | +#: ../duplicity/misc.py:107 |
954 | +#, python-format |
955 | +msgid "" |
956 | +"One only volume required.\n" |
957 | +"Renaming %s to %s" |
958 | +msgstr "" |
959 | + |
960 | +#: ../duplicity/patchdir.py:72 ../duplicity/patchdir.py:77 |
961 | +#, python-format |
962 | +msgid "Patching %s" |
963 | +msgstr "" |
964 | + |
965 | +#: ../duplicity/patchdir.py:565 |
966 | +#, python-format |
967 | +msgid "Writing %s of type %s" |
968 | +msgstr "" |
969 | + |
970 | +#: ../duplicity/path.py:208 ../duplicity/path.py:267 |
971 | +#, python-format |
972 | +msgid "Warning: %s has negative mtime, treating as 0." |
973 | +msgstr "" |
974 | + |
975 | +#: ../duplicity/path.py:332 |
976 | +msgid "Difference found:" |
977 | +msgstr "" |
978 | + |
979 | +#: ../duplicity/path.py:338 |
980 | +#, python-format |
981 | +msgid "New file %s" |
982 | +msgstr "" |
983 | + |
984 | +#: ../duplicity/path.py:341 |
985 | +#, python-format |
986 | +msgid "File %s is missing" |
987 | +msgstr "" |
988 | + |
989 | +#: ../duplicity/path.py:344 |
990 | +#, python-format |
991 | +msgid "File %%s has type %s, expected %s" |
992 | +msgstr "" |
993 | + |
994 | +#: ../duplicity/path.py:350 ../duplicity/path.py:376 |
995 | +#, python-format |
996 | +msgid "File %%s has permissions %o, expected %o" |
997 | +msgstr "" |
998 | + |
999 | +#: ../duplicity/path.py:355 |
1000 | +#, python-format |
1001 | +msgid "File %%s has mtime %s, expected %s" |
1002 | +msgstr "" |
1003 | + |
1004 | +#: ../duplicity/path.py:363 |
1005 | +#, python-format |
1006 | +msgid "Data for file %s is different" |
1007 | +msgstr "" |
1008 | + |
1009 | +#: ../duplicity/path.py:371 |
1010 | +#, python-format |
1011 | +msgid "Symlink %%s points to %s, expected %s" |
1012 | +msgstr "" |
1013 | + |
1014 | +#: ../duplicity/path.py:380 |
1015 | +#, python-format |
1016 | +msgid "Device file %%s has numbers %s, expected %s" |
1017 | +msgstr "" |
1018 | + |
1019 | +#: ../duplicity/path.py:526 |
1020 | +#, python-format |
1021 | +msgid "Making directory %s" |
1022 | +msgstr "" |
1023 | + |
1024 | +#: ../duplicity/path.py:536 |
1025 | +#, python-format |
1026 | +msgid "Deleting %s" |
1027 | +msgstr "" |
1028 | + |
1029 | +#: ../duplicity/path.py:545 |
1030 | +#, python-format |
1031 | +msgid "Touching %s" |
1032 | +msgstr "" |
1033 | + |
1034 | +#. todo: avoid circ. dep. issue |
1035 | +#: ../duplicity/path.py:552 |
1036 | +#, python-format |
1037 | +msgid "Deleting tree %s" |
1038 | +msgstr "" |
1039 | + |
1040 | +#: ../duplicity/robust.py:60 |
1041 | +#, python-format |
1042 | +msgid "Error listing directory %s" |
1043 | +msgstr "" |
1044 | + |
1045 | +#: ../duplicity/selection.py:118 |
1046 | +#, python-format |
1047 | +msgid "Skipping socket %s/%s" |
1048 | +msgstr "" |
1049 | + |
1050 | +#: ../duplicity/selection.py:120 |
1051 | +#, python-format |
1052 | +msgid "Error initializing file %s/%s" |
1053 | +msgstr "" |
1054 | + |
1055 | +#: ../duplicity/selection.py:122 |
1056 | +#, python-format |
1057 | +msgid "Error accessing possibly locked file %s/%s" |
1058 | +msgstr "" |
1059 | + |
1060 | +#: ../duplicity/selection.py:141 |
1061 | +#, python-format |
1062 | +msgid "Error accessing possibly locked file %s" |
1063 | +msgstr "" |
1064 | + |
1065 | +#. base doesn't exist |
1066 | +#: ../duplicity/selection.py:154 |
1067 | +#, python-format |
1068 | +msgid "Warning: base %s doesn't exist, continuing" |
1069 | +msgstr "" |
1070 | + |
1071 | +#: ../duplicity/selection.py:157 ../duplicity/selection.py:175 |
1072 | +#: ../duplicity/selection.py:178 |
1073 | +#, python-format |
1074 | +msgid "Selecting %s" |
1075 | +msgstr "" |
1076 | + |
1077 | +#: ../duplicity/selection.py:259 |
1078 | +#, python-format |
1079 | +msgid "" |
1080 | +"Fatal Error: The file specification\n" |
1081 | +" %s\n" |
1082 | +"cannot match any files in the base directory\n" |
1083 | +" %s\n" |
1084 | +"Useful file specifications begin with the base directory or some\n" |
1085 | +"pattern (such as '**') which matches the base directory." |
1086 | +msgstr "" |
1087 | + |
1088 | +#: ../duplicity/selection.py:267 |
1089 | +#, python-format |
1090 | +msgid "" |
1091 | +"Fatal Error while processing expression\n" |
1092 | +"%s" |
1093 | +msgstr "" |
1094 | + |
1095 | +#: ../duplicity/selection.py:277 |
1096 | +#, python-format |
1097 | +msgid "" |
1098 | +"Last selection expression:\n" |
1099 | +" %s\n" |
1100 | +"only specifies that files be included. Because the default is to\n" |
1101 | +"include all files, the expression is redundant. Exiting because this\n" |
1102 | +"probably isn't what you meant." |
1103 | +msgstr "" |
1104 | + |
1105 | +#: ../duplicity/selection.py:302 |
1106 | +#, python-format |
1107 | +msgid "Reading filelist %s" |
1108 | +msgstr "" |
1109 | + |
1110 | +#: ../duplicity/selection.py:305 |
1111 | +#, python-format |
1112 | +msgid "Sorting filelist %s" |
1113 | +msgstr "" |
1114 | + |
1115 | +#: ../duplicity/selection.py:332 |
1116 | +#, python-format |
1117 | +msgid "" |
1118 | +"Warning: file specification '%s' in filelist %s\n" |
1119 | +"doesn't start with correct prefix %s. Ignoring." |
1120 | +msgstr "" |
1121 | + |
1122 | +#: ../duplicity/selection.py:336 |
1123 | +msgid "Future prefix errors will not be logged." |
1124 | +msgstr "" |
1125 | + |
1126 | +#: ../duplicity/selection.py:352 |
1127 | +#, python-format |
1128 | +msgid "Error closing filelist %s" |
1129 | +msgstr "" |
1130 | + |
1131 | +#: ../duplicity/selection.py:419 |
1132 | +#, python-format |
1133 | +msgid "Reading globbing filelist %s" |
1134 | +msgstr "" |
1135 | + |
1136 | +#: ../duplicity/selection.py:452 |
1137 | +#, python-format |
1138 | +msgid "Error compiling regular expression %s" |
1139 | +msgstr "" |
1140 | + |
1141 | +#: ../duplicity/selection.py:468 |
1142 | +msgid "" |
1143 | +"Warning: exclude-device-files is not the first selector.\n" |
1144 | +"This may not be what you intended" |
1145 | +msgstr "" |
1146 | + |
1147 | +#: ../duplicity/tempdir.py:118 |
1148 | +#, python-format |
1149 | +msgid "Using temporary directory %s" |
1150 | +msgstr "" |
1151 | + |
1152 | +#: ../duplicity/tempdir.py:156 |
1153 | +#, python-format |
1154 | +msgid "Registering (mktemp) temporary file %s" |
1155 | +msgstr "" |
1156 | + |
1157 | +#: ../duplicity/tempdir.py:178 |
1158 | +#, python-format |
1159 | +msgid "Registering (mkstemp) temporary file %s" |
1160 | +msgstr "" |
1161 | + |
1162 | +#: ../duplicity/tempdir.py:210 |
1163 | +#, python-format |
1164 | +msgid "Forgetting temporary file %s" |
1165 | +msgstr "" |
1166 | + |
1167 | +#: ../duplicity/tempdir.py:213 |
1168 | +#, python-format |
1169 | +msgid "Attempt to forget unknown tempfile %s - this is probably a bug." |
1170 | +msgstr "" |
1171 | + |
1172 | +#: ../duplicity/tempdir.py:232 |
1173 | +#, python-format |
1174 | +msgid "Removing still remembered temporary file %s" |
1175 | +msgstr "" |
1176 | + |
1177 | +#: ../duplicity/tempdir.py:235 |
1178 | +#, python-format |
1179 | +msgid "Cleanup of temporary file %s failed" |
1180 | +msgstr "" |
1181 | + |
1182 | +#: ../duplicity/tempdir.py:240 |
1183 | +#, python-format |
1184 | +msgid "Cleanup of temporary directory %s failed - this is probably a bug." |
1185 | +msgstr "" |
1186 | + |
1187 | +#: ../duplicity/backends/giobackend.py:87 |
1188 | +#, python-format |
1189 | +msgid "Connection failed, please check your password: %s" |
1190 | +msgstr "" |
1191 | + |
1192 | +#: ../duplicity/backends/giobackend.py:96 |
1193 | +#, python-format |
1194 | +msgid "Writing %s" |
1195 | +msgstr "" |
1196 | + |
1197 | +#: ../duplicity/backends/giobackend.py:106 |
1198 | +#, python-format |
1199 | +msgid "Could not copy %s to %s" |
1200 | +msgstr "" |
1201 | |
1202 | === removed directory 'po/io' |
1203 | === renamed file 'po/io/duplicity.po' => 'po/io.po' |
1204 | === removed file 'po/io/duplicity.mo' |
1205 | Binary files po/io/duplicity.mo 2008-12-29 14:50:41 +0000 and po/io/duplicity.mo 1970-01-01 00:00:00 +0000 differ |
1206 | === added file 'po/update-pot' |
1207 | --- po/update-pot 1970-01-01 00:00:00 +0000 |
1208 | +++ po/update-pot 2009-07-02 21:51:53 +0000 |
1209 | @@ -0,0 +1,3 @@ |
1210 | +#!/bin/sh |
1211 | + |
1212 | +intltool-update --pot -g duplicity |
I made some changes to the po directory, with the intention of us enabling translations through Launchpad.
Things launchpad needs:
* pot file in bzr
* po files in same directory as pot file
So I did that.
I also added a script, po/update-pot that you can run in the po dir to update the pot file, simply enough. :) This gets run on a makedist. Ideally, it would also get run whenever you make a string change. When the pot file is updated, push it to bzr.
This is just the infrastructure changes needed to enable translations in LP. We still have to flip some switches to make it happen, which I can turn on if this is accepted.