Merge lp:~mterry/duplicity/po-fixes into lp:~duplicity-team/duplicity/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
Reviewer Review Type Date Requested Status
Kenneth Loafman Approve
Review via email: mp+8160@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Michael Terry (mterry) wrote :

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.

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

Subscribers

People subscribed via source and target branches

to all changes: