dnl Suppport for gettext (translations)
dnl --------------------------------------------------
AM_GNU_GETTEXT([external])
-localedir=${prefix}/locale
-LOCAL_DEFS="$LOCAL_DEFS -DLOCALEDIR=\"${localedir}\""
+localedir=${datadir}/locale
+LOCAL_DEFS="$LOCAL_DEFS -DLOCALEDIR=\"\\\"${localedir}\\\"\""
# ------------------------------------------------------------------
# If the user has not set --prefix, we set our default to nothing.
-localedir=${prefix}/locale
-LOCAL_DEFS="$LOCAL_DEFS -DLOCALEDIR=\"${localedir}\""
+localedir=${datadir}/locale
+LOCAL_DEFS="$LOCAL_DEFS -DLOCALEDIR=\"\\\"${localedir}\\\"\""
# ------------------------------------------------------------------
# If the user has not set --prefix, we set our default to nothing.
General:
Changes to 1.37.*:
+10Aug05
+ - Mark translatable strings in all source files.
08Aug05
- Create French and Italian translation files (fr.po, it.po).
- Add support for translation in configure and Makefiles.
# List of source files containing translatable strings.
# To generate this file, type 'make gen-potfiles'
./platforms/freebsd/tapetest.c
-./po/cat-id-tbl.c
./src/cats/bdb.c
./src/cats/bdb_create.c
./src/cats/bdb_delete.c
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2005-08-08 17:56+0200\n"
+"POT-Creation-Date: 2005-08-10 18:10+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Create DB Job record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:91 src/dird/expand.c:145 src/dird/ua_cmds.c:422
-#: src/dird/ua_prune.c:455 src/dird/ua_purge.c:171 src/dird/ua_run.c:643
-#: src/dird/ua_select.c:228 src/dird/ua_select.c:249 src/dird/pythondir.c:61
-#: src/stored/pythonsd.c:58
+#: src/cats/sql_create.c:91 src/dird/dird_conf.c:532 src/dird/expand.c:145
+#: src/dird/ua_cmds.c:422 src/dird/ua_prune.c:455 src/dird/ua_purge.c:171
+#: src/dird/ua_run.c:643 src/dird/ua_select.c:228 src/dird/ua_select.c:249
+#: src/dird/pythondir.c:61 src/stored/pythonsd.c:58
msgid "Job"
msgstr ""
#: src/cats/sql_create.c:201 src/dird/expand.c:152 src/dird/ua_run.c:650
#: src/dird/ua_select.c:464 src/dird/ua_select.c:554 src/dird/ua_update.c:356
#: src/dird/ua_update.c:426 src/dird/pythondir.c:67 src/stored/pythonsd.c:64
+#: src/wx-console/wxbrestorepanel.cpp:362
+#: src/wx-console/wxbrestorepanel.cpp:548
+#: src/wx-console/wxbrestorepanel.cpp:558
+#: src/wx-console/wxbrestorepanel.cpp:1754
msgid "Pool"
msgstr ""
msgid "Create DB Storage record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:306 src/dird/expand.c:153 src/dird/ua_cmds.c:829
-#: src/dird/ua_run.c:642 src/dird/ua_select.c:152 src/dird/ua_status.c:128
-#: src/dird/pythondir.c:68
+#: src/cats/sql_create.c:306 src/dird/expand.c:153 src/dird/ua_run.c:642
+#: src/dird/ua_select.c:152 src/dird/ua_status.c:128 src/dird/pythondir.c:68
+#: src/wx-console/wxbrestorepanel.cpp:363
+#: src/wx-console/wxbrestorepanel.cpp:379
+#: src/wx-console/wxbrestorepanel.cpp:500
+#: src/wx-console/wxbrestorepanel.cpp:501
+#: src/wx-console/wxbrestorepanel.cpp:511
+#: src/wx-console/wxbrestorepanel.cpp:512
+#: src/wx-console/wxbrestorepanel.cpp:1116
+#: src/wx-console/wxbrestorepanel.cpp:1765
+#: src/wx-console/wxbrestorepanel.cpp:1831
msgid "Storage"
msgstr ""
msgid "Create DB Client record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:507 src/dird/expand.c:150 src/dird/ua_cmds.c:830
-#: src/dird/ua_purge.c:173 src/dird/ua_purge.c:178 src/dird/ua_run.c:645
-#: src/dird/ua_select.c:272 src/dird/ua_select.c:379 src/dird/ua_status.c:129
-#: src/dird/pythondir.c:65 src/filed/pythonfd.c:77 src/stored/pythonsd.c:63
+#: src/cats/sql_create.c:507 src/dird/expand.c:150 src/dird/ua_purge.c:173
+#: src/dird/ua_purge.c:178 src/dird/ua_run.c:645 src/dird/ua_select.c:272
+#: src/dird/ua_select.c:379 src/dird/ua_status.c:129 src/dird/pythondir.c:65
+#: src/filed/pythonfd.c:77 src/stored/pythonsd.c:63
+#: src/wx-console/wxbrestorepanel.cpp:360
+#: src/wx-console/wxbrestorepanel.cpp:378
+#: src/wx-console/wxbrestorepanel.cpp:452
+#: src/wx-console/wxbrestorepanel.cpp:453
+#: src/wx-console/wxbrestorepanel.cpp:463
+#: src/wx-console/wxbrestorepanel.cpp:464
+#: src/wx-console/wxbrestorepanel.cpp:707
+#: src/wx-console/wxbrestorepanel.cpp:1086
+#: src/wx-console/wxbrestorepanel.cpp:1173
+#: src/wx-console/wxbrestorepanel.cpp:1758
+#: src/wx-console/wxbrestorepanel.cpp:1760
+#: src/wx-console/wxbrestorepanel.cpp:1829
+#: src/wx-console/wxbrestorepanel.cpp:1884
msgid "Client"
msgstr ""
msgid "Create DB FileSet record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:618 src/dird/ua_restore.c:1010 src/dird/ua_run.c:644
+#: src/cats/sql_create.c:618 src/dird/ua_restore.c:1035 src/dird/ua_run.c:644
#: src/dird/ua_select.c:173
msgid "FileSet"
msgstr ""
msgid "Create db File record %s failed. ERR=%s"
msgstr ""
-#: src/cats/sql_create.c:738
+#: src/cats/sql_create.c:738 src/gnome2-console/restore.c:121
msgid "File"
msgstr ""
msgid "Create db Filename record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:856
+#: src/cats/sql_create.c:856 src/wx-console/wxbrestorepanel.cpp:314
msgid "Filename"
msgstr ""
msgid "Unable to open Database=%s. ERR=%s\n"
msgstr ""
-#: src/cats/sqlite.c:162
+#: src/cats/sqlite.c:162 src/lib/bnet_server.c:378
msgid "unknown"
msgstr ""
msgid "next_index update error: ERR=%s\n"
msgstr ""
+#: src/console/authenticate.c:41
+#, c-format
+msgid "Hello %s calling\n"
+msgstr ""
+
+#: src/console/authenticate.c:44
+msgid "1000 OK:"
+msgstr ""
+
#: src/console/authenticate.c:104 src/dird/authenticate.c:106
#: src/dird/authenticate.c:206 src/filed/authenticate.c:124
#: src/filed/authenticate.c:220 src/stored/authenticate.c:128
msgstr ""
#: src/console/authenticate.c:140 src/gnome2-console/authenticate.c:95
-#: src/tray-monitor/authenticate.c:94
+#: src/tray-monitor/authenticate.c:94 src/wx-console/authenticate.c:133
msgid "Director rejected Hello command\n"
msgstr ""
"help.\n"
msgstr ""
-#: src/console/console.c:102 src/filed/filed.c:62
+#: src/console/console.c:102
#, c-format
msgid ""
"Copyright (C) 2000-2005 Kern Sibbald\n"
"Version: "
msgstr ""
-#: src/console/console.c:103 src/dird/admin.c:108 src/dird/backup.c:489
-#: src/dird/dird.c:72 src/dird/mac.c:377 src/dird/restore.c:275
-#: src/dird/verify.c:415 src/dird/verify.c:448 src/filed/filed.c:63
-#: src/gnome2-console/console.c:89 src/stored/bcopy.c:59
-#: src/stored/bscan.c:110 src/stored/btape.c:2541 src/stored/stored.c:66
-#: src/tray-monitor/tray-monitor.c:104 src/tray-monitor/tray-monitor.c:499
-#: src/tray-monitor/tray-monitor.c:506
+#: src/console/console.c:103 src/dird/admin.c:108
#, c-format
msgid " ("
msgstr ""
msgstr ""
#: src/console/console.c:152 src/dird/ua_cmds.c:106 src/dird/ua_tree.c:72
+#: src/stored/btape.c:2536
msgid "quit"
msgstr ""
msgid ": is an illegal command\n"
msgstr ""
-#: src/console/console.c:397 src/dird/dird.c:193 src/filed/filed.c:180
-#: src/gnome2-console/console.c:267 src/stored/stored.c:186
-#: src/wx-console/console_thread.cpp:231
+#: src/console/console.c:400 src/dird/dird.c:196 src/filed/filed.c:183
+#: src/gnome2-console/console.c:271 src/stored/stored.c:189
+#: src/wx-console/console_thread.cpp:230
msgid "TLS library initialization failed.\n"
msgstr ""
-#: src/console/console.c:401 src/dird/dird.c:197 src/dird/dird.c:407
-#: src/dird/dird.c:410 src/filed/filed.c:185 src/gnome2-console/console.c:271
-#: src/stored/stored.c:190
+#: src/console/console.c:404 src/dird/dird.c:200 src/dird/dird.c:410
+#: src/dird/dird.c:413 src/filed/filed.c:188 src/gnome2-console/console.c:275
+#: src/stored/stored.c:193
#, c-format
msgid "Please correct configuration file: %s\n"
msgstr ""
-#: src/console/console.c:418
+#: src/console/console.c:421
msgid "Available Directors:\n"
msgstr ""
-#: src/console/console.c:422
+#: src/console/console.c:425
#, c-format
msgid "%d %s at %s:%d\n"
msgstr ""
-#: src/console/console.c:426
+#: src/console/console.c:429
msgid "Select Director: "
msgstr ""
-#: src/console/console.c:432
+#: src/console/console.c:435
#, c-format
msgid "You must enter a number between 1 and %d\n"
msgstr ""
-#: src/console/console.c:452
+#: src/console/console.c:455 src/tray-monitor/tray-monitor.c:858
#, c-format
msgid "Connecting to Director %s:%d\n"
msgstr ""
-#: src/console/console.c:468 src/gnome2-console/console.c:504
-#: src/wx-console/console_thread.cpp:365
+#: src/console/console.c:471 src/gnome2-console/console.c:508
+#: src/wx-console/console_thread.cpp:364
#, c-format
msgid "Failed to initialize TLS context for Console \"%s\".\n"
msgstr ""
-#: src/console/console.c:489 src/gnome2-console/console.c:526
-#: src/wx-console/console_thread.cpp:386
+#: src/console/console.c:492 src/gnome2-console/console.c:530
+#: src/wx-console/console_thread.cpp:385
#, c-format
msgid "Failed to initialize TLS context for Director \"%s\".\n"
msgstr ""
-#: src/console/console.c:512
+#: src/console/console.c:515
msgid "Enter a period to cancel a command.\n"
msgstr ""
-#: src/console/console.c:579 src/console/console.c:608 src/dird/dird.c:493
-#: src/dird/dird.c:708 src/dird/dird.c:774 src/dird/dird.c:826
-#: src/filed/filed.c:299 src/filed/filed.c:345
+#: src/console/console.c:582 src/console/console.c:611 src/dird/dird.c:496
+#: src/dird/dird.c:711 src/dird/dird.c:777 src/dird/dird.c:829
+#: src/filed/filed.c:302 src/filed/filed.c:348
#: src/gnome2-console/console.c:140 src/gnome2-console/console.c:169
-#: src/stored/stored.c:307 src/wx-console/console_thread.cpp:93
+#: src/stored/stored.c:310 src/wx-console/console_thread.cpp:93
#: src/wx-console/console_thread.cpp:122
msgid "TLS required but not configured in Bacula.\n"
msgstr ""
-#: src/console/console.c:586 src/gnome2-console/console.c:147
+#: src/console/console.c:589 src/gnome2-console/console.c:147
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Director \"%s\" in %s. At least one CA certificate store is required.\n"
msgstr ""
-#: src/console/console.c:595 src/gnome2-console/console.c:156
+#: src/console/console.c:598 src/gnome2-console/console.c:156
#, c-format
msgid ""
"No Director resource defined in %s\n"
"Without that I don't how to speak to the Director :-(\n"
msgstr ""
-#: src/console/console.c:615 src/gnome2-console/console.c:176
+#: src/console/console.c:618 src/gnome2-console/console.c:176
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Console \"%s\" in %s.\n"
msgstr ""
-#: src/console/console.c:760
+#: src/console/console.c:763
msgid "Too many arguments on input command.\n"
msgstr ""
-#: src/console/console.c:764
+#: src/console/console.c:767
msgid "First argument to input command must be a filename.\n"
msgstr ""
-#: src/console/console.c:769
+#: src/console/console.c:772
#, c-format
msgid "Cannot open file %s for input. ERR=%s\n"
msgstr ""
-#: src/console/console.c:799
+#: src/console/console.c:802
msgid "Too many arguments on output/tee command.\n"
msgstr ""
-#: src/console/console.c:815
+#: src/console/console.c:818
#, c-format
msgid "Cannot open file %s for output. ERR=%s\n"
msgstr ""
+#: src/console/console_conf.c:123 src/gnome2-console/console_conf.c:122
+#: src/wx-console/console_conf.c:124
+#, c-format
+msgid "No record for %d %s\n"
+msgstr ""
+
+#: src/console/console_conf.c:132 src/wx-console/console_conf.c:133
+#, c-format
+msgid "Console: name=%s rcfile=%s histfile=%s\n"
+msgstr ""
+
+#: src/console/console_conf.c:136 src/gnome2-console/console_conf.c:131
+#: src/wx-console/console_conf.c:137
+#, c-format
+msgid "Director: name=%s address=%s DIRport=%d\n"
+msgstr ""
+
+#: src/console/console_conf.c:140 src/console/console_conf.c:216
+#: src/console/console_conf.c:261 src/console/console_conf.c:288
+#: src/filed/filed_conf.c:268 src/filed/filed_conf.c:327
+#: src/filed/filed_conf.c:357 src/gnome2-console/console_conf.c:142
+#: src/gnome2-console/console_conf.c:220 src/gnome2-console/console_conf.c:268
+#: src/gnome2-console/console_conf.c:298 src/stored/stored_conf.c:467
+#: src/stored/stored_conf.c:555 src/stored/stored_conf.c:590
+#: src/wx-console/console_conf.c:141 src/wx-console/console_conf.c:216
+#: src/wx-console/console_conf.c:261 src/wx-console/console_conf.c:288
+#, c-format
+msgid "Unknown resource type %d\n"
+msgstr ""
+
+#: src/console/console_conf.c:242 src/dird/dird_conf.c:1109
+#: src/dird/dird_conf.c:1124 src/filed/filed_conf.c:296
+#: src/gnome2-console/console_conf.c:246 src/tray-monitor/tray_conf.c:262
+#: src/wx-console/console_conf.c:242
+#, c-format
+msgid "%s item is required in %s resource, but not found.\n"
+msgstr ""
+
#: src/console/console_conf.c:304 src/dird/dird_conf.c:1296
#: src/filed/filed_conf.c:374 src/gnome2-console/console_conf.c:314
#: src/tray-monitor/tray_conf.c:341 src/wx-console/console_conf.c:304
msgid "Inappropriate term code: %c\n"
msgstr ""
-#: src/dird/admin.c:108 src/dird/backup.c:489 src/dird/mac.c:377
-#: src/dird/restore.c:275 src/dird/verify.c:415 src/dird/verify.c:448
+#: src/dird/admin.c:108
msgid "Bacula "
msgstr ""
msgstr ""
#: src/dird/authenticate.c:123 src/dird/authenticate.c:223
+#: src/dird/authenticate.c:356 src/filed/authenticate.c:141
+#: src/filed/authenticate.c:237 src/stored/authenticate.c:145
+#: src/stored/authenticate.c:249
msgid "TLS negotiation failed.\n"
msgstr ""
msgid "Unable to authenticate console \"%s\" at %s:%s:%d.\n"
msgstr ""
+#: src/dird/authenticate.c:373
+#, c-format
+msgid "1000 OK: %s Version: %s (%s)\n"
+msgstr ""
+
#: src/dird/autoprune.c:57
msgid "Begin pruning Jobs.\n"
msgstr ""
msgid "Backup OK -- with warnings"
msgstr ""
-#: src/dird/backup.c:424 src/dird/mac.c:313 src/stored/bscan.c:1045
+#: src/dird/backup.c:424 src/dird/mac.c:313 src/stored/bscan.c:1054
msgid "Backup OK"
msgstr ""
-#: src/dird/backup.c:429 src/dird/mac.c:318 src/stored/bscan.c:1049
+#: src/dird/backup.c:429 src/dird/mac.c:318 src/stored/bscan.c:1058
msgid "*** Backup Error ***"
msgstr ""
-#: src/dird/backup.c:439 src/dird/mac.c:328 src/stored/bscan.c:1052
+#: src/dird/backup.c:439 src/dird/mac.c:328 src/stored/bscan.c:1061
msgid "Backup Canceled"
msgstr ""
#: src/dird/backup.c:489
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Backup Level: %s%s\n"
msgid "No Volumes found to restore.\n"
msgstr ""
+#: src/dird/catreq.c:109 src/dird/catreq.c:298
+#, c-format
+msgid "1990 Invalid Catalog Request: %s"
+msgstr ""
+
#: src/dird/catreq.c:110
#, c-format
msgid "Invalid Catalog request; DB not open: %s"
msgstr ""
+#: src/dird/catreq.c:131
+msgid "1901 No Media.\n"
+msgstr ""
+
+#: src/dird/catreq.c:159
+msgid "not in Pool"
+msgstr ""
+
+#: src/dird/catreq.c:161
+msgid "not correct MediaType"
+msgstr ""
+
+#: src/dird/catreq.c:187
+#, c-format
+msgid "1998 Volume \"%s\" status is %s, %s.\n"
+msgstr ""
+
+#: src/dird/catreq.c:192
+#, c-format
+msgid "1997 Volume \"%s\" not in catalog.\n"
+msgstr ""
+
#: src/dird/catreq.c:213
#, c-format
msgid "Unable to get Media record for Volume %s: ERR=%s\n"
msgstr ""
+#: src/dird/catreq.c:215
+#, c-format
+msgid "1991 Catalog Request for vol=%s failed: %s"
+msgstr ""
+
#: src/dird/catreq.c:235
#, c-format
msgid ""
"Volume Files at %u being set to %u for Volume \"%s\". This is incorrect.\n"
msgstr ""
+#: src/dird/catreq.c:238 src/dird/catreq.c:270
+msgid "1992 Update Media error\n"
+msgstr ""
+
#: src/dird/catreq.c:268
#, c-format
msgid "Catalog error updating Media record. %s"
msgid "Catalog error creating JobMedia record. %s"
msgstr ""
+#: src/dird/catreq.c:289
+msgid "1991 Update JobMedia error\n"
+msgstr ""
+
#: src/dird/catreq.c:299
#, c-format
msgid "Invalid Catalog request: %s"
msgstr ""
+#: src/dird/catreq.c:398
+msgid "Got MD5/SHA1 but not same File as attributes\n"
+msgstr ""
+
#: src/dird/catreq.c:422
#, c-format
msgid "Catalog error updating MD5/SHA1. %s"
msgstr ""
-#: src/dird/dird.c:71 src/stored/btape.c:2540 src/stored/stored.c:65
+#: src/dird/dird.c:71
#, c-format
msgid ""
"Copyright (C) 2000-2005 Kern Sibbald.\n"
"\n"
-"Version: "
-msgstr ""
-
-#: src/dird/dird.c:72
-#, c-format
-msgid ""
-")\n"
+"Version: %s (%s)\n"
"\n"
"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n"
" -c <file> set configuration file to file\n"
"\n"
msgstr ""
-#: src/dird/dird.c:393
+#: src/dird/dird.c:396
msgid "Too many open reload requests. Request ignored.\n"
msgstr ""
-#: src/dird/dird.c:408
+#: src/dird/dird.c:411
msgid "Out of reload table entries. Giving up.\n"
msgstr ""
-#: src/dird/dird.c:411
+#: src/dird/dird.c:414
msgid "Resetting previous configuration.\n"
msgstr ""
-#: src/dird/dird.c:471
+#: src/dird/dird.c:474
#, c-format
msgid ""
"No Director resource defined in %s\n"
"Without that I don't know who I am :-(\n"
msgstr ""
-#: src/dird/dird.c:479 src/filed/filed.c:292
+#: src/dird/dird.c:482 src/filed/filed.c:295
#, c-format
msgid "No Messages resource defined in %s\n"
msgstr ""
-#: src/dird/dird.c:484
+#: src/dird/dird.c:487
#, c-format
msgid "Only one Director resource permitted in %s\n"
msgstr ""
-#: src/dird/dird.c:499 src/filed/filed.c:354 src/stored/stored.c:359
+#: src/dird/dird.c:502 src/filed/filed.c:357 src/stored/stored.c:362
#, c-format
msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:505 src/filed/filed.c:360 src/stored/stored.c:365
+#: src/dird/dird.c:508 src/filed/filed.c:363 src/stored/stored.c:368
#, c-format
msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:511 src/filed/filed.c:366 src/stored/stored.c:371
+#: src/dird/dird.c:514 src/filed/filed.c:369 src/stored/stored.c:374
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/dird/dird.c:530 src/filed/filed.c:385 src/stored/stored.c:390
+#: src/dird/dird.c:533 src/filed/filed.c:388 src/stored/stored.c:393
#, c-format
msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:538
+#: src/dird/dird.c:541
#, c-format
msgid "No Job records defined in %s\n"
msgstr ""
-#: src/dird/dird.c:669 src/dird/job.c:101 src/dird/ua_cmds.c:1424
+#: src/dird/dird.c:585 src/dird/dird.c:598
+#, c-format
+msgid "Hey something is wrong. p=0x%lu\n"
+msgstr ""
+
+#: src/dird/dird.c:647
+#, c-format
+msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n"
+msgstr ""
+
+#: src/dird/dird.c:654
+msgid "Too many items in Job resource\n"
+msgstr ""
+
+#: src/dird/dird.c:672 src/dird/job.c:101 src/dird/ua_cmds.c:1424
#: src/dird/ua_output.c:598
#, c-format
msgid "Could not open database \"%s\".\n"
msgstr ""
-#: src/dird/dird.c:672
+#: src/dird/dird.c:675
#, c-format
msgid "%s"
msgstr ""
-#: src/dird/dird.c:714
+#: src/dird/dird.c:717
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Storage \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:730 src/stored/stored.c:345
+#: src/dird/dird.c:733 src/stored/stored.c:348
#, c-format
msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:781
+#: src/dird/dird.c:784
#, c-format
msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:787
+#: src/dird/dird.c:790
#, c-format
msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:793
+#: src/dird/dird.c:796
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/dird/dird.c:810 src/dird/dird.c:850 src/filed/filed.c:323
+#: src/dird/dird.c:813 src/dird/dird.c:853 src/filed/filed.c:326
#, c-format
msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:833
+#: src/dird/dird.c:836
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"File daemon \"%s\" in %s.\n"
msgstr ""
+#: src/dird/dird_conf.c:441 src/tray-monitor/tray_conf.c:152
+#, c-format
+msgid "No %s resource defined\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:450
+#, c-format
+msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:455
+#, c-format
+msgid " query_file=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:458 src/dird/dird_conf.c:483 src/dird/dird_conf.c:497
+#: src/dird/dird_conf.c:541 src/dird/dird_conf.c:545 src/dird/dird_conf.c:549
+#: src/dird/dird_conf.c:573 src/dird/dird_conf.c:578 src/dird/dird_conf.c:582
+#: src/dird/dird_conf.c:586 src/dird/dird_conf.c:590 src/dird/dird_conf.c:594
+#: src/dird/dird_conf.c:604
+msgid " --> "
+msgstr ""
+
+#: src/dird/dird_conf.c:464 src/dird/dird_conf.c:467
+#, c-format
+msgid "Console: name=%s SSL=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:473
+#, c-format
+msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:478
+#, c-format
+msgid "Counter: name=%s min=%d max=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:489
+#, c-format
+msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:492
+#, c-format
+msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:504
+#, c-format
+msgid ""
+"Device: name=%s ok=%d num_writers=%d max_writers=%d\n"
+" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%"
+"d\n"
+" poolid=%s volname=%s MediaType=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:514
+#, c-format
+msgid ""
+"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n"
+" DeviceName=%s MediaType=%s StorageId=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:523
+#, c-format
+msgid ""
+"Catalog: name=%s address=%s DBport=%d db_name=%s\n"
+" db_user=%s MutliDBConn=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:531
+#, c-format
+msgid "%s: name=%s JobType=%d level=%s Priority=%d MaxJobs=%u\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:532
+msgid "JobDefs"
+msgstr ""
+
+#: src/dird/dird_conf.c:536
+#, c-format
+msgid " Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:553
+#, c-format
+msgid " --> Where=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:556
+#, c-format
+msgid " --> Bootstrap=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:559
+#, c-format
+msgid " --> RunBefore=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:562
+#, c-format
+msgid " --> RunAfter=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:565
+#, c-format
+msgid " --> RunAfterFailed=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:568
+#, c-format
+msgid " --> WriteBootstrap=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:600
+#, c-format
+msgid " --> Run=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:611
+#, c-format
+msgid "FileSet: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:673 src/dird/dird_conf.c:752
+#, c-format
+msgid "Schedule: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:678
+#, c-format
+msgid " --> Run Level=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:679
+msgid " hour="
+msgstr ""
+
+#: src/dird/dird_conf.c:688
+msgid " mday="
+msgstr ""
+
+#: src/dird/dird_conf.c:697
+msgid " month="
+msgstr ""
+
+#: src/dird/dird_conf.c:706
+msgid " wday="
+msgstr ""
+
+#: src/dird/dird_conf.c:715
+msgid " wom="
+msgstr ""
+
+#: src/dird/dird_conf.c:724
+msgid " woy="
+msgstr ""
+
+#: src/dird/dird_conf.c:733
+#, c-format
+msgid " mins=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:735 src/dird/dird_conf.c:739 src/dird/dird_conf.c:743
+msgid " --> "
+msgstr ""
+
+#: src/dird/dird_conf.c:756
+#, c-format
+msgid "Pool: name=%s PoolType=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:758
+#, c-format
+msgid " use_cat=%d use_once=%d acpt_any=%d cat_files=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:761
+#, c-format
+msgid " max_vols=%d auto_prune=%d VolRetention=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:764
+#, c-format
+msgid " VolUse=%s recycle=%d LabelFormat=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:768
+#, c-format
+msgid " CleaningPrefix=%s LabelType=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:770
+#, c-format
+msgid " RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:776
+#, c-format
+msgid "Messages: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:778
+#, c-format
+msgid " mailcmd=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:780
+#, c-format
+msgid " opcmd=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:783 src/tray-monitor/tray_conf.c:179
+#, c-format
+msgid "Unknown resource type %d in dump_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1077 src/tray-monitor/tray_conf.c:232
+#, c-format
+msgid "Unknown resource type %d in free_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1115 src/lib/parse_conf.c:211
+#: src/tray-monitor/tray_conf.c:268
+#, c-format
+msgid "Too many items in %s resource\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1149
+#, c-format
+msgid "Cannot find Console resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1155 src/filed/filed_conf.c:316
+#: src/stored/stored_conf.c:523
+#, c-format
+msgid "Cannot find Director resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1162 src/stored/stored_conf.c:529
+#, c-format
+msgid "Cannot find Storage resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1171
+#, c-format
+msgid "Cannot find Job resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1189
+#, c-format
+msgid "Cannot find Counter resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1197 src/filed/filed_conf.c:322
+#, c-format
+msgid "Cannot find Client resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1209
+#, c-format
+msgid "Cannot find Schedule resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1214 src/tray-monitor/tray_conf.c:287
+#, c-format
+msgid "Unknown resource type %d in save_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1274 src/tray-monitor/tray_conf.c:322
+#, c-format
+msgid "Unknown resource type %d in save_resrouce.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1289
+#, c-format
+msgid "Name item is required in %s resource, but not found.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1301
+#, c-format
+msgid "Inserting %s res: %s index=%d pass=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1374
+#, c-format
+msgid "Expected a Job Type keyword, got: %s"
+msgstr ""
+
+#: src/dird/dird_conf.c:1398
+#, c-format
+msgid "Expected a Job Level keyword, got: %s"
+msgstr ""
+
+#: src/dird/dird_conf.c:1418
+#, c-format
+msgid "Expected a Restore replacement option, got: %s"
+msgstr ""
+
#: src/dird/expand.c:137
msgid "Year"
msgstr ""
msgid "Cannot destroy var context: ERR=%s\n"
msgstr ""
-#: src/dird/fd_cmds.c:73
+#: src/dird/fd_cmds.c:73 src/tray-monitor/tray-monitor.c:867
msgid "File daemon"
msgstr ""
msgid "FD gave bad response to JobId command: %s\n"
msgstr ""
+#: src/dird/fd_cmds.c:144 src/dird/fd_cmds.c:180
+msgid ", since="
+msgstr ""
+
#: src/dird/fd_cmds.c:164
msgid "No prior or suitable Full backup found. Doing FULL backup.\n"
msgstr ""
+#: src/dird/fd_cmds.c:165 src/dird/fd_cmds.c:173
+#, c-format
+msgid " (upgraded from %s)"
+msgstr ""
+
#: src/dird/fd_cmds.c:171
#, c-format
msgid "Prior failed job found. Upgrading to %s.\n"
msgstr ""
+#: src/dird/fd_cmds.c:196
+msgid "since_utime "
+msgstr ""
+
#: src/dird/fd_cmds.c:232
#, c-format
msgid "Unimplemented backup level %d %c\n"
"msglen=%d msg=%s\n"
msgstr ""
-#: src/dird/fd_cmds.c:571 src/dird/verify.c:692
+#: src/dird/fd_cmds.c:571 src/dird/verify.c:696
#, c-format
msgid "MD5/SHA1 index %d not same as attributes %d\n"
msgstr ""
#: src/dird/getmsg.c:318
#, c-format
-msgid "Bad response to %s command: wanted %s got: %s\n"
+msgid "Bad response to %s command: wanted %s, got %s\n"
msgstr ""
#: src/dird/getmsg.c:323
msgid "Socket error on %s command: ERR=%s\n"
msgstr ""
+#: src/dird/inc_conf.c:249
+#, c-format
+msgid "Expected a FileSet option keyword, got:%s:"
+msgstr ""
+
#: src/dird/inc_conf.c:282
msgid "Old style Include/Exclude not supported\n"
msgstr ""
msgid "Expecting keyword, got: %s\n"
msgstr ""
+#: src/dird/inc_conf.c:318 src/dird/inc_conf.c:583 src/lib/parse_conf.c:819
+#, c-format
+msgid "expected an equals, got: %s"
+msgstr ""
+
+#: src/dird/inc_conf.c:328 src/dird/inc_conf.c:592
+#, c-format
+msgid "Keyword %s not permitted in this resource"
+msgstr ""
+
#: src/dird/inc_conf.c:381
#, c-format
msgid "Regex compile error. ERR=%s\n"
msgid "Expected a filename, got: %s"
msgstr ""
-#: src/dird/job.c:50
+#: src/dird/inc_conf.c:562
+#, c-format
+msgid "Expecting open brace. Got %s"
+msgstr ""
+
+#: src/dird/inc_conf.c:617
+#, c-format
+msgid "Expected a FileSet keyword, got: %s"
+msgstr ""
+
+#: src/dird/job.c:50
#, c-format
msgid "Could not init job queue: ERR=%s\n"
msgstr ""
-#: src/dird/job.c:86 src/stored/dircmd.c:174 src/stored/stored.c:485
+#: src/dird/job.c:86 src/stored/dircmd.c:174 src/stored/stored.c:488
#, c-format
msgid "Unable to init job cond variable: ERR=%s\n"
msgstr ""
msgid "Job canceled because max start delay time exceeded.\n"
msgstr ""
+#: src/dird/job.c:229 src/dird/job.c:307
+#, c-format
+msgid "Unimplemented job type: %d\n"
+msgstr ""
+
#: src/dird/job.c:254
#, c-format
msgid "RunBefore: %s"
msgid "Unhandled job status code %d\n"
msgstr ""
-#: src/dird/job.c:621 src/stored/bscan.c:893
+#: src/dird/job.c:621 src/stored/bscan.c:902
#, c-format
msgid "Could not create Client record. ERR=%s\n"
msgstr ""
msgid "Error updating job record. %s"
msgstr ""
+#: src/dird/jobq.c:67
+#, c-format
+msgid "pthread_attr_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:76
+#, c-format
+msgid "pthread_mutex_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:82
+#, c-format
+msgid "pthread_cond_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:115 src/dird/jobq.c:242 src/dird/jobq.c:307
+#: src/dird/jobq.c:388
+#, c-format
+msgid "pthread_mutex_lock: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:128
+#, c-format
+msgid "pthread_cond_broadcast: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:136
+#, c-format
+msgid "pthread_cond_wait: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:144
+#, c-format
+msgid "pthread_mutex_unlock: ERR=%s\n"
+msgstr ""
+
#: src/dird/jobq.c:180
#, c-format
msgid "Job %s waiting %d seconds for scheduled start time.\n"
msgstr ""
+#: src/dird/jobq.c:235
+#, c-format
+msgid "pthread_thread_create: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:353
+#, c-format
+msgid "pthread_cond_signal: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:362
+#, c-format
+msgid "pthread_create: ERR=%s\n"
+msgstr ""
+
#: src/dird/jobq.c:487
#, c-format
msgid "Rescheduled Job %s at %s to re-run in %d seconds.\n"
#: src/dird/mac.c:377
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Backup Level: %s%s\n"
msgstr ""
#: src/dird/msgchan.c:78 src/filed/job.c:1128
+#: src/tray-monitor/tray-monitor.c:874
msgid "Storage daemon"
msgstr ""
msgid "Catalog error updating volume \"%s\". ERR=%s"
msgstr ""
+#: src/dird/next_vol.c:262
+msgid "volume has expired"
+msgstr ""
+
+#: src/dird/next_vol.c:280 src/dird/next_vol.c:316
+#, c-format
+msgid "Recycled current volume \"%s\"\n"
+msgstr ""
+
+#: src/dird/next_vol.c:285
+msgid "and recycling of current volume failed"
+msgstr ""
+
+#: src/dird/next_vol.c:291
+msgid "but should be Append, Purged or Recycle"
+msgstr ""
+
+#: src/dird/next_vol.c:319
+msgid ""
+"but should be Append, Purged or Recycle (recycling of the current volume "
+"failed)"
+msgstr ""
+
+#: src/dird/next_vol.c:323
+msgid ""
+"but should be Append, Purged or Recycle (cannot automatically recycle "
+"current volume, as it still contains unpruned data)"
+msgstr ""
+
+#: src/dird/recycle.c:102
+#, c-format
+msgid "Recycled volume \"%s\"\n"
+msgstr ""
+
#: src/dird/restore.c:70
msgid "Cannot restore without bootstrap file.\n"
msgstr ""
#: src/dird/restore.c:275
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Client: %s\n"
msgid "fifth"
msgstr ""
-#: src/dird/run_conf.c:201 src/dird/run_conf.c:213 src/lib/parse_conf.c:699
+#: src/dird/run_conf.c:188
+#, c-format
+msgid "Expected an equals, got: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:201 src/dird/run_conf.c:213
#, c-format
msgid "Expect a YES or NO, got: %s"
msgstr ""
msgid "Job level field: %s not found in run record"
msgstr ""
+#: src/dird/run_conf.c:245
+#, c-format
+msgid "Could not find specified Pool Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:270
+#, c-format
+msgid "Could not find specified Storage Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:282
+#, c-format
+msgid "Could not find specified Messages Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:290
+#, c-format
+msgid "Expected a keyword name, got: %s"
+msgstr ""
+
#: src/dird/run_conf.c:325
msgid "Day number out of range (1-31)"
msgstr ""
msgid "Job %s not found\n"
msgstr ""
+#: src/dird/scheduler.c:102
+msgid "Walk queue"
+msgstr ""
+
+#: src/dird/scheduler.c:112
+msgid "Dequeued job"
+msgstr ""
+
#: src/dird/scheduler.c:115
msgid "Scheduler logic error\n"
msgstr ""
+#: src/dird/scheduler.c:132
+msgid "Run job"
+msgstr ""
+
+#: src/dird/scheduler.c:345
+msgid "Inserted job"
+msgstr ""
+
+#: src/dird/scheduler.c:353
+msgid "Appended job"
+msgstr ""
+
+#: src/dird/scheduler.c:357
+msgid "Run queue"
+msgstr ""
+
#: src/dird/ua_cmds.c:88
msgid "add"
msgstr ""
msgstr ""
#: src/dird/ua_cmds.c:97 src/dird/ua_output.c:112 src/dird/ua_tree.c:64
+#: src/stored/btape.c:2533
msgid "help"
msgstr ""
-#: src/dird/ua_cmds.c:97
+#: src/dird/ua_cmds.c:97 src/stored/btape.c:2533
msgid "print this command"
msgstr ""
"from catalog"
msgstr ""
-#: src/dird/ua_cmds.c:99
+#: src/dird/ua_cmds.c:99 src/stored/btape.c:2534
msgid "label"
msgstr ""
msgid "run <job-name>"
msgstr ""
-#: src/dird/ua_cmds.c:113
+#: src/dird/ua_cmds.c:113 src/stored/btape.c:2543
msgid "status"
msgstr ""
msgid "use SQL to query catalog"
msgstr ""
-#: src/dird/ua_cmds.c:119 src/dird/ua_cmds.c:768
+#: src/dird/ua_cmds.c:119
msgid "trace"
msgstr ""
msgid "off"
msgstr ""
-#: src/dird/ua_cmds.c:368 src/dird/ua_cmds.c:1055 src/dird/ua_cmds.c:1071
-#: src/dird/ua_cmds.c:1115 src/dird/ua_output.c:272 src/dird/ua_output.c:296
-#: src/dird/ua_output.c:315 src/dird/ua_output.c:346 src/dird/ua_select.c:618
-#: src/dird/ua_select.c:793
+#: src/dird/ua_cmds.c:368 src/dird/ua_cmds.c:1055 src/dird/ua_cmds.c:1115
+#: src/dird/ua_output.c:272 src/dird/ua_output.c:296 src/dird/ua_output.c:315
+#: src/dird/ua_output.c:346 src/dird/ua_select.c:618 src/dird/ua_select.c:793
msgid "jobid"
msgstr ""
msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n"
msgstr ""
-#: src/dird/ua_cmds.c:379 src/dird/ua_cmds.c:919 src/dird/ua_output.c:282
-#: src/dird/ua_output.c:291 src/dird/ua_output.c:310 src/dird/ua_output.c:341
-#: src/dird/ua_select.c:615 src/dird/ua_select.c:807
+#: src/dird/ua_cmds.c:379 src/dird/ua_output.c:282 src/dird/ua_output.c:291
+#: src/dird/ua_output.c:310 src/dird/ua_output.c:341 src/dird/ua_select.c:615
+#: src/dird/ua_select.c:807
msgid "job"
msgstr ""
msgid "Warning Job %s is not running. Continuing anyway ...\n"
msgstr ""
-#: src/dird/ua_cmds.c:407 src/filed/status.c:193 src/stored/status.c:311
+#: src/dird/ua_cmds.c:407 src/filed/status.c:193 src/stored/status.c:315
msgid "No Jobs running.\n"
msgstr ""
msgid "Select Job:\n"
msgstr ""
+#: src/dird/ua_cmds.c:417
+#, c-format
+msgid "JobId=%s Job=%s"
+msgstr ""
+
#: src/dird/ua_cmds.c:422
msgid "Choose Job to cancel"
msgstr ""
msgid "Client \"%s\" address set to %s\n"
msgstr ""
-#: src/dird/ua_cmds.c:616 src/dird/ua_status.c:281
+#: src/dird/ua_cmds.c:616 src/dird/ua_status.c:286
#, c-format
msgid "Connecting to Storage daemon %s at %s:%d\n"
msgstr ""
-#: src/dird/ua_cmds.c:622 src/dird/ua_status.c:292
+#: src/dird/ua_cmds.c:622 src/dird/ua_status.c:297
msgid "Connected to storage daemon\n"
msgstr ""
-#: src/dird/ua_cmds.c:642 src/dird/ua_cmds.c:982 src/dird/ua_status.c:319
+#: src/dird/ua_cmds.c:642 src/dird/ua_cmds.c:982 src/dird/ua_status.c:324
#, c-format
msgid "Connecting to Client %s at %s:%d\n"
msgstr ""
msgid "Failed to connect to Client.\n"
msgstr ""
-#: src/dird/ua_cmds.c:756 src/dird/ua_cmds.c:935
-msgid "level"
-msgstr ""
-
#: src/dird/ua_cmds.c:761
msgid "Enter new debug level: "
msgstr ""
-#: src/dird/ua_cmds.c:778 src/dird/ua_output.c:111 src/dird/ua_status.c:101
-msgid "all"
-msgstr ""
-
-#: src/dird/ua_cmds.c:782 src/dird/ua_status.c:104 src/dird/ua_tree.c:59
-msgid "dir"
-msgstr ""
-
-#: src/dird/ua_cmds.c:783 src/dird/ua_status.c:105
-msgid "director"
-msgstr ""
-
-#: src/dird/ua_cmds.c:788 src/dird/ua_cmds.c:912 src/dird/ua_restore.c:272
-#: src/dird/ua_select.c:288 src/dird/ua_select.c:325 src/dird/ua_status.c:108
-#: src/lib/bnet_server.c:291
-msgid "client"
-msgstr ""
-
-#: src/dird/ua_cmds.c:789 src/dird/ua_cmds.c:913 src/dird/ua_select.c:289
-#: src/dird/ua_select.c:326
-msgid "fd"
-msgstr ""
-
-#: src/dird/ua_cmds.c:805
-msgid "store"
-msgstr ""
-
-#: src/dird/ua_cmds.c:806 src/dird/ua_select.c:788
-msgid "storage"
-msgstr ""
-
-#: src/dird/ua_cmds.c:807 src/dird/ua_select.c:789
-msgid "sd"
-msgstr ""
-
#: src/dird/ua_cmds.c:827
msgid "Available daemons are: \n"
msgstr ""
-#: src/dird/ua_cmds.c:828 src/dird/ua_status.c:127
-msgid "Director"
-msgstr ""
-
-#: src/dird/ua_cmds.c:831 src/dird/ua_status.c:130
-msgid "All"
-msgstr ""
-
#: src/dird/ua_cmds.c:832
msgid "Select daemon type to set debug level"
msgstr ""
-#: src/dird/ua_cmds.c:925
-msgid "fileset"
-msgstr ""
-
-#: src/dird/ua_cmds.c:931
-msgid "listing"
-msgstr ""
-
#: src/dird/ua_cmds.c:937 src/dird/ua_run.c:478
#, c-format
msgid "Level %s not valid.\n"
msgid "Using Catalog name=%s DB=%s\n"
msgstr ""
-#: src/dird/ua_cmds.c:1369 src/dird/ua_tree.c:590 src/stored/btape.c:2531
+#: src/dird/ua_cmds.c:1369 src/dird/ua_tree.c:594 src/stored/btape.c:2580
#, c-format
msgid ""
" Command Description\n"
" ======= ===========\n"
msgstr ""
-#: src/dird/ua_cmds.c:1371 src/dird/ua_tree.c:592
+#: src/dird/ua_cmds.c:1371
#, c-format
msgid " %-10s %s\n"
msgstr ""
"\n"
msgstr ""
-#: src/dird/ua_cmds.c:1382
+#: src/dird/ua_cmds.c:1389
#, c-format
-msgid "%s %s\n"
+msgid "%s Version: %s (%s)\n"
msgstr ""
#: src/dird/ua_cmds.c:1408
msgid ".exit"
msgstr ""
-#: src/dird/ua_dotcmds.c:221 src/dird/ua_restore.c:739
-#: src/dird/ua_restore.c:777
+#: src/dird/ua_dotcmds.c:121
+msgid "The Director will segment fault.\n"
+msgstr ""
+
+#: src/dird/ua_dotcmds.c:221 src/dird/ua_restore.c:747
+#: src/dird/ua_restore.c:785
#, c-format
msgid "Query failed: %s. ERR=%s\n"
msgstr ""
-#: src/dird/ua_input.c:120 src/dird/ua_restore.c:228 src/dird/ua_run.c:487
+#: src/dird/ua_input.c:82
+msgid "Enter slot"
+msgstr ""
+
+#: src/dird/ua_input.c:86 src/dird/ua_input.c:92
+#, c-format
+msgid "Expected a positive integer, got: %s\n"
+msgstr ""
+
+#: src/dird/ua_input.c:120 src/dird/ua_restore.c:232 src/dird/ua_run.c:487
#: src/dird/ua_run.c:860 src/dird/ua_select.c:54 src/dird/ua_update.c:232
#: src/dird/ua_update.c:247 src/dird/ua_update.c:495
+#: src/stored/parse_bsr.c:741 src/tools/dbcheck.c:1098
msgid "yes"
msgstr ""
#: src/dird/ua_input.c:124 src/dird/ua_select.c:57 src/dird/ua_update.c:234
#: src/dird/ua_update.c:247 src/dird/ua_update.c:495
+#: src/stored/parse_bsr.c:741
msgid "no"
msgstr ""
msgid "Slot too large.\n"
msgstr ""
-#: src/dird/ua_label.c:170
+#: src/dird/ua_label.c:170 src/stored/btape.c:2541
msgid "scan"
msgstr ""
"==============\n"
msgstr ""
-#: src/dird/ua_label.c:484
+#: src/dird/ua_label.c:484 src/stored/btape.c:608
msgid "Do you want to continue? (y/n): "
msgstr ""
msgid "Media record for Slot %d Volume \"%s\" already exists.\n"
msgstr ""
+#: src/dird/ua_label.c:511
+#, c-format
+msgid "Error setting InChanger: ERR=%s"
+msgstr ""
+
#: src/dird/ua_label.c:536
#, c-format
msgid "Catalog record for cleaning tape \"%s\" successfully created.\n"
msgstr ""
+#: src/dird/ua_label.c:543
+#, c-format
+msgid "Catalog error on cleaning tape: %s"
+msgstr ""
+
#: src/dird/ua_label.c:579
#, c-format
msgid "Illegal character \"%c\" in a volume name.\n"
msgid "pools"
msgstr ""
+#: src/dird/ua_output.c:111 src/dird/ua_status.c:101
+msgid "all"
+msgstr ""
+
#: src/dird/ua_output.c:178
msgid "Keywords for the show command are:\n"
msgstr ""
msgstr ""
#: src/dird/ua_prune.c:163 src/dird/ua_purge.c:174 src/dird/ua_purge.c:179
-#: src/stored/label.c:957
+#: src/stored/label.c:956
msgid "Volume"
msgstr ""
msgid "Pruned %d %s for client %s from catalog.\n"
msgstr ""
+#: src/dird/ua_prune.c:502
+#, c-format
+msgid "There are no Jobs associated with Volume \"%s\". Prune not needed.\n"
+msgstr ""
+
+#: src/dird/ua_prune.c:509 src/dird/ua_purge.c:488
+#, c-format
+msgid "There are no Jobs associated with Volume \"%s\". Marking it purged.\n"
+msgstr ""
+
#: src/dird/ua_prune.c:567
#, c-format
msgid "Pruned %d %s on Volume \"%s\" from catalog.\n"
msgid "%d File%s on Volume \"%s\" purged from catalog.\n"
msgstr ""
+#: src/dird/ua_purge.c:555
+#, c-format
+msgid ""
+"There are no more Jobs associated with Volume \"%s\". Marking it purged.\n"
+msgstr ""
+
#: src/dird/ua_purge.c:584
#, c-format
msgid "Cannot purge Volume with VolStatus=%s\n"
msgstr ""
+#: src/dird/ua_query.c:59 src/findlib/create_file.c:276
+#: src/findlib/create_file.c:333
+#, c-format
+msgid "Could not open %s: ERR=%s\n"
+msgstr ""
+
#: src/dird/ua_query.c:64
msgid "Available queries:\n"
msgstr ""
"Terminate query mode with a blank line.\n"
msgstr ""
-#: src/dird/ua_query.c:272
+#: src/dird/ua_query.c:255 src/dird/ua_query.c:272
msgid "Enter SQL query: "
msgstr ""
msgid "Unable to construct a valid BSR. Cannot continue.\n"
msgstr ""
-#: src/dird/ua_restore.c:182 src/dird/ua_restore.c:192
+#: src/dird/ua_restore.c:182 src/dird/ua_restore.c:196
msgid "No files selected to be restored.\n"
msgstr ""
-#: src/dird/ua_restore.c:189
+#: src/dird/ua_restore.c:190
+msgid ""
+"\n"
+"1 file selected to be restored.\n"
+"\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:193
#, c-format
msgid ""
"\n"
-"%u file%s selected to be restored.\n"
+"%u files selected to be restored.\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:207
+#: src/dird/ua_restore.c:211
msgid "No Restore Job resource found!\n"
msgstr ""
-#: src/dird/ua_restore.c:352
+#: src/dird/ua_restore.c:276 src/dird/ua_select.c:288 src/dird/ua_select.c:325
+#: src/dird/ua_status.c:108 src/lib/bnet_server.c:291
+#: src/lib/bnet_server.c:385
+msgid "client"
+msgstr ""
+
+#: src/dird/ua_restore.c:309
+msgid "List last 20 Jobs run"
+msgstr ""
+
+#: src/dird/ua_restore.c:310
+msgid "List Jobs where a given File is saved"
+msgstr ""
+
+#: src/dird/ua_restore.c:311
+msgid "Enter list of comma separated JobIds to select"
+msgstr ""
+
+#: src/dird/ua_restore.c:312
+msgid "Enter SQL list command"
+msgstr ""
+
+#: src/dird/ua_restore.c:313
+msgid "Select the most recent backup for a client"
+msgstr ""
+
+#: src/dird/ua_restore.c:314
+msgid "Select backup for a client before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:315
+msgid "Enter a list of files to restore"
+msgstr ""
+
+#: src/dird/ua_restore.c:316
+msgid "Enter a list of files to restore before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:317
+msgid "Find the JobIds of the most recent backup for a client"
+msgstr ""
+
+#: src/dird/ua_restore.c:318
+msgid "Find the JobIds for a backup for a client before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:319
+msgid "Enter a list of directories to restore for found JobIds"
+msgstr ""
+
+#: src/dird/ua_restore.c:320 src/dird/ua_status.c:702 src/filed/status.c:249
+#: src/stored/status.c:367 src/wx-console/wxbconfigpanel.cpp:191
+msgid "Cancel"
+msgstr ""
+
+#: src/dird/ua_restore.c:356
#, c-format
msgid "Unknown keyword: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:370
+#: src/dird/ua_restore.c:374
#, c-format
msgid "Improper date format: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:404 src/dird/ua_select.c:576
+#: src/dird/ua_restore.c:408 src/dird/ua_select.c:576
#, c-format
msgid "Error: Pool resource \"%s\" does not exist.\n"
msgstr ""
-#: src/dird/ua_restore.c:409
+#: src/dird/ua_restore.c:413
#, c-format
msgid "Error: Pool resource \"%s\" access not allowed.\n"
msgstr ""
-#: src/dird/ua_restore.c:428
+#: src/dird/ua_restore.c:432
msgid ""
"\n"
"First you select one or more JobIds that contain files\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:440
+#: src/dird/ua_restore.c:444
msgid "To select the JobIds, you have the following choices:\n"
msgstr ""
-#: src/dird/ua_restore.c:445
+#: src/dird/ua_restore.c:449
msgid "Select item: "
msgstr ""
-#: src/dird/ua_restore.c:459
+#: src/dird/ua_restore.c:463
msgid "Enter Filename (no path):"
msgstr ""
-#: src/dird/ua_restore.c:474 src/dird/ua_restore.c:574
+#: src/dird/ua_restore.c:478 src/dird/ua_restore.c:578
msgid "Enter JobId(s), comma separated, to restore: "
msgstr ""
-#: src/dird/ua_restore.c:480
+#: src/dird/ua_restore.c:484
msgid "Enter SQL list command: "
msgstr ""
-#: src/dird/ua_restore.c:508 src/dird/ua_restore.c:533
+#: src/dird/ua_restore.c:512 src/dird/ua_restore.c:537
msgid ""
"Enter file names with paths, or < to enter a filename\n"
"containg a list of file names with paths, and terminate\n"
"them with a blank line.\n"
msgstr ""
-#: src/dird/ua_restore.c:512 src/dird/ua_restore.c:537
+#: src/dird/ua_restore.c:516 src/dird/ua_restore.c:541
msgid "Enter full filename: "
msgstr ""
-#: src/dird/ua_restore.c:572
+#: src/dird/ua_restore.c:576
#, c-format
msgid "You have already seleted the following JobIds: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:587
+#: src/dird/ua_restore.c:591
msgid ""
"Enter full directory names or start the name\n"
"with a < to indicate it is a filename containg a list\n"
"of directories and terminate them with a blank line.\n"
msgstr ""
-#: src/dird/ua_restore.c:591
+#: src/dird/ua_restore.c:595
msgid "Enter directory name: "
msgstr ""
-#: src/dird/ua_restore.c:616
+#: src/dird/ua_restore.c:620
msgid "No Jobs selected.\n"
msgstr ""
-#: src/dird/ua_restore.c:619
+#: src/dird/ua_restore.c:624
+#, c-format
+msgid "You have selected the following JobIds: %s\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:627
#, c-format
-msgid "You have selected the following JobId%s: %s\n"
+msgid "You have selected the following JobId: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:628
+#: src/dird/ua_restore.c:636
msgid "Invalid JobId in list.\n"
msgstr ""
-#: src/dird/ua_restore.c:640
+#: src/dird/ua_restore.c:648
#, c-format
msgid "Unable to get Job record for JobId=%s: ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:645
+#: src/dird/ua_restore.c:653
#, c-format
msgid "No authorization. Job \"%s\" not selected.\n"
msgstr ""
-#: src/dird/ua_restore.c:659
+#: src/dird/ua_restore.c:667
msgid ""
"The restored files will the most current backup\n"
"BEFORE the date you specify below.\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:662
+#: src/dird/ua_restore.c:670
msgid "Enter date as YYYY-MM-DD HH:MM:SS :"
msgstr ""
-#: src/dird/ua_restore.c:668
+#: src/dird/ua_restore.c:676
msgid "Improper date format.\n"
msgstr ""
-#: src/dird/ua_restore.c:689
+#: src/dird/ua_restore.c:697
#, c-format
msgid "Cannot open file %s: ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:697 src/dird/ua_restore.c:701
+#: src/dird/ua_restore.c:705 src/dird/ua_restore.c:709
#, c-format
msgid "Error occurred on line %d of %s\n"
msgstr ""
-#: src/dird/ua_restore.c:743 src/dird/ua_restore.c:781
+#: src/dird/ua_restore.c:751 src/dird/ua_restore.c:789
#, c-format
msgid "No database record found for: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:768
+#: src/dird/ua_restore.c:776
msgid "No JobId specified cannot continue.\n"
msgstr ""
-#: src/dird/ua_restore.c:887
+#: src/dird/ua_restore.c:895
#, c-format
msgid ""
"\n"
"Building directory tree for JobId %s ... "
msgstr ""
-#: src/dird/ua_restore.c:908
+#: src/dird/ua_restore.c:914
+msgid ""
+"\n"
+"There were no files inserted into the tree, so file selection\n"
+"is not possible.Most likely your retention policy pruned the files\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:916
msgid ""
"\n"
"Do you want to restore all the files? (yes|no): "
msgstr ""
-#: src/dird/ua_restore.c:929 src/dird/ua_tree.c:60
+#: src/dird/ua_restore.c:932
+#, c-format
+msgid ""
+"\n"
+"1 Job, %s files inserted into the tree and marked for extraction.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:936
+#, c-format
+msgid ""
+"\n"
+"1 Job, %s files inserted into the tree.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:942
+#, c-format
+msgid ""
+"\n"
+"%d Jobs, %s files inserted into the tree and marked for extraction.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:946
+#, c-format
+msgid ""
+"\n"
+"%d Jobs, %s files inserted into the tree.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:954 src/dird/ua_tree.c:60
msgid "done"
msgstr ""
-#: src/dird/ua_restore.c:998
+#: src/dird/ua_restore.c:1023
#, c-format
msgid "Error getting FileSet \"%s\": ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:1006 src/dird/ua_select.c:165
+#: src/dird/ua_restore.c:1031 src/dird/ua_select.c:165
msgid "The defined FileSet resources are:\n"
msgstr ""
-#: src/dird/ua_restore.c:1010 src/dird/ua_select.c:173
+#: src/dird/ua_restore.c:1035 src/dird/ua_select.c:173
msgid "Select FileSet resource"
msgstr ""
-#: src/dird/ua_restore.c:1017
+#: src/dird/ua_restore.c:1042
#, c-format
msgid "Error getting FileSet record: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:1018
+#: src/dird/ua_restore.c:1043
msgid ""
"This probably means you modified the FileSet.\n"
"Continuing anyway.\n"
msgstr ""
-#: src/dird/ua_restore.c:1033
+#: src/dird/ua_restore.c:1058
#, c-format
msgid "Pool \"%s\" not found, using any pool.\n"
msgstr ""
-#: src/dird/ua_restore.c:1059 src/dird/ua_restore.c:1075
+#: src/dird/ua_restore.c:1084 src/dird/ua_restore.c:1100
#, c-format
msgid "No Full backup before %s found.\n"
msgstr ""
-#: src/dird/ua_restore.c:1098
+#: src/dird/ua_restore.c:1123
msgid "No jobs found.\n"
msgstr ""
-#: src/dird/ua_restore.c:1264
+#: src/dird/ua_restore.c:1289
msgid ""
"Warning, the JobIds that you selected refer to more than one MediaType.\n"
"Restore is not possible. The MediaTypes used are:\n"
msgstr ""
-#: src/dird/ua_restore.c:1272
+#: src/dird/ua_restore.c:1297
msgid "No MediaType found for your JobIds.\n"
msgstr ""
-#: src/dird/ua_restore.c:1304
+#: src/dird/ua_restore.c:1329
#, c-format
msgid "Warning default storage overridden by %s on command line.\n"
msgstr ""
-#: src/dird/ua_restore.c:1315
+#: src/dird/ua_restore.c:1340
#, c-format
msgid ""
"\n"
msgid "Parameters to modify:\n"
msgstr ""
-#: src/dird/ua_run.c:646
+#: src/dird/ua_run.c:646 src/wx-console/wxbrestorepanel.cpp:380
+#: src/wx-console/wxbrestorepanel.cpp:808
+#: src/wx-console/wxbrestorepanel.cpp:1833
msgid "When"
msgstr ""
#: src/dird/ua_run.c:647 src/dird/pythondir.c:73 src/dird/pythondir.c:83
+#: src/wx-console/wxbrestorepanel.cpp:381
+#: src/wx-console/wxbrestorepanel.cpp:1079
+#: src/wx-console/wxbrestorepanel.cpp:1835
msgid "Priority"
msgstr ""
msgid "Verify Job"
msgstr ""
-#: src/dird/ua_run.c:655
+#: src/dird/ua_run.c:655 src/wx-console/wxbrestorepanel.cpp:373
+#: src/wx-console/wxbrestorepanel.cpp:1814
msgid "Bootstrap"
msgstr ""
-#: src/dird/ua_run.c:656
+#: src/dird/ua_run.c:656 src/wx-console/wxbrestorepanel.cpp:374
+#: src/wx-console/wxbrestorepanel.cpp:1055
+#: src/wx-console/wxbrestorepanel.cpp:1816
msgid "Where"
msgstr ""
-#: src/dird/ua_run.c:657
+#: src/dird/ua_run.c:657 src/wx-console/wxbrestorepanel.cpp:376
+#: src/wx-console/wxbrestorepanel.cpp:1063
+#: src/wx-console/wxbrestorepanel.cpp:1820
+#: src/wx-console/wxbrestorepanel.cpp:1821
+#: src/wx-console/wxbrestorepanel.cpp:1822
+#: src/wx-console/wxbrestorepanel.cpp:1823
+#: src/wx-console/wxbrestorepanel.cpp:1824
msgid "Replace"
msgstr ""
msgstr ""
#: src/dird/ua_run.c:665 src/filed/status.c:368 src/lib/util.c:319
-#: src/stored/status.c:402
+#: src/stored/status.c:406
msgid "Base"
msgstr ""
-#: src/dird/ua_run.c:666 src/filed/status.c:370 src/lib/util.c:321
-#: src/stored/status.c:404
+#: src/dird/ua_run.c:666 src/dird/ua_update.c:106 src/dird/ua_update.c:438
+#: src/filed/status.c:370 src/lib/util.c:321 src/stored/status.c:408
msgid "Full"
msgstr ""
#: src/dird/ua_run.c:667 src/filed/status.c:373 src/lib/util.c:324
-#: src/stored/status.c:407
+#: src/stored/status.c:411
msgid "Incremental"
msgstr ""
#: src/dird/ua_run.c:668 src/filed/status.c:376 src/lib/util.c:327
-#: src/stored/status.c:410
+#: src/stored/status.c:414
msgid "Differential"
msgstr ""
#: src/dird/ua_run.c:669 src/filed/status.c:379 src/lib/util.c:330
-#: src/stored/status.c:413
+#: src/stored/status.c:417
msgid "Since"
msgstr ""
msgstr ""
#: src/dird/ua_run.c:693 src/filed/status.c:382 src/lib/util.c:333
-#: src/stored/status.c:416
+#: src/stored/status.c:420
msgid "Verify Catalog"
msgstr ""
msgid "Select Client (File daemon) resource"
msgstr ""
+#: src/dird/ua_select.c:289 src/dird/ua_select.c:326
+msgid "fd"
+msgstr ""
+
#: src/dird/ua_select.c:297
#, c-format
msgid "Error: Client resource %s does not exist.\n"
msgid "Storage name given twice.\n"
msgstr ""
+#: src/dird/ua_select.c:788
+msgid "storage"
+msgstr ""
+
+#: src/dird/ua_select.c:789
+msgid "sd"
+msgstr ""
+
#: src/dird/ua_select.c:796
#, c-format
msgid "Expecting jobid=nn command, got: %s\n"
msgid "Job \"%s\" is not running.\n"
msgstr ""
+#: src/dird/ua_select.c:829
+#, c-format
+msgid "Storage resource \"%s\": not found\n"
+msgstr ""
+
#: src/dird/ua_select.c:862
msgid "Media Types defined in conf file:\n"
msgstr ""
msgid "You have messages.\n"
msgstr ""
+#: src/dird/ua_status.c:104 src/dird/ua_tree.c:59
+msgid "dir"
+msgstr ""
+
+#: src/dird/ua_status.c:105
+msgid "director"
+msgstr ""
+
#: src/dird/ua_status.c:126
msgid "Status available for:\n"
msgstr ""
+#: src/dird/ua_status.c:127
+msgid "Director"
+msgstr ""
+
+#: src/dird/ua_status.c:130
+msgid "All"
+msgstr ""
+
#: src/dird/ua_status.c:132
msgid "Select daemon type for status"
msgstr ""
-#: src/dird/ua_status.c:248 src/filed/status.c:71 src/stored/status.c:69
+#: src/dird/ua_status.c:245
#, c-format
-msgid "Daemon started %s, %d Job%s run since started.\n"
+msgid "%s Version: %s (%s) %s %s %s\n"
+msgstr ""
+
+#: src/dird/ua_status.c:249 src/stored/status.c:70
+#, c-format
+msgid "Daemon started %s, 1 Job run since started.\n"
+msgstr ""
+
+#: src/dird/ua_status.c:252 src/stored/status.c:73
+#, c-format
+msgid "Daemon started %s, %d Jobs run since started.\n"
msgstr ""
-#: src/dird/ua_status.c:252 src/filed/status.c:119 src/stored/status.c:73
+#: src/dird/ua_status.c:257 src/filed/status.c:119 src/stored/status.c:77
#, c-format
msgid " Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"
msgstr ""
-#: src/dird/ua_status.c:284
+#: src/dird/ua_status.c:277 src/dird/ua_status.c:482 src/dird/ua_status.c:644
+#: src/filed/status.c:196 src/filed/status.c:275 src/stored/status.c:317
+#: src/stored/status.c:393
+msgid "====\n"
+msgstr ""
+
+#: src/dird/ua_status.c:289
#, c-format
msgid ""
"\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:322
+#: src/dird/ua_status.c:327
#, c-format
msgid ""
"Failed to connect to Client %s.\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:330
+#: src/dird/ua_status.c:335
msgid "Connected to file daemon\n"
msgstr ""
-#: src/dird/ua_status.c:345
+#: src/dird/ua_status.c:350
msgid ""
"\n"
"Scheduled Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:346
+#: src/dird/ua_status.c:351
msgid ""
"Level Type Pri Scheduled Name Volume\n"
msgstr ""
-#: src/dird/ua_status.c:347
+#: src/dird/ua_status.c:352
msgid "===================================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:394
+#: src/dird/ua_status.c:399
#, c-format
msgid "%-14s %-8s %3d %-18s %-18s %s\n"
msgstr ""
-#: src/dird/ua_status.c:475
+#: src/dird/ua_status.c:480
msgid "No Scheduled Jobs.\n"
msgstr ""
-#: src/dird/ua_status.c:492 src/stored/status.c:265
+#: src/dird/ua_status.c:497 src/stored/status.c:269
msgid ""
"\n"
"Running Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:501
+#: src/dird/ua_status.c:506
#, c-format
msgid "Console connected at %s\n"
msgstr ""
-#: src/dird/ua_status.c:509
+#: src/dird/ua_status.c:514
msgid ""
"No Jobs running.\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:514
+#: src/dird/ua_status.c:519
msgid " JobId Level Name Status\n"
msgstr ""
-#: src/dird/ua_status.c:515 src/filed/status.c:219 src/stored/status.c:333
+#: src/dird/ua_status.c:520 src/filed/status.c:219 src/stored/status.c:337
msgid "======================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:524
+#: src/dird/ua_status.c:529
msgid "is waiting execution"
msgstr ""
-#: src/dird/ua_status.c:527
+#: src/dird/ua_status.c:532
msgid "is running"
msgstr ""
-#: src/dird/ua_status.c:530
+#: src/dird/ua_status.c:535
msgid "is blocked"
msgstr ""
-#: src/dird/ua_status.c:533
+#: src/dird/ua_status.c:538
msgid "has terminated"
msgstr ""
-#: src/dird/ua_status.c:536
+#: src/dird/ua_status.c:541
msgid "has erred"
msgstr ""
-#: src/dird/ua_status.c:539
+#: src/dird/ua_status.c:544
msgid "has errors"
msgstr ""
-#: src/dird/ua_status.c:542
+#: src/dird/ua_status.c:547
msgid "has a fatal error"
msgstr ""
-#: src/dird/ua_status.c:545
+#: src/dird/ua_status.c:550
msgid "has verify differences"
msgstr ""
-#: src/dird/ua_status.c:548
+#: src/dird/ua_status.c:553
msgid "has been canceled"
msgstr ""
-#: src/dird/ua_status.c:552
+#: src/dird/ua_status.c:557
#, c-format
msgid "is waiting on Client %s"
msgstr ""
-#: src/dird/ua_status.c:558
+#: src/dird/ua_status.c:563
#, c-format
msgid "is waiting on Storage %s"
msgstr ""
-#: src/dird/ua_status.c:563
+#: src/dird/ua_status.c:568
msgid "is waiting on max Storage jobs"
msgstr ""
-#: src/dird/ua_status.c:566
+#: src/dird/ua_status.c:571
msgid "is waiting on max Client jobs"
msgstr ""
-#: src/dird/ua_status.c:569
+#: src/dird/ua_status.c:574
msgid "is waiting on max Job jobs"
msgstr ""
-#: src/dird/ua_status.c:572
+#: src/dird/ua_status.c:577
msgid "is waiting on max total jobs"
msgstr ""
-#: src/dird/ua_status.c:575
+#: src/dird/ua_status.c:580
msgid "is waiting for its start time"
msgstr ""
-#: src/dird/ua_status.c:578
+#: src/dird/ua_status.c:583
msgid "is waiting for higher priority jobs to finish"
msgstr ""
-#: src/dird/ua_status.c:583
+#: src/dird/ua_status.c:588
#, c-format
msgid "is in unknown state %c"
msgstr ""
-#: src/dird/ua_status.c:597
+#: src/dird/ua_status.c:602
msgid "is waiting for a mount request"
msgstr ""
-#: src/dird/ua_status.c:604
+#: src/dird/ua_status.c:609
msgid "is waiting for an appendable Volume"
msgstr ""
-#: src/dird/ua_status.c:611
+#: src/dird/ua_status.c:616
#, c-format
msgid "is waiting for Client %s to connect to Storage %s"
msgstr ""
-#: src/dird/ua_status.c:627
+#: src/dird/ua_status.c:632
#, c-format
msgid "%6d %-6s %-20s %s\n"
msgstr ""
-#: src/dird/ua_status.c:649 src/filed/status.c:209 src/stored/status.c:324
+#: src/dird/ua_status.c:654 src/filed/status.c:209 src/stored/status.c:328
msgid "No Terminated Jobs.\n"
msgstr ""
-#: src/dird/ua_status.c:654 src/stored/status.c:329
+#: src/dird/ua_status.c:659 src/stored/status.c:333
msgid ""
"\n"
"Terminated Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:655
+#: src/dird/ua_status.c:660
msgid " JobId Level Files Bytes Status Finished Name \n"
msgstr ""
-#: src/dird/ua_status.c:656
+#: src/dird/ua_status.c:661
msgid "========================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:706 src/filed/status.c:266 src/stored/status.c:380
+#: src/dird/ua_status.c:692 src/filed/status.c:239 src/lib/util.c:184
+#: src/stored/status.c:357
+msgid "Created"
+msgstr ""
+
+#: src/dird/ua_status.c:696 src/filed/status.c:243 src/lib/util.c:197
+#: src/lib/util.c:264 src/stored/status.c:361
+msgid "Error"
+msgstr ""
+
+#: src/dird/ua_status.c:699 src/filed/status.c:246 src/stored/status.c:364
+msgid "Diffs"
+msgstr ""
+
+#: src/dird/ua_status.c:705 src/filed/status.c:252 src/lib/util.c:193
+#: src/lib/util.c:260 src/stored/btape.c:1160 src/stored/status.c:370
+#: src/wx-console/wxbconfigpanel.cpp:180
+msgid "OK"
+msgstr ""
+
+#: src/dird/ua_status.c:708 src/filed/status.c:255 src/stored/status.c:373
+msgid "Other"
+msgstr ""
+
+#: src/dird/ua_status.c:711 src/filed/status.c:266 src/stored/status.c:384
#, c-format
msgid "%6d %-6s %8s %14s %-7s %-8s %s\n"
msgstr ""
+#: src/dird/ua_status.c:719 src/stored/btape.c:180
+msgid "\n"
+msgstr ""
+
#: src/dird/ua_tree.c:57
msgid "cd"
msgstr ""
"\n"
msgstr ""
-#: src/dird/ua_tree.c:102 src/dird/ua_tree.c:629 src/dird/ua_tree.c:637
+#: src/dird/ua_tree.c:102 src/dird/ua_tree.c:633 src/dird/ua_tree.c:641
#, c-format
msgid "cwd is: %s\n"
msgstr ""
msgid "Illegal command. Enter \"done\" to exit.\n"
msgstr ""
-#: src/dird/ua_tree.c:296 src/dird/ua_tree.c:307 src/dird/ua_tree.c:322
+#: src/dird/ua_tree.c:296 src/dird/ua_tree.c:307 src/dird/ua_tree.c:324
msgid "No files marked.\n"
msgstr ""
#: src/dird/ua_tree.c:309
+msgid "1 file marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:311
#, c-format
-msgid "%s file%s marked.\n"
+msgid "%s files marked.\n"
msgstr ""
-#: src/dird/ua_tree.c:336
+#: src/dird/ua_tree.c:338
msgid "No directories marked.\n"
msgstr ""
-#: src/dird/ua_tree.c:338
+#: src/dird/ua_tree.c:340
+msgid "1 directory marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:342
+#, c-format
+msgid "%s directories marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:363
#, c-format
-msgid "%s director%s marked.\n"
+msgid "%s total files/dirs. %s marked to be restored.\n"
msgstr ""
-#: src/dird/ua_tree.c:370
+#: src/dird/ua_tree.c:374
msgid "No file specification given.\n"
msgstr ""
-#: src/dird/ua_tree.c:621
+#: src/dird/ua_tree.c:502
+#, c-format
+msgid "Node %s has no children.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:583
+#, c-format
+msgid "%d total files; %d marked to be restored; %s bytes.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:625
msgid "Invalid path given.\n"
msgstr ""
-#: src/dird/ua_tree.c:648 src/dird/ua_tree.c:659
+#: src/dird/ua_tree.c:652 src/dird/ua_tree.c:663
msgid "No files unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:661
+#: src/dird/ua_tree.c:665
+msgid "1 file unmarked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:667
#, c-format
-msgid "%d file%s unmarked.\n"
+msgid "%d files unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:672 src/dird/ua_tree.c:688
+#: src/dird/ua_tree.c:678 src/dird/ua_tree.c:694
msgid "No directories unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:690
+#: src/dird/ua_tree.c:696
+msgid "1 directory unmarked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:698
#, c-format
-msgid "%d director%s unmarked.\n"
+msgid "%d directories unmarked.\n"
msgstr ""
#: src/dird/verify.c:87
#: src/dird/verify.c:415
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" FileSet: %s\n"
"\n"
msgstr ""
-#: src/dird/verify.c:448
+#: src/dird/verify.c:450
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" FileSet: %s\n"
"\n"
msgstr ""
-#: src/dird/verify.c:522
+#: src/dird/verify.c:526
#, c-format
msgid ""
"bird<filed: bad attributes, expected 3 fields got %d\n"
" mslen=%d msg=%s\n"
msgstr ""
-#: src/dird/verify.c:566
+#: src/dird/verify.c:570
#, c-format
msgid "New file: %s\n"
msgstr ""
-#: src/dird/verify.c:567
+#: src/dird/verify.c:571
#, c-format
msgid "File not in catalog: %s\n"
msgstr ""
-#: src/dird/verify.c:591
+#: src/dird/verify.c:595
#, c-format
msgid " st_ino differ. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:600
+#: src/dird/verify.c:604
#, c-format
msgid " st_mode differ. Cat: %x File: %x\n"
msgstr ""
-#: src/dird/verify.c:608
+#: src/dird/verify.c:612
#, c-format
msgid " st_nlink differ. Cat: %d File: %d\n"
msgstr ""
-#: src/dird/verify.c:616
+#: src/dird/verify.c:620
#, c-format
msgid " st_uid differ. Cat: %u File: %u\n"
msgstr ""
-#: src/dird/verify.c:624
+#: src/dird/verify.c:628
#, c-format
msgid " st_gid differ. Cat: %u File: %u\n"
msgstr ""
-#: src/dird/verify.c:632
+#: src/dird/verify.c:636
#, c-format
msgid " st_size differ. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:641
+#: src/dird/verify.c:645
msgid " st_atime differs\n"
msgstr ""
-#: src/dird/verify.c:648
+#: src/dird/verify.c:652
msgid " st_mtime differs\n"
msgstr ""
-#: src/dird/verify.c:655
+#: src/dird/verify.c:659
msgid " st_ctime differs\n"
msgstr ""
-#: src/dird/verify.c:662
+#: src/dird/verify.c:666
#, c-format
msgid " st_size decrease. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:701
+#: src/dird/verify.c:705
#, c-format
msgid " %s not same. File=%s Cat=%s\n"
msgstr ""
-#: src/dird/verify.c:704
+#: src/dird/verify.c:708
#, c-format
msgid " %s differs.\n"
msgstr ""
-#: src/dird/verify.c:716
+#: src/dird/verify.c:720
#, c-format
msgid "bdird<filed: bad attributes from filed n=%d : %s\n"
msgstr ""
-#: src/dird/verify.c:753
+#: src/dird/verify.c:757
msgid "The following files are missing:\n"
msgstr ""
-#: src/dird/verify.c:767
+#: src/dird/verify.c:771 src/tools/testfind.c:338
#, c-format
msgid "File: %s\n"
msgstr ""
msgid "Choose catalog item to update"
msgstr ""
+#: src/dird/ua_update.c:103 src/dird/ua_update.c:435
+msgid "Append"
+msgstr ""
+
+#: src/dird/ua_update.c:104 src/dird/ua_update.c:436
+msgid "Archive"
+msgstr ""
+
+#: src/dird/ua_update.c:105 src/dird/ua_update.c:437
+msgid "Disabled"
+msgstr ""
+
+#: src/dird/ua_update.c:107 src/dird/ua_update.c:439
+msgid "Used"
+msgstr ""
+
+#: src/dird/ua_update.c:108 src/dird/ua_update.c:440
+msgid "Cleaning"
+msgstr ""
+
+#: src/dird/ua_update.c:109 src/dird/ua_update.c:355 src/dird/ua_update.c:442
+msgid "Recycle"
+msgstr ""
+
+#: src/dird/ua_update.c:110 src/dird/ua_update.c:444
+msgid "Read-Only"
+msgstr ""
+
#: src/dird/ua_update.c:122
#, c-format
msgid "Invalid VolStatus specified: %s\n"
msgid "MaxVolBytes"
msgstr ""
-#: src/dird/ua_update.c:355
-msgid "Recycle"
-msgstr ""
-
#: src/dird/ua_update.c:357
msgid "FromPool"
msgstr ""
msgid "Possible Values are:\n"
msgstr ""
+#: src/dird/ua_update.c:441
+msgid "Purged"
+msgstr ""
+
#: src/dird/ua_update.c:445
msgid "Choose new Volume Status"
msgstr ""
msgid "Enter new Pool name: "
msgstr ""
+#: src/dird/ua_update.c:598
+msgid "Selection done.\n"
+msgstr ""
+
#: src/dird/ua_update.c:631
#, c-format
msgid "db_update_pool_record returned %d. ERR=%s\n"
msgid "VolumeName"
msgstr ""
-#: src/filed/authenticate.c:49 src/filed/authenticate.c:50
+#: src/dird/pythondir.c:104 src/filed/pythonfd.c:102 src/filed/pythonfd.c:156
+#: src/filed/pythonfd.c:220 src/stored/pythonsd.c:95 src/stored/pythonsd.c:160
+msgid "Job pointer not found."
+msgstr ""
+
+#: src/dird/pythondir.c:136
+msgid "Pool record not found."
+msgstr ""
+
+#: src/dird/pythondir.c:163 src/filed/pythonfd.c:133 src/stored/pythonsd.c:137
#, c-format
-msgid "I only authenticate directors, not %d\n"
+msgid "Attribute %s not found."
+msgstr ""
+
+#: src/dird/pythondir.c:206 src/dird/pythondir.c:212 src/filed/pythonfd.c:175
+#: src/stored/pythonsd.c:177
+msgid "Read-only attribute"
msgstr ""
-#: src/filed/authenticate.c:54 src/filed/authenticate.c:56
-#: src/stored/authenticate.c:57 src/stored/authenticate.c:59
+#: src/filed/authenticate.c:50
#, c-format
-msgid "Bad Hello command from Director at %s. Len=%d.\n"
+msgid "I only authenticate directors, not %d\n"
msgstr ""
-#: src/filed/authenticate.c:66 src/filed/authenticate.c:68
-#: src/stored/authenticate.c:68 src/stored/authenticate.c:70
+#: src/filed/authenticate.c:56 src/stored/authenticate.c:59
#, c-format
-msgid "Bad Hello command from Director at %s: %s\n"
+msgid "Bad Hello command from Director at %s. Len=%d.\n"
msgstr ""
-#: src/filed/authenticate.c:80 src/stored/authenticate.c:83
+#: src/filed/authenticate.c:68 src/stored/authenticate.c:70
#, c-format
-msgid "Connection from unknown Director %s at %s rejected.\n"
+msgid "Bad Hello command from Director at %s: %s\n"
msgstr ""
#: src/filed/authenticate.c:82 src/stored/authenticate.c:85
msgid " Cannot open %s: ERR=%s.\n"
msgstr ""
-#: src/filed/backup.c:293
+#: src/filed/backup.c:293 src/filed/verify.c:229
#, c-format
msgid " Cannot open resource fork for %s: ERR=%s.\n"
msgstr ""
msgid "Too many errors.\n"
msgstr ""
-#: src/filed/filed.c:63
+#: src/filed/backup.c:535
+#, c-format
+msgid "Error reading ACL of %s\n"
+msgstr ""
+
+#: src/filed/filed.c:62
+#, c-format
msgid ""
-")\n"
+"Copyright (C) 2000-2005 Kern Sibbald\n"
+"\n"
+"Version: %s (%s)\n"
"\n"
"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n"
" -c <file> use <file> as configuration file\n"
"\n"
msgstr ""
-#: src/filed/filed.c:279
+#: src/filed/filed.c:282
#, c-format
msgid ""
"No File daemon resource defined in %s\n"
"Without that I don't know who I am :-(\n"
msgstr ""
-#: src/filed/filed.c:284
+#: src/filed/filed.c:287
#, c-format
msgid "Only one Client resource permitted in %s\n"
msgstr ""
-#: src/filed/filed.c:307
+#: src/filed/filed.c:310
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"File daemon in %s.\n"
msgstr ""
-#: src/filed/filed.c:336
+#: src/filed/filed.c:339
#, c-format
msgid "No Director resource defined in %s\n"
msgstr ""
-#: src/filed/filed_conf.c:296
-#, c-format
-msgid "%s item is required in %s resource, but not found.\n"
-msgstr ""
-
-#: src/filed/filed_conf.c:327 src/filed/filed_conf.c:357
+#: src/filed/job.c:323
#, c-format
-msgid "Unknown resource type %d\n"
+msgid "2901 Job %s not found.\n"
msgstr ""
#: src/filed/job.c:339
msgid "2902 Error scanning cancel command.\n"
msgstr ""
+#: src/filed/job.c:361
+#, c-format
+msgid "2991 Bad setdebug command: %s\n"
+msgstr ""
+
#: src/filed/job.c:377
#, c-format
msgid "Bad estimate command: %s"
msgstr ""
+#: src/filed/job.c:378
+msgid "2992 Bad estimate command.\n"
+msgstr ""
+
#: src/filed/job.c:401
#, c-format
msgid "Bad Job Command: %s"
msgid "Bad RunBeforeJob command: %s\n"
msgstr ""
+#: src/filed/job.c:422 src/filed/job.c:435
+msgid "2905 Bad RunBeforeJob command.\n"
+msgstr ""
+
#: src/filed/job.c:448
#, c-format
msgid "Bad RunAfter command: %s\n"
msgstr ""
+#: src/filed/job.c:449
+msgid "2905 Bad RunAfterJob command.\n"
+msgstr ""
+
#: src/filed/job.c:475
#, c-format
msgid "%s could not execute. ERR=%s\n"
msgid "Cannot open FileSet input file: %s. ERR=%s\n"
msgstr ""
+#: src/filed/job.c:678
+#, c-format
+msgid "REGEX %s compile error. ERR=%s\n"
+msgstr ""
+
+#: src/filed/job.c:732
+#, c-format
+msgid "Invalid FileSet command: %s\n"
+msgstr ""
+
+#: src/filed/job.c:901 src/findlib/match.c:184
+#, c-format
+msgid "Unknown include/exclude option: %c\n"
+msgstr ""
+
#: src/filed/job.c:961 src/stored/fd_cmds.c:329
#, c-format
msgid "Could not create bootstrap file %s: ERR=%s\n"
msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n"
msgstr ""
+#: src/filed/job.c:1068
+#, c-format
+msgid "Unknown backup level: %s\n"
+msgstr ""
+
#: src/filed/job.c:1080
#, c-format
msgid "Bad level command: %s\n"
msgstr ""
+#: src/filed/job.c:1101
+#, c-format
+msgid "Bad session command: %s"
+msgstr ""
+
#: src/filed/job.c:1122
#, c-format
msgid "Bad storage command: %s"
msgid "Bad status %d returned from Storage Daemon.\n"
msgstr ""
+#: src/filed/job.c:1331
+#, c-format
+msgid "2994 Bad verify command: %s\n"
+msgstr ""
+
+#: src/filed/job.c:1346 src/filed/job.c:1385
+#, c-format
+msgid "2994 Bad verify level: %s\n"
+msgstr ""
+
#: src/filed/job.c:1425
#, c-format
msgid "Bad replace command. CMD=%s\n"
msgstr ""
#: src/filed/restore.c:218 src/filed/verify_vol.c:142
-#: src/stored/bextract.c:285 src/stored/bls.c:368 src/stored/bscan.c:640
+#: src/stored/bextract.c:289 src/stored/bls.c:372 src/stored/bscan.c:649
#, c-format
msgid "Record header file index %ld not equal record index %ld\n"
msgstr ""
-#: src/filed/restore.c:231 src/stored/bextract.c:294
+#: src/filed/restore.c:231 src/stored/bextract.c:298
#, c-format
msgid "%s stream not supported on this Client.\n"
msgstr ""
#: src/filed/restore.c:308
#, c-format
-msgid " Cannot open resource fork for %s\n"
+msgid " Cannot open resource fork for %s.\n"
msgstr ""
#: src/filed/restore.c:331
msgid " Could not set Finder Info on %s\n"
msgstr ""
-#: src/filed/restore.c:391 src/stored/bextract.c:445
+#: src/filed/restore.c:347
+#, c-format
+msgid "Can't restore ACL of %s\n"
+msgstr ""
+
+#: src/filed/restore.c:359
+#, c-format
+msgid "Can't restore default ACL of %s\n"
+msgstr ""
+
+#: src/filed/restore.c:391 src/stored/bextract.c:449
#, c-format
msgid "Unknown stream=%d ignored. This shouldn't happen!\n"
msgstr ""
msgid "%d non-supported acl streams ignored.\n"
msgstr ""
-#: src/filed/restore.c:498 src/stored/bextract.c:383
+#: src/filed/restore.c:450
+msgid "None"
+msgstr ""
+
+#: src/filed/restore.c:454
+msgid "Zlib errno"
+msgstr ""
+
+#: src/filed/restore.c:456
+msgid "Zlib stream error"
+msgstr ""
+
+#: src/filed/restore.c:458
+msgid "Zlib data error"
+msgstr ""
+
+#: src/filed/restore.c:460
+msgid "Zlib memory error"
+msgstr ""
+
+#: src/filed/restore.c:462
+msgid "Zlib buffer error"
+msgstr ""
+
+#: src/filed/restore.c:464
+msgid "Zlib version error"
+msgstr ""
+
+#: src/filed/restore.c:466 src/lib/util.c:546 src/lib/util.c:556
+#: src/lib/util.c:564 src/lib/util.c:571 src/lib/util.c:578 src/lib/util.c:592
+#: src/lib/util.c:602 src/lib/util.c:609 src/lib/util.c:620
+msgid "*none*"
+msgstr ""
+
+#: src/filed/restore.c:498 src/stored/bextract.c:387
#, c-format
msgid "Seek to %s error on %s: ERR=%s\n"
msgstr ""
msgid "Uncompression error on file %s. ERR=%s\n"
msgstr ""
-#: src/filed/restore.c:530
+#: src/filed/restore.c:530 src/stored/bextract.c:421
msgid "GZIP data stream found, but GZIP not configured!\n"
msgstr ""
-#: src/filed/restore.c:539 src/stored/bextract.c:355 src/stored/bextract.c:405
+#: src/filed/restore.c:539 src/stored/bextract.c:359 src/stored/bextract.c:409
#, c-format
msgid "Write error on %s: %s\n"
msgstr ""
+#: src/filed/status.c:67
+#, c-format
+msgid "%s Version: %s (%s) %s %s %s %s\n"
+msgstr ""
+
+#: src/filed/status.c:71
+#, c-format
+msgid "Daemon started %s, %d Job%s run since started.\n"
+msgstr ""
+
#: src/filed/status.c:125
#, c-format
msgid " Sizeof: off_t=%d size_t=%d debug=%d trace=%d\n"
msgid " %s%s Job started: %s\n"
msgstr ""
-#: src/filed/status.c:165 src/stored/status.c:292
+#: src/filed/status.c:165 src/stored/status.c:296
#, c-format
msgid " Files=%s Bytes=%s Bytes/sec=%s\n"
msgstr ""
msgid " SDSocket closed.\n"
msgstr ""
-#: src/filed/status.c:196
-msgid "====\n"
-msgstr ""
-
#: src/filed/status.c:215
msgid "Terminated Jobs:\n"
msgstr ""
msgid " JobId Level Files Bytes Status Finished Name \n"
msgstr ""
-#: src/filed/status.c:321 src/filed/status.c:347 src/stored/status.c:464
-#: src/stored/status.c:489
+#: src/filed/status.c:321 src/filed/status.c:347 src/stored/status.c:468
+#: src/stored/status.c:493
#, c-format
msgid "Bad .status command: %s\n"
msgstr ""
-#: src/filed/status.c:385 src/stored/status.c:419
+#: src/filed/status.c:322
+msgid "2900 Bad .status command, missing argument.\n"
+msgstr ""
+
+#: src/filed/status.c:348
+msgid "2900 Bad .status command, wrong argument.\n"
+msgstr ""
+
+#: src/filed/status.c:385 src/stored/status.c:423
msgid "Init Catalog"
msgstr ""
-#: src/filed/status.c:388 src/stored/status.c:422
+#: src/filed/status.c:388 src/stored/status.c:426
msgid "Volume to Catalog"
msgstr ""
-#: src/filed/status.c:391 src/stored/status.c:425
+#: src/filed/status.c:391 src/stored/status.c:429
msgid "Disk to Catalog"
msgstr ""
-#: src/filed/status.c:394 src/stored/status.c:428
+#: src/filed/status.c:394 src/stored/status.c:432
msgid "Data"
msgstr ""
-#: src/filed/status.c:400 src/lib/util.c:351 src/stored/status.c:434
+#: src/filed/status.c:400 src/lib/util.c:351 src/stored/status.c:438
msgid "Unknown Job Level"
msgstr ""
msgid "Network error in send to Director: ERR=%s\n"
msgstr ""
-#: src/filed/verify.c:229
-#, c-format
-msgid " Cannot open resource fork for %s: ERR=%s\n"
-msgstr ""
-
#: src/filed/verify.c:284
#, c-format
msgid "Error reading file %s: ERR=%s\n"
msgid "FDName"
msgstr ""
+#: src/filed/pythonfd.c:150 src/stored/pythonsd.c:154
+#, c-format
+msgid "Cannot delete attribute %s"
+msgstr ""
+
+#: src/filed/pythonfd.c:168 src/filed/pythonfd.c:184 src/stored/pythonsd.c:187
+#, c-format
+msgid "Cannot find attribute %s"
+msgstr ""
+
#: src/findlib/attribs.c:340
#, c-format
msgid "File size of restored file %s not correct. Original %s, restored %s.\n"
msgid "Error in %s: ERR=%s\n"
msgstr ""
+#: src/findlib/bfile.c:67
+msgid "GZIP data"
+msgstr ""
+
+#: src/findlib/bfile.c:69
+msgid "GZIP sparse data"
+msgstr ""
+
+#: src/findlib/bfile.c:71
+msgid "Win32 data"
+msgstr ""
+
+#: src/findlib/bfile.c:73
+msgid "Win32 GZIP data"
+msgstr ""
+
+#: src/findlib/bfile.c:75
+msgid "File attributes"
+msgstr ""
+
+#: src/findlib/bfile.c:77
+msgid "File data"
+msgstr ""
+
+#: src/findlib/bfile.c:79
+msgid "MD5 signature"
+msgstr ""
+
+#: src/findlib/bfile.c:81
+msgid "Extended attributes"
+msgstr ""
+
+#: src/findlib/bfile.c:83
+msgid "Sparse data"
+msgstr ""
+
+#: src/findlib/bfile.c:85
+msgid "Program names"
+msgstr ""
+
+#: src/findlib/bfile.c:87
+msgid "Program data"
+msgstr ""
+
+#: src/findlib/bfile.c:89
+msgid "SHA1 signature"
+msgstr ""
+
+#: src/findlib/bfile.c:91
+msgid "HFS+ resource fork"
+msgstr ""
+
+#: src/findlib/bfile.c:93
+msgid "HFS+ Finder Info"
+msgstr ""
+
#: src/findlib/create_file.c:86
#, c-format
msgid "File skipped. Not newer: %s\n"
msgid "File %s already exists and could not be replaced. ERR=%s.\n"
msgstr ""
+#: src/findlib/create_file.c:170 src/findlib/create_file.c:271
+#: src/findlib/create_file.c:322
+#, c-format
+msgid "bpkt already open fid=%d\n"
+msgstr ""
+
#: src/findlib/create_file.c:192
msgid "Could not save_dirn"
msgstr ""
msgid "Cannot make node %s: ERR=%s\n"
msgstr ""
-#: src/findlib/create_file.c:276 src/findlib/create_file.c:333
-#, c-format
-msgid "Could not open %s: ERR=%s\n"
-msgstr ""
-
#: src/findlib/create_file.c:291
#, c-format
msgid "Could not symlink %s -> %s: ERR=%s\n"
msgid "Zero length filename: %s\n"
msgstr ""
+#: src/findlib/enable_priv.c:85
+msgid "AdjustTokenPrivileges set "
+msgstr ""
+
#: src/findlib/find_one.c:168
#, c-format
msgid "Top level directory \"%s\" has an unlisted fstype\n"
msgid "Cannot change permissions of %s: ERR=%s\n"
msgstr ""
+#: src/findlib/save-cwd.c:48
+#, c-format
+msgid "Cannot open current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:62
+#, c-format
+msgid "Current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:84
+#, c-format
+msgid "Cannot get current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:105
+#, c-format
+msgid "Cannot return to %s from %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:109
+#, c-format
+msgid "Cannot return to saved working directory from %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:115
+#, c-format
+msgid "Cannot return to %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:119
+#, c-format
+msgid "Cannot return to saved working directory: %s\n"
+msgstr ""
+
#: src/gnome2-console/authenticate.c:74
#, c-format
msgid "%s: Director authorization problem.\n"
msgid ""
"Copyright (C) 2002-2005 Kern Sibbald\n"
"\n"
-"Version: "
-msgstr ""
-
-#: src/gnome2-console/console.c:89
-#, c-format
-msgid ""
-") %s %s %s\n"
+"Version: %s (%s) %s %s %s\n"
"\n"
"Usage: gnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n"
" -c <file> set configuration file to file\n"
"\n"
msgstr ""
-#: src/gnome2-console/console.c:215
+#: src/gnome2-console/console.c:219
#, c-format
msgid "Pthread cond init error = %s\n"
msgstr ""
-#: src/gnome2-console/console.c:357
+#: src/gnome2-console/console.c:361
msgid " Not Connected"
msgstr ""
-#: src/gnome2-console/console.c:478
+#: src/gnome2-console/console.c:482
#, c-format
msgid " Connecting to Director %s:%d"
msgstr ""
-#: src/gnome2-console/console.c:479
+#: src/gnome2-console/console.c:483
#, c-format
msgid ""
"Connecting to Director %s:%d\n"
"\n"
msgstr ""
-#: src/gnome2-console/console.c:591
+#: src/gnome2-console/console.c:498 src/wx-console/console_thread.cpp:354
+#, c-format
+msgid "Passphrase for Console \"%s\" TLS private key: "
+msgstr ""
+
+#: src/gnome2-console/console.c:520 src/wx-console/console_thread.cpp:375
+#, c-format
+msgid "Passphrase for Director \"%s\" TLS private key: "
+msgstr ""
+
+#: src/gnome2-console/console.c:539 src/tray-monitor/tray-monitor.c:860
+#: src/wx-console/console_thread.cpp:393
+msgid "Director daemon"
+msgstr ""
+
+#: src/gnome2-console/console.c:551
+msgid " Initializing ..."
+msgstr ""
+
+#: src/gnome2-console/console.c:587
+msgid " Connected"
+msgstr ""
+
+#: src/gnome2-console/console.c:595
msgid " Processing command ..."
msgstr ""
-#: src/gnome2-console/console.c:626
+#: src/gnome2-console/console.c:630
msgid " At prompt waiting for input ..."
msgstr ""
+#: src/gnome2-console/console.c:750
+msgid " Ready"
+msgstr ""
+
+#: src/gnome2-console/console_conf.c:135
+#, c-format
+msgid "Console: name=%s\n"
+msgstr ""
+
+#: src/gnome2-console/console_conf.c:138
+#, c-format
+msgid "ConsoleFont: name=%s font face=%s\n"
+msgstr ""
+
#: src/gnome2-console/interface.c:32
msgid "_Connect"
msgstr ""
msgid "Bacula Console"
msgstr ""
-#: src/gnome2-console/interface.c:231
+#: src/gnome2-console/interface.c:231 src/wx-console/wxbmainframe.cpp:229
+#: src/wx-console/wxbmainframe.cpp:589
msgid "Connect"
msgstr ""
msgstr ""
#: src/gnome2-console/interface.c:261 src/lib/util.c:298
+#: src/wx-console/wxbrestorepanel.cpp:426
+#: src/wx-console/wxbrestorepanel.cpp:1915
msgid "Restore"
msgstr ""
msgid " Status: "
msgstr ""
-#: src/gnome2-console/interface.c:326 src/gnome2-console/interface.c:1692
+#: src/gnome2-console/interface.c:326
msgid " "
msgstr ""
msgid "Select Director"
msgstr ""
-#: src/gnome2-console/interface.c:565
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:708 src/gnome2-console/interface.c:1616
msgid "Job:"
msgstr ""
msgid " Type:"
msgstr ""
-#: src/gnome2-console/interface.c:747 src/gnome2-console/interface.c:777
-#: src/gnome2-console/interface.c:1273 src/gnome2-console/interface.c:1664
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:757 src/gnome2-console/interface.c:1644
+#: src/wx-console/wxbrestorepanel.cpp:1828
msgid "Client:"
msgstr ""
msgid "FileSet: "
msgstr ""
-#: src/gnome2-console/interface.c:813
+#: src/gnome2-console/interface.c:813 src/wx-console/wxbrestorepanel.cpp:1834
msgid "Priority:"
msgstr ""
msgid "Level:"
msgstr ""
-#: src/gnome2-console/interface.c:857
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:866 src/gnome2-console/interface.c:1418
#: src/gnome2-console/interface.c:1700
msgid "Pool:"
msgstr ""
-#: src/gnome2-console/interface.c:886 src/gnome2-console/interface.c:915
-#: src/gnome2-console/interface.c:943 src/gnome2-console/interface.c:961
-#: src/gnome2-console/interface.c:979 src/gnome2-console/interface.c:997
-#: src/gnome2-console/interface.c:1001 src/gnome2-console/interface.c:1471
-#: src/gnome2-console/interface.c:1720 src/gnome2-console/interface.c:1748
-#: src/gnome2-console/interface.c:1765 src/gnome2-console/interface.c:1769
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:895 src/gnome2-console/interface.c:1393
-#: src/gnome2-console/interface.c:1728
+#: src/gnome2-console/interface.c:1728 src/wx-console/wxbrestorepanel.cpp:1830
msgid "Storage:"
msgstr ""
msgid "Where: "
msgstr ""
-#: src/gnome2-console/interface.c:970
+#: src/gnome2-console/interface.c:970 src/wx-console/wxbrestorepanel.cpp:1832
msgid "When:"
msgstr ""
-#: src/gnome2-console/interface.c:988
+#: src/gnome2-console/interface.c:988 src/wx-console/wxbrestorepanel.cpp:1813
msgid "Bootstrap:"
msgstr ""
msgid "Progress"
msgstr ""
-#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85
-#, c-format
+#: src/gnome2-console/restore.c:121
+msgid "Mark"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121
+msgid "Mode"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:330
+msgid "User"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:334
+msgid "Group"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:318
+msgid "Size"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:322
+msgid "Date"
+msgstr ""
+
+#: src/gnome2-console/support.c:41
+#, c-format
+msgid "Widget not found: %s"
+msgstr ""
+
+#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85
+#, c-format
msgid "Couldn't find pixmap file: %s"
msgstr ""
+#: src/gnome2-console/support.c:92
+#, c-format
+msgid "Failed to load pixbuf file: %s: %s\n"
+msgstr ""
+
#: src/lib/address_conf.c:55
#, c-format
msgid "Only ipv4 and ipv6 are supported (%d)\n"
msgid "Can't add default address (%s)\n"
msgstr ""
+#: src/lib/address_conf.c:285
+msgid "the old style addresses cannot be mixed with new style"
+msgstr ""
+
+#: src/lib/address_conf.c:308
+#, c-format
+msgid "can't resolve service(%s)"
+msgstr ""
+
+#: src/lib/address_conf.c:318
+#, c-format
+msgid "can't resolve hostname(%s) %s"
+msgstr ""
+
#: src/lib/address_conf.c:407
#, c-format
msgid "Expected a block begin { , got: %s"
msgid "Error scanning attributes: %s\n"
msgstr ""
+#: src/lib/berrno.c:66
+msgid "Child exited normally."
+msgstr ""
+
+#: src/lib/berrno.c:73
+msgid "Unknown error during program execvp"
+msgstr ""
+
+#: src/lib/berrno.c:76
+#, c-format
+msgid "Child exited with code %d"
+msgstr ""
+
+#: src/lib/berrno.c:84
+#, c-format
+msgid "Child died from signal %d: %s"
+msgstr ""
+
#: src/lib/berrno.c:90
msgid "Invalid errno. No error message possible."
msgstr ""
+#: src/lib/bget_msg.c:91
+msgid "Status OK\n"
+msgstr ""
+
+#: src/lib/bget_msg.c:95
+#, c-format
+msgid "bget_msg: unknown signal %d\n"
+msgstr ""
+
#: src/lib/bnet.c:102
#, c-format
msgid "Attr spool write error. ERR=%s\n"
msgid "TLS not configured.\n"
msgstr ""
+#: src/lib/bnet.c:607
+msgid "No problem."
+msgstr ""
+
+#: src/lib/bnet.c:610
+msgid "Authoritative answer for host not found."
+msgstr ""
+
+#: src/lib/bnet.c:613
+msgid "Non-authoritative for host not found, or ServerFail."
+msgstr ""
+
+#: src/lib/bnet.c:616
+msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP."
+msgstr ""
+
+#: src/lib/bnet.c:619
+msgid "Valid name, no data record of resquested type."
+msgstr ""
+
+#: src/lib/bnet.c:622
+msgid "Unknown error."
+msgstr ""
+
+#: src/lib/bnet.c:757
+#, c-format
+msgid "gethostbyname() for host \"%s\" failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:777
+#, c-format
+msgid "Socket open error. proto=%d port=%d. ERR=%s\n"
+msgstr ""
+
#: src/lib/bnet.c:786 src/lib/bnet.c:811 src/lib/bnet_server.c:200
#: src/lib/bnet_server.c:358
#, c-format
msgid "Cannot set SO_KEEPALIVE on socket: %s\n"
msgstr ""
-#: src/lib/bnet.c:847
+#: src/lib/bnet.c:842
+#, c-format
+msgid ""
+"Could not connect to %s on %s:%d. ERR=%s\n"
+"Retrying ...\n"
+msgstr ""
+
+#: src/lib/bnet.c:848
#, c-format
msgid "Unable to connect to %s on %s:%d. ERR=%s\n"
msgstr ""
-#: src/lib/bnet.c:925
+#: src/lib/bnet.c:926
msgid "Could not malloc BSOCK data buffer\n"
msgstr ""
-#: src/lib/bnet.c:932 src/lib/bnet.c:956
+#: src/lib/bnet.c:933 src/lib/bnet.c:957
#, c-format
msgid "sockopt error: %s\n"
msgstr ""
-#: src/lib/bnet.c:938 src/lib/bnet.c:962
+#: src/lib/bnet.c:939 src/lib/bnet.c:963
#, c-format
msgid "Warning network buffer = %d bytes not max size.\n"
msgstr ""
-#: src/lib/bnet.c:942 src/lib/bnet.c:966
+#: src/lib/bnet.c:943 src/lib/bnet.c:967
#, c-format
msgid "Network buffer size %d not multiple of tape block size.\n"
msgstr ""
+#: src/lib/bnet.c:987 src/lib/bnet.c:1020
+#, c-format
+msgid "fcntl F_GETFL error. ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:993 src/lib/bnet.c:1026 src/lib/bnet.c:1050
+#, c-format
+msgid "fcntl F_SETFL error. ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:1104
+#, c-format
+msgid "Unknown sig %d"
+msgstr ""
+
#: src/lib/bnet_pkt.c:89 src/lib/bnet_pkt.c:147
#, c-format
msgid "Unknown BPKT type: %d\n"
#: src/lib/bnet_server.c:124
#, c-format
-msgid "Cannot bind port %d: ERR=%s. Retrying ...\n"
+msgid "Cannot bind port %d: ERR=%s: Retrying ...\n"
msgstr ""
#: src/lib/bnet_server.c:129
msgid "Socket accept error for %s. ERR=%s\n"
msgstr ""
+#: src/lib/bpipe.c:282 src/lib/bpipe.c:357
+msgid "Program killed by Bacula watchdog (timeout)\n"
+msgstr ""
+
+#: src/lib/bshm.c:69
+#, c-format
+msgid "shmget failure key = %x\n"
+msgstr ""
+
+#: src/lib/bshm.c:77
+#, c-format
+msgid "Could not get %d bytes of shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:102
+#, c-format
+msgid "Could not attach shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:123
+#, c-format
+msgid "Error detaching shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:139
+#, c-format
+msgid "Could not destroy shared memory: %s\n"
+msgstr ""
+
#: src/lib/bsys.c:176 src/lib/bsys.c:192 src/lib/bsys.c:202 src/lib/bsys.c:214
#, c-format
msgid "Out of memory: ERR=%s\n"
msgid "Mutex unlock failure. ERR=%s\n"
msgstr ""
+#: src/lib/bsys.c:396
+#, c-format
+msgid "Memset for %d bytes at %s:%d\n"
+msgstr ""
+
#: src/lib/bsys.c:425
#, c-format
msgid "Cannot open pid file. %s ERR=%s\n"
msgid "Could not open pid file. %s ERR=%s\n"
msgstr ""
-#: src/lib/bsys.c:535 src/lib/bsys.c:536
+#: src/lib/bsys.c:536
#, c-format
msgid "Could not create state file. %s ERR=%s\n"
msgstr ""
+#: src/lib/bsys.c:552
+#, c-format
+msgid "Write final hdr error: ERR=%s\n"
+msgstr ""
+
#: src/lib/bsys.c:574
#, c-format
msgid "Could not find specified group: %s\n"
msgid "Could not set specified userid: %s\n"
msgstr ""
+#: src/lib/btimers.c:239
+msgid "stop_btimer called with NULL btimer_id\n"
+msgstr ""
+
+#: src/lib/cram-md5.c:80 src/lib/cram-md5.c:105
+msgid "1999 Authorization failed.\n"
+msgstr ""
+
+#: src/lib/daemon.c:58
+#, c-format
+msgid "Cannot fork to become daemon: %s\n"
+msgstr ""
+
#: src/lib/edit.c:400
#, c-format
msgid "Illegal character \"%c\" in name.\n"
msgid "Name too long.\n"
msgstr ""
+#: src/lib/events.c:161
+msgid "Events not available"
+msgstr ""
+
+#: src/lib/jcr.c:277
+msgid "NULL jcr.\n"
+msgstr ""
+
#: src/lib/jcr.c:396
#, c-format
msgid "JCR use_count=%d JobId=%d\n"
"Watchdog sending kill after %d secs to thread stalled reading Director.\n"
msgstr ""
-#: src/lib/lex.c:79 src/wx-console/console_thread.cpp:190
+#: src/lib/lex.c:79 src/wx-console/console_thread.cpp:189
#, c-format
msgid "Problem probably begins at line %d.\n"
msgstr ""
-#: src/lib/lex.c:84
+#: src/lib/lex.c:84 src/wx-console/console_thread.cpp:194
#, c-format
msgid ""
"Config error: %s\n"
msgid "Config error: %s\n"
msgstr ""
+#: src/lib/lex.c:108
+msgid "Close of NULL file\n"
+msgstr ""
+
+#: src/lib/lex.c:181
+msgid "get_char: called after EOF\n"
+msgstr ""
+
#: src/lib/lex.c:220
#, c-format
msgid "Config token too long, file: %s, line %d, begins at line %d\n"
msgstr ""
+#: src/lib/lex.c:244
+msgid "none"
+msgstr ""
+
+#: src/lib/lex.c:245
+msgid "comment"
+msgstr ""
+
+#: src/lib/lex.c:246
+msgid "number"
+msgstr ""
+
+#: src/lib/lex.c:247
+msgid "ip_addr"
+msgstr ""
+
+#: src/lib/lex.c:248
+msgid "identifier"
+msgstr ""
+
+#: src/lib/lex.c:249
+msgid "string"
+msgstr ""
+
+#: src/lib/lex.c:250
+msgid "quoted_string"
+msgstr ""
+
#: src/lib/lex.c:286
#, c-format
msgid "expected a positive integer number, got: %s"
msgid "expected a string, got %s: %s"
msgstr ""
+#: src/lib/mem_pool.c:100
+#, c-format
+msgid "MemPool index %d larger than max %d\n"
+msgstr ""
+
+#: src/lib/mem_pool.c:118 src/lib/mem_pool.c:138 src/lib/mem_pool.c:173
+#: src/lib/mem_pool.c:244 src/lib/mem_pool.c:264 src/lib/mem_pool.c:302
+#: src/lib/mem_pool.c:521
+#, c-format
+msgid "Out of memory requesting %d bytes\n"
+msgstr ""
+
#: src/lib/message.c:253 src/lib/message.c:263
#, c-format
msgid "Could not open console message file %s: ERR=%s\n"
msgid "Could not get con mutex: ERR=%s\n"
msgstr ""
+#: src/lib/message.c:372
+#, c-format
+msgid "open mail pipe %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/message.c:378
+msgid "Bacula Message"
+msgstr ""
+
+#: src/lib/message.c:431
+msgid "open mail pipe failed.\n"
+msgstr ""
+
+#: src/lib/message.c:443
+#, c-format
+msgid "close error: ERR=%s\n"
+msgstr ""
+
#: src/lib/message.c:454
#, c-format
msgid "Mail prog: %s"
"ERR=%s\n"
msgstr ""
+#: src/lib/message.c:667 src/lib/message.c:689 src/lib/message.c:705
+#, c-format
+msgid "fopen %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/message.c:933
+#, c-format
+msgid "%s: ABORTING due to ERROR in %s:%d\n"
+msgstr ""
+
+#: src/lib/message.c:937
+#, c-format
+msgid "%s: ERROR TERMINATION at %s:%d\n"
+msgstr ""
+
+#: src/lib/message.c:942
+#, c-format
+msgid "%s: Fatal Error because: "
+msgstr ""
+
+#: src/lib/message.c:944
+#, c-format
+msgid "%s: Fatal Error at %s:%d because:\n"
+msgstr ""
+
+#: src/lib/message.c:948
+#, c-format
+msgid "%s: ERROR: "
+msgstr ""
+
+#: src/lib/message.c:950
+#, c-format
+msgid "%s: ERROR in %s:%d "
+msgstr ""
+
+#: src/lib/message.c:953
+#, c-format
+msgid "%s: Warning: "
+msgstr ""
+
+#: src/lib/message.c:956
+#, c-format
+msgid "%s: Security violation: "
+msgstr ""
+
+#: src/lib/message.c:1032
+#, c-format
+msgid "%s ABORTING due to ERROR\n"
+msgstr ""
+
+#: src/lib/message.c:1035
+#, c-format
+msgid "%s ERROR TERMINATION\n"
+msgstr ""
+
+#: src/lib/message.c:1038
+#, c-format
+msgid "%s: %s Fatal error: "
+msgstr ""
+
+#: src/lib/message.c:1044
+#, c-format
+msgid "%s: %s Error: "
+msgstr ""
+
+#: src/lib/message.c:1050
+#, c-format
+msgid "%s: %s Warning: "
+msgstr ""
+
+#: src/lib/message.c:1053
+#, c-format
+msgid "%s: %s Security violation: "
+msgstr ""
+
#: src/lib/parse_conf.c:160
msgid "***UNKNOWN***"
msgstr ""
msgid "Unable to initialize resource lock. ERR=%s\n"
msgstr ""
-#: src/lib/parse_conf.c:211
-#, c-format
-msgid "Too many items in %s resource\n"
-msgstr ""
-
#: src/lib/parse_conf.c:262 src/lib/parse_conf.c:281
#, c-format
msgid "expected an =, got: %s"
msgid "expected a time period, got: %s"
msgstr ""
+#: src/lib/parse_conf.c:699
+#, c-format
+msgid "Expect a %s or %s, got: %s"
+msgstr ""
+
+#: src/lib/parse_conf.c:723
+#, c-format
+msgid "Expected a Tape Label keyword, got: %s"
+msgstr ""
+
#: src/lib/parse_conf.c:772
#, c-format
msgid "Cannot open config file \"%s\": %s\n"
msgid "not in resource definition: %s"
msgstr ""
-#: src/lib/parse_conf.c:819
-#, c-format
-msgid "expected an equals, got: %s"
-msgstr ""
-
#: src/lib/parse_conf.c:833
#, c-format
msgid ""
msgid "No previous regular expression"
msgstr ""
-#: src/lib/smartall.c:137 src/lib/smartall.c:228 src/lib/smartall.c:243
-msgid "Out of memory\n"
-msgstr ""
-
-#: src/lib/util.c:184
-msgid "Created"
+#: src/lib/rwlock.c:289
+msgid "rwl_writeunlock called too many times.\n"
msgstr ""
-#: src/lib/util.c:187
-msgid "Running"
+#: src/lib/rwlock.c:293
+msgid "rwl_writeunlock by non-owner.\n"
msgstr ""
-#: src/lib/util.c:190
-msgid "Blocked"
+#: src/lib/rwlock.c:358 src/lib/semlock.c:248
+#, c-format
+msgid "Write lock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:193 src/lib/util.c:260
-msgid "OK"
+#: src/lib/rwlock.c:365 src/lib/semlock.c:255
+#, c-format
+msgid "Write unlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:197 src/lib/util.c:264
-msgid "Error"
+#: src/lib/rwlock.c:375 src/lib/semlock.c:265
+#, c-format
+msgid "Read lock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:200
-msgid "Non-fatal error"
+#: src/lib/rwlock.c:382 src/lib/semlock.c:272
+#, c-format
+msgid "Read unlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:203 src/lib/util.c:270
-msgid "Canceled"
+#: src/lib/rwlock.c:391 src/lib/semlock.c:281
+#, c-format
+msgid "Thread %d found unchanged elements %d times\n"
msgstr ""
-#: src/lib/util.c:206
-msgid "Verify differences"
+#: src/lib/rwlock.c:423 src/lib/semlock.c:313
+#, c-format
+msgid "Init rwlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:209
-msgid "Waiting on FD"
+#: src/lib/rwlock.c:438 src/lib/semlock.c:328
+#, c-format
+msgid "Create thread failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:212
-msgid "Wait on SD"
+#: src/lib/rwlock.c:449 src/lib/semlock.c:339
+#, c-format
+msgid "Join thread failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:215
-msgid "Wait for new Volume"
+#: src/lib/rwlock.c:452 src/lib/semlock.c:342
+#, c-format
+msgid "%02d: interval %d, writes %d, reads %d\n"
msgstr ""
-#: src/lib/util.c:218
-msgid "Waiting for mount"
+#: src/lib/rwlock.c:462 src/lib/semlock.c:352
+#, c-format
+msgid "data %02d: value %d, %d writes\n"
msgstr ""
-#: src/lib/util.c:221
-msgid "Waiting for Storage resource"
+#: src/lib/rwlock.c:467 src/lib/semlock.c:357
+#, c-format
+msgid "Total: %d thread writes, %d data writes\n"
msgstr ""
-#: src/lib/util.c:224
-msgid "Waiting for Job resource"
+#: src/lib/rwlock.c:539 src/lib/semlock.c:429
+msgid "Try write lock"
msgstr ""
-#: src/lib/util.c:227
-msgid "Waiting for Client resource"
+#: src/lib/rwlock.c:545 src/lib/semlock.c:435
+msgid "Try read lock"
msgstr ""
-#: src/lib/util.c:230
-msgid "Waiting on Max Jobs"
+#: src/lib/rwlock.c:600 src/lib/semlock.c:490
+msgid "Create thread"
msgstr ""
-#: src/lib/util.c:233
-msgid "Waiting for Start Time"
+#: src/lib/rwlock.c:610 src/lib/semlock.c:500
+msgid "Join thread"
msgstr ""
-#: src/lib/util.c:236
-msgid "Waiting on Priority"
+#: src/lib/rwlock.c:612 src/lib/semlock.c:502
+#, c-format
+msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n"
msgstr ""
-#: src/lib/util.c:243
+#: src/lib/rwlock.c:624 src/lib/semlock.c:514
#, c-format
-msgid "Unknown Job termination status=%d"
+msgid "data %02d: value %d, %d updates\n"
msgstr ""
-#: src/lib/util.c:267
-msgid "Fatal Error"
+#: src/lib/semlock.c:185
+msgid "sem_unlock by non-owner.\n"
msgstr ""
-#: src/lib/util.c:273
-msgid "Differences"
+#: src/lib/signal.c:61
+msgid "Invalid signal number"
msgstr ""
-#: src/lib/util.c:276
-msgid "Unknown term code"
+#: src/lib/signal.c:87
+#, c-format
+msgid "Bacula interrupted by signal %d: %s\n"
msgstr ""
-#: src/lib/util.c:304
-msgid "Unknown Type"
+#: src/lib/signal.c:100
+#, c-format
+msgid "Kaboom! %s, %s got signal %d. Attempting traceback.\n"
msgstr ""
-#: src/lib/util.c:336
-msgid "Verify Init Catalog"
+#: src/lib/signal.c:102
+#, c-format
+msgid "Kaboom! exepath=%s\n"
msgstr ""
-#: src/lib/util.c:345
-msgid "Verify Data"
+#: src/lib/signal.c:136
+#, c-format
+msgid "Fork error: ERR=%s\n"
msgstr ""
-#: src/lib/util.c:647
-msgid "Working directory not defined. Cannot continue.\n"
+#: src/lib/signal.c:143
+#, c-format
+msgid "Calling: %s %s %s\n"
msgstr ""
-#: src/lib/util.c:650
+#: src/lib/signal.c:145
#, c-format
-msgid "Working Directory: \"%s\" not found. Cannot continue.\n"
+msgid "execv: %s failed: ERR=%s\n"
msgstr ""
-#: src/lib/util.c:654
+#: src/lib/signal.c:160
#, c-format
-msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n"
+msgid "Traceback complete, attempting cleanup ...\n"
msgstr ""
-#: src/lib/watchdog.c:74
+#: src/lib/signal.c:168
#, c-format
-msgid "Unable to initialize watchdog lock. ERR=%s\n"
+msgid "It looks like the traceback worked ...\n"
msgstr ""
-#: src/lib/tls.c:108
+#: src/lib/signal.c:197
#, c-format
-msgid ""
-"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n"
+msgid "BA_NSIG too small (%d) should be (%d)\n"
msgstr ""
-#: src/lib/tls.c:155
-msgid "Error initializing SSL context"
+#: src/lib/signal.c:203
+msgid "UNKNOWN SIGNAL"
msgstr ""
-#: src/lib/tls.c:176
-msgid "Error loading certificate verification stores"
+#: src/lib/signal.c:204
+msgid "Hangup"
msgstr ""
-#: src/lib/tls.c:181
-msgid ""
-"Either a certificate file or a directory must be specified as a verification "
-"store\n"
+#: src/lib/signal.c:205
+msgid "Interrupt"
msgstr ""
-#: src/lib/tls.c:192
-msgid "Error loading certificate file"
+#: src/lib/signal.c:206
+msgid "Quit"
msgstr ""
-#: src/lib/tls.c:200
-msgid "Error loading private key"
+#: src/lib/signal.c:207
+msgid "Illegal instruction"
msgstr ""
-#: src/lib/tls.c:208
-msgid "Unable to open DH parameters file"
+#: src/lib/signal.c:208
+msgid "Trace/Breakpoint trap"
msgstr ""
-#: src/lib/tls.c:214
-msgid "Unable to load DH parameters from specified file"
+#: src/lib/signal.c:209
+msgid "Abort"
msgstr ""
-#: src/lib/tls.c:218
-msgid "Failed to set TLS Diffie-Hellman parameters"
+#: src/lib/signal.c:211
+msgid "EMT instruction (Emulation Trap)"
msgstr ""
-#: src/lib/tls.c:227
-msgid "Error setting cipher list, no valid ciphers available\n"
+#: src/lib/signal.c:214
+msgid "IOT trap"
msgstr ""
-#: src/lib/tls.c:275
-msgid "Peer failed to present a TLS certificate\n"
+#: src/lib/signal.c:216
+msgid "BUS error"
msgstr ""
-#: src/lib/tls.c:317
-#, c-format
-msgid "Peer %s failed to present a TLS certificate\n"
+#: src/lib/signal.c:217
+msgid "Floating-point exception"
msgstr ""
-#: src/lib/tls.c:587 src/lib/tls.c:591
-msgid "TLS shutdown failure."
+#: src/lib/signal.c:218
+msgid "Kill, unblockable"
msgstr ""
-#: src/lib/tls.c:642 src/lib/tls.c:658
-msgid "TLS read/write failure."
+#: src/lib/signal.c:219
+msgid "User-defined signal 1"
msgstr ""
-#: src/lib/tls.c:880
-msgid "Failed to seed OpenSSL PRNG\n"
+#: src/lib/signal.c:220
+msgid "Segmentation violation"
msgstr ""
-#: src/lib/tls.c:906
-msgid "Failed to save OpenSSL PRNG\n"
+#: src/lib/signal.c:221
+msgid "User-defined signal 2"
msgstr ""
-#: src/stored/acquire.c:98
-#, c-format
-msgid "Hey! num_writers=%d!!!!\n"
+#: src/lib/signal.c:222
+msgid "Broken pipe"
msgstr ""
-#: src/stored/acquire.c:146
-#, c-format
-msgid "Num_writers=%d not zero. Job %d canceled.\n"
+#: src/lib/signal.c:223
+msgid "Alarm clock"
msgstr ""
-#: src/stored/acquire.c:154
-#, c-format
-msgid "No volumes specified. Job %d canceled.\n"
+#: src/lib/signal.c:224
+msgid "Termination"
msgstr ""
-#: src/stored/acquire.c:182 src/stored/mount.c:72
-#, c-format
-msgid "Job %d canceled.\n"
+#: src/lib/signal.c:226
+msgid "Stack fault"
msgstr ""
-#: src/stored/acquire.c:193
-#, c-format
-msgid "Open device %s Volume \"%s\" failed (EIO): ERR=%s\n"
+#: src/lib/signal.c:228
+msgid "Child status has changed"
msgstr ""
-#: src/stored/acquire.c:208
-#, c-format
-msgid "Open device %s Volume \"%s\" failed: ERR=%s\n"
+#: src/lib/signal.c:229
+msgid "Continue"
msgstr ""
-#: src/stored/acquire.c:273 src/stored/mount.c:66
-#, c-format
-msgid "Too many errors trying to mount device %s.\n"
+#: src/lib/signal.c:230
+msgid "Stop, unblockable"
msgstr ""
-#: src/stored/acquire.c:282
-#, c-format
-msgid "Ready to read from volume \"%s\" on device %s.\n"
+#: src/lib/signal.c:231
+msgid "Keyboard stop"
msgstr ""
-#: src/stored/acquire.c:328 src/stored/reserve.c:617
-#, c-format
-msgid "Device %s is busy reading.\n"
+#: src/lib/signal.c:232
+msgid "Background read from tty"
msgstr ""
-#: src/stored/acquire.c:357
-#, c-format
-msgid "Wanted Volume \"%s\", but device %s is busy writing on \"%s\" .\n"
+#: src/lib/signal.c:233
+msgid "Background write to tty"
msgstr ""
-#: src/stored/acquire.c:374
-#, c-format
-msgid ""
-"Cannot recycle volume \"%s\" on device %s because it is in use by another "
-"job.\n"
+#: src/lib/signal.c:234
+msgid "Urgent condition on socket"
msgstr ""
-#: src/stored/acquire.c:396
-#, c-format
-msgid "Could not ready device %s for append.\n"
+#: src/lib/signal.c:235
+msgid "CPU limit exceeded"
msgstr ""
-#: src/stored/acquire.c:459 src/stored/block.c:353 src/stored/block.c:676
-#: src/stored/block.c:744
-#, c-format
-msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n"
+#: src/lib/signal.c:236
+msgid "File size limit exceeded"
msgstr ""
-#: src/stored/acquire.c:501
-#, c-format
-msgid "Alert: %s"
+#: src/lib/signal.c:237
+msgid "Virtual alarm clock"
msgstr ""
-#: src/stored/acquire.c:509
-#, c-format
-msgid "3997 Bad alert command: %s: ERR=%s.\n"
+#: src/lib/signal.c:238
+msgid "Profiling alarm clock"
msgstr ""
-#: src/stored/append.c:60
-msgid "Unable to set network buffer size.\n"
+#: src/lib/signal.c:239
+msgid "Window size change"
msgstr ""
-#: src/stored/append.c:88 src/stored/btape.c:1810
-#, c-format
-msgid "Write session label failed. ERR=%s\n"
+#: src/lib/signal.c:240
+msgid "I/O now possible"
msgstr ""
-#: src/stored/append.c:100
-#, c-format
-msgid "Network send error to FD. ERR=%s\n"
+#: src/lib/signal.c:242
+msgid "Power failure restart"
msgstr ""
-#: src/stored/append.c:137
-#, c-format
-msgid "Error reading data header from FD. ERR=%s\n"
+#: src/lib/signal.c:245
+msgid "No runnable lwp"
msgstr ""
-#: src/stored/append.c:159
-#, c-format
-msgid "Malformed data header from FD: %s\n"
+#: src/lib/signal.c:248
+msgid "SIGLWP special signal used by thread library"
msgstr ""
-#: src/stored/append.c:169
-msgid "File index from FD not positive or sequential\n"
+#: src/lib/signal.c:251
+msgid "Checkpoint Freeze"
msgstr ""
-#: src/stored/append.c:199 src/stored/append.c:269 src/stored/spool.c:242
-#, c-format
-msgid "Fatal append error on device %s: ERR=%s\n"
+#: src/lib/signal.c:254
+msgid "Checkpoint Thaw"
msgstr ""
-#: src/stored/append.c:224
-#, c-format
-msgid "Error updating file attributes. ERR=%s\n"
+#: src/lib/signal.c:257
+msgid "Thread Cancellation"
msgstr ""
-#: src/stored/append.c:237
-#, c-format
-msgid "Network error on data channel. ERR=%s\n"
+#: src/lib/signal.c:260
+msgid "Resource Lost (e.g. record-lock lost)"
msgstr ""
-#: src/stored/append.c:258 src/stored/btape.c:1926
-#, c-format
-msgid "Error writting end session label. ERR=%s\n"
+#: src/lib/smartall.c:137 src/lib/smartall.c:228 src/lib/smartall.c:243
+msgid "Out of memory\n"
msgstr ""
-#: src/stored/append.c:271
-msgid "Set ok=FALSE after write_block_to_device.\n"
+#: src/lib/smartall.c:165
+#, c-format
+msgid "Attempt to free NULL called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:161
-msgid "Network error on bnet_recv in req_vol_info.\n"
+#: src/lib/smartall.c:181
+#, c-format
+msgid "qp->qnext->qprev != qp called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:178
+#: src/lib/smartall.c:185
#, c-format
-msgid "Error getting Volume info: %s\n"
+msgid "qp->qprev->qnext != qp called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:284
-msgid "NULL Volume name. This shouldn't happen!!!\n"
+#: src/lib/smartall.c:194
+#, c-format
+msgid "Buffer overrun called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:289
-msgid "Attempt to update_volume_info in read mode!!!\n"
+#: src/lib/smartall.c:265
+#, c-format
+msgid "sm_realloc size: %d\n"
msgstr ""
-#: src/stored/askdir.c:349
+#: src/lib/smartall.c:306
#, c-format
-msgid "Error creating JobMedia record: ERR=%s\n"
+msgid "sm_realloc %d at %x from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:356
+#: src/lib/smartall.c:368
#, c-format
-msgid "Error creating JobMedia record: %s\n"
+msgid ""
+"\n"
+"Orphaned buffers exist. Dump terminated following\n"
+" discovery of bad links in chain of orphaned buffers.\n"
+" Buffer address with bad links: %lx\n"
msgstr ""
-#: src/stored/askdir.c:424
+#: src/lib/smartall.c:379
#, c-format
-msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n"
+msgid "Orphaned buffer: %6u bytes allocated at line %d of %s %s\n"
msgstr ""
-#: src/stored/askdir.c:452
+#: src/lib/smartall.c:415
#, c-format
-msgid ""
-"Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
-"Use \"mount\" command to release Job.\n"
+msgid "Damaged buffer found. Called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:462
+#: src/lib/smartall.c:445
#, c-format
msgid ""
-"Job %s waiting. Cannot find any appendable volumes.\n"
-"Please use the \"label\" command to create a new Volume for:\n"
-" Storage: %s\n"
-" Media type: %s\n"
-" Pool: %s\n"
+"\n"
+"Damaged buffers found at %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:486 src/stored/askdir.c:590
+#: src/lib/smartall.c:448
#, c-format
-msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n"
+msgid " discovery of bad prev link.\n"
msgstr ""
-#: src/stored/askdir.c:496 src/stored/askdir.c:503
+#: src/lib/smartall.c:451
#, c-format
-msgid "pthread error in mount_next_volume stat=%d ERR=%s\n"
+msgid " discovery of bad next link.\n"
msgstr ""
-#: src/stored/askdir.c:514
+#: src/lib/smartall.c:454
#, c-format
-msgid ""
-"Someone woke me up, but I cannot find any appendable\n"
-"volumes for Job=%s.\n"
+msgid " discovery of data overrun.\n"
msgstr ""
-#: src/stored/askdir.c:559
-msgid "Cannot request another volume: no volume name given.\n"
+#: src/lib/smartall.c:457
+#, c-format
+msgid " Buffer address: %lx\n"
msgstr ""
-#: src/stored/askdir.c:565
+#: src/lib/smartall.c:464
#, c-format
-msgid "Job %s canceled while waiting for mount on Storage Device %s.\n"
+msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n"
msgstr ""
-#: src/stored/askdir.c:571
-msgid "Please mount"
+#: src/lib/util.c:187
+msgid "Running"
msgstr ""
-#: src/stored/askdir.c:572
-#, c-format
-msgid "%s Volume \"%s\" on Storage Device %s for Job %s\n"
+#: src/lib/util.c:190
+msgid "Blocked"
msgstr ""
-#: src/stored/askdir.c:600
-#, c-format
-msgid "pthread error in mount_volume stat=%d ERR=%s\n"
+#: src/lib/util.c:200
+msgid "Non-fatal error"
msgstr ""
-#: src/stored/askdir.c:607
-#, c-format
-msgid "pthread error in mount_next_volume stat=%d: ERR=%s\n"
+#: src/lib/util.c:203 src/lib/util.c:270
+msgid "Canceled"
msgstr ""
-#: src/stored/authenticate.c:52 src/stored/authenticate.c:53
-#, c-format
-msgid "I only authenticate Directors, not %d\n"
+#: src/lib/util.c:206
+msgid "Verify differences"
msgstr ""
-#: src/stored/authenticate.c:120
-msgid ""
-"Incorrect password given by Director.\n"
-"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
-"help.\n"
+#: src/lib/util.c:209
+msgid "Waiting on FD"
msgstr ""
-#: src/stored/authenticate.c:177 src/stored/authenticate.c:178
-#, c-format
-msgid "Unable to authenticate Director at %s.\n"
+#: src/lib/util.c:212
+msgid "Wait on SD"
msgstr ""
-#: src/stored/authenticate.c:223 src/stored/authenticate.c:259
-#, c-format
-msgid ""
-"Incorrect authorization key from File daemon at %s rejected.\n"
-"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
-"help.\n"
+#: src/lib/util.c:215
+msgid "Wait for new Volume"
msgstr ""
-#: src/stored/autochanger.c:87
-#, c-format
-msgid "3303 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+#: src/lib/util.c:218
+msgid "Waiting for mount"
msgstr ""
-#: src/stored/autochanger.c:96
-#, c-format
-msgid "3992 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:221
+msgid "Waiting for Storage resource"
msgstr ""
-#: src/stored/autochanger.c:109
-#, c-format
-msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n"
+#: src/lib/util.c:224
+msgid "Waiting for Job resource"
msgstr ""
-#: src/stored/autochanger.c:116
-#, c-format
-msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n"
+#: src/lib/util.c:227
+msgid "Waiting for Client resource"
msgstr ""
-#: src/stored/autochanger.c:122
-#, c-format
-msgid "3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:230
+msgid "Waiting on Max Jobs"
msgstr ""
-#: src/stored/autochanger.c:167
-#, c-format
-msgid "3301 Issuing autochanger \"loaded drive %d\" command.\n"
+#: src/lib/util.c:233
+msgid "Waiting for Start Time"
msgstr ""
-#: src/stored/autochanger.c:176
-#, c-format
-msgid "3302 Autochanger \"loaded drive %d\", result is Slot %d.\n"
+#: src/lib/util.c:236
+msgid "Waiting on Priority"
msgstr ""
-#: src/stored/autochanger.c:180
+#: src/lib/util.c:243
#, c-format
-msgid "3302 Autochanger \"loaded drive %d\", result: nothing loaded.\n"
+msgid "Unknown Job termination status=%d"
msgstr ""
-#: src/stored/autochanger.c:187
-#, c-format
-msgid "3991 Bad autochanger \"loaded drive %d\" command: ERR=%s.\n"
+#: src/lib/util.c:267
+msgid "Fatal Error"
msgstr ""
-#: src/stored/autochanger.c:235
-#, c-format
-msgid "3993 Device %s not an autochanger device.\n"
+#: src/lib/util.c:273
+msgid "Differences"
msgstr ""
-#: src/stored/autochanger.c:253
-#, c-format
-msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+#: src/lib/util.c:276
+msgid "Unknown term code"
msgstr ""
-#: src/stored/autochanger.c:265
-#, c-format
-msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:304
+msgid "Unknown Type"
msgstr ""
-#: src/stored/autochanger.c:277
-#, c-format
-msgid "3306 Issuing autochanger \"%s\" command.\n"
+#: src/lib/util.c:336
+msgid "Verify Init Catalog"
msgstr ""
-#: src/stored/autochanger.c:282
-msgid "3996 Open bpipe failed.\n"
+#: src/lib/util.c:345
+msgid "Verify Data"
msgstr ""
-#: src/stored/bcopy.c:58
-#, c-format
-msgid ""
-"Copyright (C) 2002-2005 Kern Sibbald.\n"
-"\n"
-"Version: "
+#: src/lib/util.c:647
+msgid "Working directory not defined. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:59
+#: src/lib/util.c:650
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: bcopy [-d debug_level] <input-archive> <output-archive>\n"
-" -b bootstrap specify a bootstrap file\n"
-" -c <file> specify configuration file\n"
-" -d <nn> set debug level to nn\n"
-" -i specify input Volume names (separated by |)\n"
-" -o specify output Volume names (separated by |)\n"
-" -p proceed inspite of errors\n"
-" -v verbose\n"
-" -w <dir> specify working directory (default /tmp)\n"
-" -? print this message\n"
-"\n"
-msgstr ""
-
-#: src/stored/bcopy.c:133 src/stored/bscan.c:217
-msgid "Wrong number of arguments: \n"
+msgid "Working Directory: \"%s\" not found. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:168 src/stored/btape.c:330 src/stored/device.c:273
+#: src/lib/util.c:654
#, c-format
-msgid "dev open failed: %s\n"
+msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:181
-msgid "Write of last block failed.\n"
+#: src/lib/var.c:2659
+msgid "everything ok"
msgstr ""
-#: src/stored/bcopy.c:184
-#, c-format
-msgid "%u Jobs copied. %u records copied.\n"
+#: src/lib/var.c:2660
+msgid "incomplete named character"
msgstr ""
-#: src/stored/bcopy.c:201 src/stored/bscan.c:380
-#, c-format
-msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n"
+#: src/lib/var.c:2661
+msgid "incomplete hexadecimal value"
msgstr ""
-#: src/stored/bcopy.c:231 src/stored/bcopy.c:238 src/stored/bcopy.c:261
-#: src/stored/btape.c:2286
-#, c-format
-msgid "Cannot fixup device error. %s\n"
+#: src/lib/var.c:2662
+msgid "invalid hexadecimal value"
msgstr ""
-#: src/stored/bextract.c:274
-msgid "Logic error output file should be open but is not.\n"
+#: src/lib/var.c:2663
+msgid "octal value too large"
msgstr ""
-#: src/stored/bextract.c:281 src/stored/bls.c:361 src/stored/bscan.c:636
-msgid "Cannot continue.\n"
+#: src/lib/var.c:2664
+msgid "invalid octal value"
msgstr ""
-#: src/stored/bextract.c:343
-#, c-format
-msgid "Seek error on %s: %s\n"
+#: src/lib/var.c:2665
+msgid "incomplete octal value"
msgstr ""
-#: src/stored/bextract.c:396
-#, c-format
-msgid "Uncompression error. ERR=%d\n"
+#: src/lib/var.c:2666
+msgid "incomplete grouped hexadecimal value"
msgstr ""
-#: src/stored/block.c:147
-#, c-format
-msgid "%d block read errors not printed.\n"
+#: src/lib/var.c:2667
+msgid "incorrect character class specification"
msgstr ""
-#: src/stored/block.c:235 src/stored/block.c:251 src/stored/block.c:261
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer "
-"discarded.\n"
+#: src/lib/var.c:2668
+msgid "invalid expansion configuration"
msgstr ""
-#: src/stored/block.c:275
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Block length %u is insane (too large), probably "
-"due to a bad archive.\n"
+#: src/lib/var.c:2669
+msgid "out of memory"
msgstr ""
-#: src/stored/block.c:301
-#, c-format
-msgid ""
-"Volume data error at %u:%u!\n"
-"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n"
+#: src/lib/var.c:2670
+msgid "incomplete variable specification"
msgstr ""
-#: src/stored/block.c:409
-msgid "Cannot write block. Device at EOM.\n"
+#: src/lib/var.c:2671
+msgid "undefined variable"
msgstr ""
-#: src/stored/block.c:414
-msgid "Attempt to write on read-only Volume.\n"
+#: src/lib/var.c:2672
+msgid "input is neither text nor variable"
msgstr ""
-#: src/stored/block.c:466
-#, c-format
-msgid "User defined maximum volume capacity %s exceeded on device %s.\n"
+#: src/lib/var.c:2673
+msgid "unknown command character in variable"
msgstr ""
-#: src/stored/block.c:481
-#, c-format
-msgid "Unable to write EOF. ERR=%s\n"
+#: src/lib/var.c:2674
+msgid "malformatted search and replace operation"
msgstr ""
-#: src/stored/block.c:536
-#, c-format
-msgid "Write error at %u:%u on device %s. ERR=%s.\n"
+#: src/lib/var.c:2675
+msgid "unknown flag in search and replace operation"
msgstr ""
-#: src/stored/block.c:543
-#, c-format
-msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n"
+#: src/lib/var.c:2676
+msgid "invalid regex in search and replace operation"
msgstr ""
-#: src/stored/block.c:618 src/stored/block.c:624
-#, c-format
-msgid "Backspace file at EOT failed. ERR=%s\n"
+#: src/lib/var.c:2677
+msgid "missing parameter in command"
msgstr ""
-#: src/stored/block.c:631
-#, c-format
-msgid "Backspace record at EOT failed. ERR=%s\n"
+#: src/lib/var.c:2678
+msgid "empty search string in search and replace operation"
msgstr ""
-#: src/stored/block.c:648
-#, c-format
-msgid "Re-read last block at EOT failed. ERR=%s"
+#: src/lib/var.c:2679
+msgid "start offset missing in cut operation"
msgstr ""
-#: src/stored/block.c:652
-msgid "Re-read of last block succeeded.\n"
+#: src/lib/var.c:2680
+msgid "offsets in cut operation delimited by unknown character"
msgstr ""
-#: src/stored/block.c:655
-#, c-format
-msgid "Re-read of last block failed. Last block=%u Current block=%u.\n"
+#: src/lib/var.c:2681
+msgid "range out of bounds in cut operation"
msgstr ""
-#: src/stored/block.c:790 src/stored/dvd.c:621
-#, c-format
-msgid ""
-"Error while writing, current part number is less than the total number of "
-"parts (%d/%d, device=%s)\n"
+#: src/lib/var.c:2682
+msgid "offset out of bounds in cut operation"
msgstr ""
-#: src/stored/block.c:798 src/stored/block.c:908
-#, c-format
-msgid "Unable to open device next part %s: ERR=%s\n"
+#: src/lib/var.c:2683
+msgid "logic error in cut operation"
msgstr ""
-#: src/stored/block.c:816
-#, c-format
-msgid ""
-"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
-"free_space_errno=%d, errmsg=%s).\n"
+#: src/lib/var.c:2684
+msgid "malformatted transpose operation"
msgstr ""
-#: src/stored/block.c:829
-#, c-format
-msgid ""
-"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
-"free_space_errno=%d).\n"
+#: src/lib/var.c:2685
+msgid "source and target class mismatch in transpose operation"
msgstr ""
-#: src/stored/block.c:883
-#, c-format
-msgid "Block buffer size looping problem on device %s\n"
+#: src/lib/var.c:2686
+msgid "empty character class in transpose operation"
msgstr ""
-#: src/stored/block.c:934
-#, c-format
-msgid "Read error at file:blk %u:%u on device %s. ERR=%s.\n"
+#: src/lib/var.c:2687
+msgid "incorrect character class in transpose operation"
msgstr ""
-#: src/stored/block.c:947
-#, c-format
-msgid "Read zero bytes at %u:%u on device %s.\n"
+#: src/lib/var.c:2688
+msgid "malformatted padding operation"
msgstr ""
-#: src/stored/block.c:960
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Very short block of %d bytes on device %s "
-"discarded.\n"
+#: src/lib/var.c:2689
+msgid "width parameter missing in padding operation"
msgstr ""
-#: src/stored/block.c:985
-#, c-format
-msgid "Block length %u is greater than buffer %u. Attempting recovery.\n"
+#: src/lib/var.c:2690
+msgid "fill string missing in padding operation"
msgstr ""
-#: src/stored/block.c:1004
-#, c-format
-msgid "Setting block buffer size to %u bytes.\n"
+#: src/lib/var.c:2691
+msgid "unknown quoted pair in search and replace operation"
msgstr ""
-#: src/stored/block.c:1019
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n"
+#: src/lib/var.c:2692
+msgid "sub-matching reference out of range"
msgstr ""
-#: src/stored/bls.c:125
-#, c-format
-msgid "Could not open exclude file: %s, ERR=%s\n"
+#: src/lib/var.c:2693
+msgid "invalid argument"
msgstr ""
-#: src/stored/bls.c:139
-#, c-format
-msgid "Could not open include file: %s, ERR=%s\n"
+#: src/lib/var.c:2694
+msgid "incomplete quoted pair"
msgstr ""
-#: src/stored/bls.c:186
-msgid "No archive name specified\n"
+#: src/lib/var.c:2695
+msgid "lookup function does not support variable arrays"
msgstr ""
-#: src/stored/bls.c:264
-#, c-format
-msgid "Got EOM at file %u on device %s, Volume \"%s\"\n"
+#: src/lib/var.c:2696
+msgid "index of array variable contains an invalid character"
msgstr ""
-#: src/stored/bls.c:275
-#, c-format
-msgid "Mounted Volume \"%s\".\n"
+#: src/lib/var.c:2697
+msgid "index of array variable is incomplete"
msgstr ""
-#: src/stored/bls.c:277
-#, c-format
-msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+#: src/lib/var.c:2698
+msgid "bracket expression in array variable's index not closed"
msgstr ""
-#: src/stored/bscan.c:109
-#, c-format
-msgid ""
-"Copyright (C) 2001-2005 Kern Sibbald.\n"
-"\n"
-"Version: "
+#: src/lib/var.c:2699
+msgid "division by zero error in index specification"
msgstr ""
-#: src/stored/bscan.c:110
-#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: bscan [ options ] <bacula-archive>\n"
-" -b bootstrap specify a bootstrap file\n"
-" -c <file> specify configuration file\n"
-" -d <nn> set debug level to nn\n"
-" -m update media info in database\n"
-" -n <name> specify the database name (default bacula)\n"
-" -u <user> specify database user name (default bacula)\n"
-" -P <password specify database password (default none)\n"
-" -h <host> specify database host (default NULL)\n"
-" -p proceed inspite of I/O errors\n"
-" -r list records\n"
-" -s synchronize or store in database\n"
-" -S show scan progress periodically\n"
-" -v verbose\n"
-" -V <Volumes> specify Volume names (separated by |)\n"
-" -w <dir> specify working directory (default from conf file)\n"
-" -? print this message\n"
-"\n"
+#: src/lib/var.c:2700
+msgid "unterminated loop construct"
msgstr ""
-#: src/stored/bscan.c:230 src/stored/stored.c:263
-#, c-format
-msgid "No Storage resource defined in %s. Cannot continue.\n"
+#: src/lib/var.c:2701
+msgid "invalid character in loop limits"
msgstr ""
-#: src/stored/bscan.c:238 src/stored/stored.c:294
-#, c-format
-msgid "No Working Directory defined in %s. Cannot continue.\n"
+#: src/lib/var.c:2702
+msgid "malformed operation argument list"
msgstr ""
-#: src/stored/bscan.c:246
-#, c-format
-msgid "Working Directory: %s not found. Cannot continue.\n"
+#: src/lib/var.c:2703
+msgid "undefined operation"
msgstr ""
-#: src/stored/bscan.c:250
-#, c-format
-msgid "Working Directory: %s is not a directory. Cannot continue.\n"
+#: src/lib/var.c:2704
+msgid "formatting failure"
msgstr ""
-#: src/stored/bscan.c:264 src/stored/bscan.c:331
-#, c-format
-msgid "First Volume Size = %sn"
+#: src/lib/var.c:2713
+msgid "unknown error"
msgstr ""
-#: src/stored/bscan.c:270
-msgid "Could not init Bacula database\n"
+#: src/lib/watchdog.c:74
+#, c-format
+msgid "Unable to initialize watchdog lock. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:277
-#, c-format
-msgid "Using Database: %s, User: %s\n"
+#: src/lib/watchdog.c:170
+msgid "BUG! register_watchdog called before start_watchdog\n"
msgstr ""
-#: src/stored/bscan.c:306
+#: src/lib/watchdog.c:173
#, c-format
-msgid "Create JobMedia for Job %s\n"
+msgid "BUG! Watchdog %p has NULL callback\n"
msgstr ""
-#: src/stored/bscan.c:316
+#: src/lib/watchdog.c:176
#, c-format
-msgid "Could not create JobMedia record for Volume=%s Job=%s\n"
+msgid "BUG! Watchdog %p has zero interval\n"
msgstr ""
-#: src/stored/bscan.c:396
-msgid "Volume is prelabeled. This tape cannot be scanned.\n"
+#: src/lib/watchdog.c:196
+msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n"
msgstr ""
-#: src/stored/bscan.c:408
+#: src/lib/watchdog.c:313
#, c-format
-msgid "Pool record for %s found in DB.\n"
+msgid "rwl_writelock failure. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:412
+#: src/lib/watchdog.c:327
#, c-format
-msgid "VOL_LABEL: Pool record not found for Pool: %s\n"
+msgid "rwl_writeunlock failure. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:418
-#, c-format
-msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n"
+#: src/lib/pythonlib.c:108
+msgid "Could not initialize Python\n"
msgstr ""
-#: src/stored/bscan.c:422
+#: src/lib/pythonlib.c:113
#, c-format
-msgid "Pool type \"%s\" is OK.\n"
+msgid "Could not Run Python string %s\n"
msgstr ""
-#: src/stored/bscan.c:432
-#, c-format
-msgid "Media record for %s found in DB.\n"
+#: src/lib/pythonlib.c:125
+msgid "Could not initialize Python Job type.\n"
msgstr ""
-#: src/stored/bscan.c:439
+#: src/lib/pythonlib.c:130
#, c-format
-msgid "VOL_LABEL: Media record not found for Volume: %s\n"
+msgid "Could not import Python script %s/%s. Python disabled.\n"
msgstr ""
-#: src/stored/bscan.c:446
-#, c-format
-msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n"
+#: src/lib/pythonlib.c:230
+msgid "Could not create Python Job Object.\n"
msgstr ""
-#: src/stored/bscan.c:450
+#: src/lib/pythonlib.c:243 src/lib/pythonlib.c:267
#, c-format
-msgid "Media type \"%s\" is OK.\n"
+msgid "Python function \"%s\" not found.\n"
msgstr ""
-#: src/stored/bscan.c:459
+#: src/lib/pythonlib.c:282
#, c-format
-msgid "VOL_LABEL: OK for Volume: %s\n"
+msgid "Unknown Python daemon event %s\n"
msgstr ""
-#: src/stored/bscan.c:466
+#: src/lib/res.c:66
#, c-format
-msgid "%d \"errors\" ignored before first Start of Session record.\n"
+msgid "rwl_writelock failure at %s:%d: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:477
+#: src/lib/res.c:76
#, c-format
-msgid "SOS_LABEL: Found Job record for JobId: %d\n"
+msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:482
+#: src/lib/tls.c:108
#, c-format
-msgid "SOS_LABEL: Job record not found for JobId: %d\n"
+msgid ""
+"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n"
msgstr ""
-#: src/stored/bscan.c:522
-#, c-format
-msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:155
+msgid "Error initializing SSL context"
msgstr ""
-#: src/stored/bscan.c:528
-#, c-format
-msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:176
+msgid "Error loading certificate verification stores"
msgstr ""
-#: src/stored/bscan.c:534
-#, c-format
-msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:181
+msgid ""
+"Either a certificate file or a directory must be specified as a verification "
+"store\n"
msgstr ""
-#: src/stored/bscan.c:552 src/stored/bscan.c:998
-#, c-format
-msgid "Could not find SessId=%d SessTime=%d for EOS record.\n"
+#: src/lib/tls.c:192
+msgid "Error loading certificate file"
msgstr ""
-#: src/stored/bscan.c:595
-#, c-format
-msgid "Could not update job record. ERR=%s\n"
+#: src/lib/tls.c:200
+msgid "Error loading private key"
msgstr ""
-#: src/stored/bscan.c:606
-#, c-format
-msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n"
+#: src/lib/tls.c:208
+msgid "Unable to open DH parameters file"
msgstr ""
-#: src/stored/bscan.c:618
-#, c-format
-msgid "Could not find Job for SessId=%d SessTime=%d record.\n"
+#: src/lib/tls.c:214
+msgid "Unable to load DH parameters from specified file"
msgstr ""
-#: src/stored/bscan.c:654
-#, c-format
-msgid "%s file records. At file:blk=%s:%s bytes=%s\n"
+#: src/lib/tls.c:218
+msgid "Failed to set TLS Diffie-Hellman parameters"
msgstr ""
-#: src/stored/bscan.c:697
-#, c-format
-msgid "Got MD5 record: %s\n"
+#: src/lib/tls.c:227
+msgid "Error setting cipher list, no valid ciphers available\n"
msgstr ""
-#: src/stored/bscan.c:706
-#, c-format
-msgid "Got SHA1 record: %s\n"
+#: src/lib/tls.c:275
+msgid "Peer failed to present a TLS certificate\n"
msgstr ""
-#: src/stored/bscan.c:714
+#: src/lib/tls.c:317
#, c-format
-msgid "Got Prog Names Stream: %s\n"
+msgid "Peer %s failed to present a TLS certificate\n"
msgstr ""
-#: src/stored/bscan.c:720
-msgid "Got Prog Data Stream record.\n"
+#: src/lib/tls.c:416
+msgid "Error creating file descriptor-based BIO"
msgstr ""
-#: src/stored/bscan.c:724
-#, c-format
-msgid "Unknown stream type!!! stream=%d data=%s\n"
+#: src/lib/tls.c:427
+msgid "Error creating new SSL object"
msgstr ""
-#: src/stored/bscan.c:784
-#, c-format
-msgid "Could not create File Attributes record. ERR=%s\n"
+#: src/lib/tls.c:493 src/lib/tls.c:510
+msgid "Connect failure"
msgstr ""
-#: src/stored/bscan.c:790
-#, c-format
-msgid "Created File record: %s\n"
+#: src/lib/tls.c:587 src/lib/tls.c:591
+msgid "TLS shutdown failure."
msgstr ""
-#: src/stored/bscan.c:827
-#, c-format
-msgid "Could not create media record. ERR=%s\n"
+#: src/lib/tls.c:642 src/lib/tls.c:658
+msgid "TLS read/write failure."
msgstr ""
-#: src/stored/bscan.c:831 src/stored/bscan.c:852
+#: src/lib/tls.c:716 src/lib/tls.c:773 src/stored/dev.c:212
+#: src/stored/dev.c:230 src/stored/dev.c:236 src/stored/stored_conf.c:550
#, c-format
-msgid "Could not update media record. ERR=%s\n"
+msgid "Unable to init mutex: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:835
+#: src/lib/tls.c:736 src/lib/tls.c:805
#, c-format
-msgid "Created Media record for Volume: %s\n"
+msgid "Unable to destroy mutex: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:856
+#: src/lib/tls.c:870
#, c-format
-msgid "Updated Media record at end of Volume: %s\n"
+msgid "Unable to init OpenSSL threading: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:873
-#, c-format
-msgid "Could not create pool record. ERR=%s\n"
+#: src/lib/tls.c:880
+msgid "Failed to seed OpenSSL PRNG\n"
msgstr ""
-#: src/stored/bscan.c:877
-#, c-format
-msgid "Created Pool record for Pool: %s\n"
+#: src/lib/tls.c:906
+msgid "Failed to save OpenSSL PRNG\n"
msgstr ""
-#: src/stored/bscan.c:897
+#: src/stored/acquire.c:98
#, c-format
-msgid "Created Client record for Client: %s\n"
+msgid "Hey! num_writers=%d!!!!\n"
msgstr ""
-#: src/stored/bscan.c:914
+#: src/stored/acquire.c:146
#, c-format
-msgid "Fileset \"%s\" already exists.\n"
+msgid "Num_writers=%d not zero. Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:918
+#: src/stored/acquire.c:154
#, c-format
-msgid "Could not create FileSet record \"%s\". ERR=%s\n"
+msgid "No volumes specified. Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:923
+#: src/stored/acquire.c:182 src/stored/mount.c:72
#, c-format
-msgid "Created FileSet record \"%s\"\n"
+msgid "Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:970
+#: src/stored/acquire.c:193
#, c-format
-msgid "Could not create JobId record. ERR=%s\n"
+msgid "Open device %s Volume \"%s\" failed (EIO): ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:976
+#: src/stored/acquire.c:208
#, c-format
-msgid "Could not update job start record. ERR=%s\n"
+msgid "Open device %s Volume \"%s\" failed: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:979
+#: src/stored/acquire.c:273 src/stored/mount.c:66
#, c-format
-msgid "Created new JobId=%u record for original JobId=%u\n"
+msgid "Too many errors trying to mount device %s.\n"
msgstr ""
-#: src/stored/bscan.c:1029
+#: src/stored/acquire.c:282
#, c-format
-msgid "Could not update JobId=%u record. ERR=%s\n"
+msgid "Ready to read from volume \"%s\" on device %s.\n"
msgstr ""
-#: src/stored/bscan.c:1034
+#: src/stored/acquire.c:328 src/stored/reserve.c:617
#, c-format
-msgid "Updated Job termination record for JobId=%u TermStat=%c\n"
+msgid "Device %s is busy reading.\n"
msgstr ""
-#: src/stored/bscan.c:1056
+#: src/stored/acquire.c:357
#, c-format
-msgid "Job Termination code: %d"
+msgid "Wanted Volume \"%s\", but device %s is busy writing on \"%s\" .\n"
msgstr ""
-#: src/stored/bscan.c:1061
+#: src/stored/acquire.c:374
#, c-format
msgid ""
-"%s\n"
-"JobId: %d\n"
-"Job: %s\n"
-"FileSet: %s\n"
-"Backup Level: %s\n"
-"Client: %s\n"
-"Start time: %s\n"
-"End time: %s\n"
-"Files Written: %s\n"
-"Bytes Written: %s\n"
-"Volume Session Id: %d\n"
-"Volume Session Time: %d\n"
-"Last Volume Bytes: %s\n"
-"Termination: %s\n"
-"\n"
+"Cannot recycle volume \"%s\" on device %s because it is in use by another "
+"job.\n"
msgstr ""
-#: src/stored/bscan.c:1125
+#: src/stored/acquire.c:396
#, c-format
-msgid "Could not create JobMedia record. ERR=%s\n"
+msgid "Could not ready device %s for append.\n"
msgstr ""
-#: src/stored/bscan.c:1129
+#: src/stored/acquire.c:459 src/stored/block.c:353 src/stored/block.c:676
+#: src/stored/block.c:744
#, c-format
-msgid "Created JobMedia record JobId %d, MediaId %d\n"
+msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n"
msgstr ""
-#: src/stored/bscan.c:1145
+#: src/stored/acquire.c:501
#, c-format
-msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n"
+msgid "Alert: %s"
msgstr ""
-#: src/stored/bscan.c:1159
+#: src/stored/acquire.c:509
#, c-format
-msgid "Could not add MD5/SHA1 to File record. ERR=%s\n"
+msgid "3997 Bad alert command: %s: ERR=%s.\n"
msgstr ""
-#: src/stored/bscan.c:1164
-msgid "Updated MD5/SHA1 record\n"
+#: src/stored/append.c:60
+msgid "Unable to set network buffer size.\n"
msgstr ""
-#: src/stored/btape.c:483
-msgid "Moved to end of medium.\n"
+#: src/stored/append.c:73 src/stored/append.c:82 src/stored/append.c:94
+#: src/stored/append.c:249 src/stored/append.c:264 src/stored/append.c:276
+#: src/stored/askdir.c:284 src/stored/askdir.c:285
+msgid "NULL Volume name. This shouldn't happen!!!\n"
msgstr ""
-#: src/stored/btape.c:510
+#: src/stored/append.c:88 src/stored/btape.c:1853
#, c-format
-msgid "Bad status from bsf. ERR=%s\n"
+msgid "Write session label failed. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:512
+#: src/stored/append.c:100
#, c-format
-msgid "Backspaced %d file%s.\n"
+msgid "Network send error to FD. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:529
+#: src/stored/append.c:137
#, c-format
-msgid "Bad status from bsr. ERR=%s\n"
+msgid "Error reading data header from FD. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:531
+#: src/stored/append.c:159
#, c-format
-msgid "Backspaced %d record%s.\n"
+msgid "Malformed data header from FD: %s\n"
msgstr ""
-#: src/stored/btape.c:541 src/stored/status.c:216
-#, c-format
-msgid "Configured device capabilities:\n"
+#: src/stored/append.c:169
+msgid "File index from FD not positive or sequential\n"
msgstr ""
-#: src/stored/btape.c:559
+#: src/stored/append.c:199 src/stored/append.c:269 src/stored/spool.c:247
#, c-format
-msgid "Device status:\n"
+msgid "Fatal append error on device %s: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:573 src/stored/status.c:248
+#: src/stored/append.c:224
#, c-format
-msgid "Device parameters:\n"
+msgid "Error updating file attributes. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:643
-msgid "Skipping read backwards test because BSR turned off.\n"
+#: src/stored/append.c:237
+#, c-format
+msgid "Network error on data channel. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:647
-msgid ""
-"\n"
-"=== Write, backup, and re-read test ===\n"
-"\n"
-"I'm going to write three records and an EOF\n"
-"then backup over the EOF and re-read the last record.\n"
-"Bacula does this after writing the last block on the\n"
-"tape to verify that the block was written correctly.\n"
-"\n"
-"This is not an *essential* feature ...\n"
-"\n"
+#: src/stored/append.c:258 src/stored/btape.c:1969
+#, c-format
+msgid "Error writting end session label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:660 src/stored/btape.c:671 src/stored/btape.c:682
-#: src/stored/btape.c:780 src/stored/btape.c:796 src/stored/btape.c:892
-#: src/stored/btape.c:908 src/stored/btape.c:1508 src/stored/btape.c:2351
-msgid "Error writing record to block.\n"
+#: src/stored/append.c:271
+msgid "Set ok=FALSE after write_block_to_device.\n"
msgstr ""
-#: src/stored/btape.c:664 src/stored/btape.c:675 src/stored/btape.c:686
-#: src/stored/btape.c:784 src/stored/btape.c:800 src/stored/btape.c:896
-#: src/stored/btape.c:912 src/stored/btape.c:1512 src/stored/btape.c:2355
-msgid "Error writing block to device.\n"
+#: src/stored/askdir.c:161
+msgid "Network error on bnet_recv in req_vol_info.\n"
msgstr ""
-#: src/stored/btape.c:667
+#: src/stored/askdir.c:178
#, c-format
-msgid "Wrote first record of %d bytes.\n"
+msgid "Error getting Volume info: %s\n"
msgstr ""
-#: src/stored/btape.c:678
-#, c-format
-msgid "Wrote second record of %d bytes.\n"
+#: src/stored/askdir.c:289 src/stored/askdir.c:290
+msgid "Attempt to update_volume_info in read mode!!!\n"
msgstr ""
-#: src/stored/btape.c:689
+#: src/stored/askdir.c:318
#, c-format
-msgid "Wrote third record of %d bytes.\n"
+msgid "Didn't get vol info vol=%s: ERR=%s"
msgstr ""
-#: src/stored/btape.c:696 src/stored/btape.c:701
+#: src/stored/askdir.c:349
#, c-format
-msgid "Backspace file failed! ERR=%s\n"
+msgid "Error creating JobMedia record: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:707
+#: src/stored/askdir.c:356
#, c-format
-msgid "Backspace record failed! ERR=%s\n"
+msgid "Error creating JobMedia record: %s\n"
msgstr ""
-#: src/stored/btape.c:713 src/stored/btape.c:719
+#: src/stored/askdir.c:424
#, c-format
-msgid "Read block failed! ERR=%s\n"
+msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n"
msgstr ""
-#: src/stored/btape.c:724
-msgid "Bad data in record. Test failed!\n"
+#: src/stored/askdir.c:452
+#, c-format
+msgid ""
+"Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
+"Use \"mount\" command to release Job.\n"
msgstr ""
-#: src/stored/btape.c:728
+#: src/stored/askdir.c:462
+#, c-format
msgid ""
-"\n"
-"Block re-read correct. Test succeeded!\n"
+"Job %s waiting. Cannot find any appendable volumes.\n"
+"Please use the \"label\" command to create a new Volume for:\n"
+" Storage: %s\n"
+" Media type: %s\n"
+" Pool: %s\n"
msgstr ""
-#: src/stored/btape.c:729
-msgid ""
-"=== End Write, backup, and re-read test ===\n"
-"\n"
+#: src/stored/askdir.c:486 src/stored/askdir.c:588
+#, c-format
+msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n"
msgstr ""
-#: src/stored/btape.c:736
-msgid ""
-"This is not terribly serious since Bacula only uses\n"
-"this function to verify the last block written to the\n"
-"tape. Bacula will skip the last block verification\n"
-"if you add:\n"
-"\n"
-"Backward Space Record = No\n"
-"\n"
-"to your Storage daemon's Device resource definition.\n"
+#: src/stored/askdir.c:496 src/stored/askdir.c:503
+#, c-format
+msgid "pthread error in mount_next_volume stat=%d ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:760
+#: src/stored/askdir.c:514
+#, c-format
msgid ""
-"\n"
-"=== Write, rewind, and re-read test ===\n"
-"\n"
-"I'm going to write 1000 records and an EOF\n"
-"then write 1000 records and an EOF, then rewind,\n"
-"and re-read the data to verify that it is correct.\n"
-"\n"
-"This is an *essential* feature ...\n"
-"\n"
+"Someone woke me up, but I cannot find any appendable\n"
+"volumes for Job=%s.\n"
msgstr ""
-#: src/stored/btape.c:788 src/stored/btape.c:804 src/stored/btape.c:900
-#: src/stored/btape.c:916
-#, c-format
-msgid "Wrote 1000 blocks of %d bytes.\n"
+#: src/stored/askdir.c:558
+msgid "Cannot request another volume: no volume name given.\n"
msgstr ""
-#: src/stored/btape.c:820 src/stored/btape.c:974
-msgid "Got EOF on tape.\n"
+#: src/stored/askdir.c:564
+#, c-format
+msgid "Job %s canceled while waiting for mount on Storage Device %s.\n"
msgstr ""
-#: src/stored/btape.c:825
+#: src/stored/askdir.c:570
#, c-format
-msgid "Read block %d failed! ERR=%s\n"
+msgid "Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
msgstr ""
-#: src/stored/btape.c:831
+#: src/stored/askdir.c:598
#, c-format
-msgid "Read record failed. Block %d! ERR=%s\n"
+msgid "pthread error in mount_volume stat=%d ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:837 src/stored/btape.c:1004
+#: src/stored/askdir.c:605
#, c-format
-msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n"
+msgid "pthread error in mount_next_volume stat=%d: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:844
-msgid "1000 blocks re-read correctly.\n"
+#: src/stored/authenticate.c:53
+#, c-format
+msgid "I only authenticate Directors, not %d\n"
msgstr ""
-#: src/stored/btape.c:847 src/stored/btape.c:1011
+#: src/stored/authenticate.c:120
msgid ""
-"=== Test Succeeded. End Write, rewind, and re-read test ===\n"
-"\n"
+"Incorrect password given by Director.\n"
+"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
+"help.\n"
msgstr ""
-#: src/stored/btape.c:872
-msgid ""
-"\n"
-"=== Write, rewind, and position test ===\n"
-"\n"
-"I'm going to write 1000 records and an EOF\n"
-"then write 1000 records and an EOF, then rewind,\n"
-"and position to a few blocks and verify that it is correct.\n"
-"\n"
-"This is an *essential* feature ...\n"
-"\n"
+#: src/stored/authenticate.c:178
+#, c-format
+msgid "Unable to authenticate Director at %s.\n"
msgstr ""
-#: src/stored/btape.c:980
+#: src/stored/authenticate.c:223 src/stored/authenticate.c:259
#, c-format
msgid ""
-"Read block %d failed! file=%d blk=%d. ERR=%s\n"
-"\n"
+"Incorrect authorization key from File daemon at %s rejected.\n"
+"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
+"help.\n"
msgstr ""
-#: src/stored/btape.c:982
-msgid ""
-"This may be because the tape drive block size is not\n"
+#: src/stored/autochanger.c:87
+#, c-format
+msgid "3303 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:96
+#, c-format
+msgid "3992 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:109
+#, c-format
+msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:116
+#, c-format
+msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:122
+#, c-format
+msgid "3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:167
+#, c-format
+msgid "3301 Issuing autochanger \"loaded drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:176
+#, c-format
+msgid "3302 Autochanger \"loaded drive %d\", result is Slot %d.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:180
+#, c-format
+msgid "3302 Autochanger \"loaded drive %d\", result: nothing loaded.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:187
+#, c-format
+msgid "3991 Bad autochanger \"loaded drive %d\" command: ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:235
+#, c-format
+msgid "3993 Device %s not an autochanger device.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:253
+#, c-format
+msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:265
+#, c-format
+msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:277
+#, c-format
+msgid "3306 Issuing autochanger \"%s\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:282
+msgid "3996 Open bpipe failed.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:306
+#, c-format
+msgid "Autochanger error: ERR=%s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:58
+#, c-format
+msgid ""
+"Copyright (C) 2002-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bcopy [-d debug_level] <input-archive> <output-archive>\n"
+" -b bootstrap specify a bootstrap file\n"
+" -c <file> specify configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -i specify input Volume names (separated by |)\n"
+" -o specify output Volume names (separated by |)\n"
+" -p proceed inspite of errors\n"
+" -v verbose\n"
+" -w <dir> specify working directory (default /tmp)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bcopy.c:137 src/stored/bextract.c:177 src/stored/bscan.c:221
+msgid "Wrong number of arguments: \n"
+msgstr ""
+
+#: src/stored/bcopy.c:172 src/stored/btape.c:334 src/stored/device.c:273
+#, c-format
+msgid "dev open failed: %s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:185
+msgid "Write of last block failed.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:188
+#, c-format
+msgid "%u Jobs copied. %u records copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:205 src/stored/bscan.c:389
+#, c-format
+msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n"
+msgstr ""
+
+#: src/stored/bcopy.c:220
+msgid "Volume is prelabeled. This volume cannot be copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:223
+msgid "Volume label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:235 src/stored/bcopy.c:242 src/stored/bcopy.c:265
+#: src/stored/btape.c:2335
+#, c-format
+msgid "Cannot fixup device error. %s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:247
+msgid "EOM label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:250
+msgid "EOT label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:290 src/stored/bextract.c:473 src/stored/bls.c:444
+#: src/stored/bscan.c:1227 src/stored/btape.c:2683
+#, c-format
+msgid "Mount Volume \"%s\" on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/bextract.c:70
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bextract <options> <bacula-archive-device-name> <directory-to-store-"
+"files>\n"
+" -b <file> specify a bootstrap file\n"
+" -c <file> specify a configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -e <file> exclude list\n"
+" -i <file> include list\n"
+" -p proceed inspite of I/O errors\n"
+" -v verbose\n"
+" -V <volumes> specify Volume names (separated by |)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bextract.c:127 src/stored/bls.c:129
+#, c-format
+msgid "Could not open exclude file: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:142 src/stored/bls.c:143
+#, c-format
+msgid "Could not open include file: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:198
+#, c-format
+msgid "%d Program Name and/or Program Data Stream records ignored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:202
+#, c-format
+msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:226
+#, c-format
+msgid "Cannot stat %s. It must exist. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:230
+#, c-format
+msgid "%s must be a directory.\n"
+msgstr ""
+
+#: src/stored/bextract.c:251
+#, c-format
+msgid "%u files restored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:278 src/stored/bextract.c:444
+msgid "Logic error output file should be open but is not.\n"
+msgstr ""
+
+#: src/stored/bextract.c:285 src/stored/bls.c:365 src/stored/bscan.c:645
+msgid "Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bextract.c:347
+#, c-format
+msgid "Seek error on %s: %s\n"
+msgstr ""
+
+#: src/stored/bextract.c:400
+#, c-format
+msgid "Uncompression error. ERR=%d\n"
+msgstr ""
+
+#: src/stored/bextract.c:408
+msgid "===Write error===\n"
+msgstr ""
+
+#: src/stored/bextract.c:435
+msgid "Got Program Name or Data Stream. Ignored.\n"
+msgstr ""
+
+#: src/stored/block.c:78
+#, c-format
+msgid ""
+"Dump block %s %x: size=%d BlkNum=%d\n"
+" Hdrcksum=%x cksum=%x\n"
+msgstr ""
+
+#: src/stored/block.c:91
+#, c-format
+msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n"
+msgstr ""
+
+#: src/stored/block.c:147
+#, c-format
+msgid "%d block read errors not printed.\n"
+msgstr ""
+
+#: src/stored/block.c:235 src/stored/block.c:251 src/stored/block.c:261
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer "
+"discarded.\n"
+msgstr ""
+
+#: src/stored/block.c:275
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Block length %u is insane (too large), probably "
+"due to a bad archive.\n"
+msgstr ""
+
+#: src/stored/block.c:301
+#, c-format
+msgid ""
+"Volume data error at %u:%u!\n"
+"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n"
+msgstr ""
+
+#: src/stored/block.c:409
+msgid "Cannot write block. Device at EOM.\n"
+msgstr ""
+
+#: src/stored/block.c:414
+msgid "Attempt to write on read-only Volume.\n"
+msgstr ""
+
+#: src/stored/block.c:466
+#, c-format
+msgid "User defined maximum volume capacity %s exceeded on device %s.\n"
+msgstr ""
+
+#: src/stored/block.c:481
+#, c-format
+msgid "Unable to write EOF. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:507 src/stored/block.c:518
+msgid "Write block header zeroed.\n"
+msgstr ""
+
+#: src/stored/block.c:536
+#, c-format
+msgid "Write error at %u:%u on device %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/block.c:543
+#, c-format
+msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n"
+msgstr ""
+
+#: src/stored/block.c:618 src/stored/block.c:624
+#, c-format
+msgid "Backspace file at EOT failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:631
+#, c-format
+msgid "Backspace record at EOT failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:648
+#, c-format
+msgid "Re-read last block at EOT failed. ERR=%s"
+msgstr ""
+
+#: src/stored/block.c:652
+msgid "Re-read of last block succeeded.\n"
+msgstr ""
+
+#: src/stored/block.c:655
+#, c-format
+msgid "Re-read of last block failed. Last block=%u Current block=%u.\n"
+msgstr ""
+
+#: src/stored/block.c:684
+#, c-format
+msgid ""
+"Error writing final EOF to tape. This tape may not be readable.\n"
+"%s"
+msgstr ""
+
+#: src/stored/block.c:790 src/stored/dvd.c:622
+#, c-format
+msgid ""
+"Error while writing, current part number is less than the total number of "
+"parts (%d/%d, device=%s)\n"
+msgstr ""
+
+#: src/stored/block.c:798 src/stored/block.c:908
+#, c-format
+msgid "Unable to open device next part %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:816
+#, c-format
+msgid ""
+"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
+"free_space_errno=%d, errmsg=%s).\n"
+msgstr ""
+
+#: src/stored/block.c:829
+#, c-format
+msgid ""
+"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
+"free_space_errno=%d).\n"
+msgstr ""
+
+#: src/stored/block.c:883
+#, c-format
+msgid "Block buffer size looping problem on device %s\n"
+msgstr ""
+
+#: src/stored/block.c:934
+#, c-format
+msgid "Read error at file:blk %u:%u on device %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/block.c:947
+#, c-format
+msgid "Read zero bytes at %u:%u on device %s.\n"
+msgstr ""
+
+#: src/stored/block.c:960
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Very short block of %d bytes on device %s "
+"discarded.\n"
+msgstr ""
+
+#: src/stored/block.c:985
+#, c-format
+msgid "Block length %u is greater than buffer %u. Attempting recovery.\n"
+msgstr ""
+
+#: src/stored/block.c:1004
+#, c-format
+msgid "Setting block buffer size to %u bytes.\n"
+msgstr ""
+
+#: src/stored/block.c:1019
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n"
+msgstr ""
+
+#: src/stored/bls.c:69
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bls [options] <device-name>\n"
+" -b <file> specify a bootstrap file\n"
+" -c <file> specify a config file\n"
+" -d <level> specify debug level\n"
+" -e <file> exclude list\n"
+" -i <file> include list\n"
+" -j list jobs\n"
+" -k list blocks\n"
+" (no j or k option) list saved files\n"
+" -L dump label\n"
+" -p proceed inspite of errors\n"
+" -v be verbose\n"
+" -V specify Volume names (separated by |)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bls.c:190
+msgid "No archive name specified\n"
+msgstr ""
+
+#: src/stored/bls.c:226
+#, c-format
+msgid ""
+"\n"
+"Warning, this Volume is a continuation of Volume %s\n"
+msgstr ""
+
+#: src/stored/bls.c:268
+#, c-format
+msgid "Got EOM at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/bls.c:279
+#, c-format
+msgid "Mounted Volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/bls.c:281
+#, c-format
+msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/bls.c:305
+#, c-format
+msgid ""
+"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%"
+"s rlen=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:314
+#, c-format
+msgid "Block: %d size=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:381
+#, c-format
+msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:398 src/stored/read_record.c:321
+msgid "Fresh Volume Label"
+msgstr ""
+
+#: src/stored/bls.c:401 src/stored/read_record.c:324
+msgid "Volume Label"
+msgstr ""
+
+#: src/stored/bls.c:405 src/stored/label.c:959
+msgid "Begin Job Session"
+msgstr ""
+
+#: src/stored/bls.c:409 src/stored/label.c:962
+msgid "End Job Session"
+msgstr ""
+
+#: src/stored/bls.c:412
+msgid "End of Medium"
+msgstr ""
+
+#: src/stored/bls.c:415 src/stored/label.c:971
+msgid "Unknown"
+msgstr ""
+
+#: src/stored/bls.c:421 src/stored/read_record.c:342
+#, c-format
+msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:109
+#, c-format
+msgid ""
+"Copyright (C) 2001-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bscan [ options ] <bacula-archive>\n"
+" -b bootstrap specify a bootstrap file\n"
+" -c <file> specify configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -m update media info in database\n"
+" -n <name> specify the database name (default bacula)\n"
+" -u <user> specify database user name (default bacula)\n"
+" -P <password specify database password (default none)\n"
+" -h <host> specify database host (default NULL)\n"
+" -p proceed inspite of I/O errors\n"
+" -r list records\n"
+" -s synchronize or store in database\n"
+" -S show scan progress periodically\n"
+" -v verbose\n"
+" -V <Volumes> specify Volume names (separated by |)\n"
+" -w <dir> specify working directory (default from conf file)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bscan.c:234 src/stored/stored.c:266
+#, c-format
+msgid "No Storage resource defined in %s. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:242 src/stored/stored.c:297
+#, c-format
+msgid "No Working Directory defined in %s. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:250
+#, c-format
+msgid "Working Directory: %s not found. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:254
+#, c-format
+msgid "Working Directory: %s is not a directory. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:268 src/stored/bscan.c:340
+#, c-format
+msgid "First Volume Size = %sn"
+msgstr ""
+
+#: src/stored/bscan.c:274
+msgid "Could not init Bacula database\n"
+msgstr ""
+
+#: src/stored/bscan.c:281
+#, c-format
+msgid "Using Database: %s, User: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:315
+#, c-format
+msgid "Create JobMedia for Job %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:325
+#, c-format
+msgid "Could not create JobMedia record for Volume=%s Job=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:381
+#, c-format
+msgid "done: %d%%\n"
+msgstr ""
+
+#: src/stored/bscan.c:405
+msgid "Volume is prelabeled. This tape cannot be scanned.\n"
+msgstr ""
+
+#: src/stored/bscan.c:417
+#, c-format
+msgid "Pool record for %s found in DB.\n"
+msgstr ""
+
+#: src/stored/bscan.c:421
+#, c-format
+msgid "VOL_LABEL: Pool record not found for Pool: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:427
+#, c-format
+msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:431
+#, c-format
+msgid "Pool type \"%s\" is OK.\n"
+msgstr ""
+
+#: src/stored/bscan.c:441
+#, c-format
+msgid "Media record for %s found in DB.\n"
+msgstr ""
+
+#: src/stored/bscan.c:448
+#, c-format
+msgid "VOL_LABEL: Media record not found for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:455
+#, c-format
+msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:459
+#, c-format
+msgid "Media type \"%s\" is OK.\n"
+msgstr ""
+
+#: src/stored/bscan.c:468
+#, c-format
+msgid "VOL_LABEL: OK for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:475
+#, c-format
+msgid "%d \"errors\" ignored before first Start of Session record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:486
+#, c-format
+msgid "SOS_LABEL: Found Job record for JobId: %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:491
+#, c-format
+msgid "SOS_LABEL: Job record not found for JobId: %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:531
+#, c-format
+msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:537
+#, c-format
+msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:543
+#, c-format
+msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:561 src/stored/bscan.c:1007
+#, c-format
+msgid "Could not find SessId=%d SessTime=%d for EOS record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:604
+#, c-format
+msgid "Could not update job record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:615
+#, c-format
+msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:627
+#, c-format
+msgid "Could not find Job for SessId=%d SessTime=%d record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:663
+#, c-format
+msgid "%s file records. At file:blk=%s:%s bytes=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:706
+#, c-format
+msgid "Got MD5 record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:715
+#, c-format
+msgid "Got SHA1 record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:723
+#, c-format
+msgid "Got Prog Names Stream: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:729
+msgid "Got Prog Data Stream record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:733
+#, c-format
+msgid "Unknown stream type!!! stream=%d data=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:793
+#, c-format
+msgid "Could not create File Attributes record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:799
+#, c-format
+msgid "Created File record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:836
+#, c-format
+msgid "Could not create media record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:840 src/stored/bscan.c:861
+#, c-format
+msgid "Could not update media record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:844
+#, c-format
+msgid "Created Media record for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:865
+#, c-format
+msgid "Updated Media record at end of Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:882
+#, c-format
+msgid "Could not create pool record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:886
+#, c-format
+msgid "Created Pool record for Pool: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:906
+#, c-format
+msgid "Created Client record for Client: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:923
+#, c-format
+msgid "Fileset \"%s\" already exists.\n"
+msgstr ""
+
+#: src/stored/bscan.c:927
+#, c-format
+msgid "Could not create FileSet record \"%s\". ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:932
+#, c-format
+msgid "Created FileSet record \"%s\"\n"
+msgstr ""
+
+#: src/stored/bscan.c:979
+#, c-format
+msgid "Could not create JobId record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:985
+#, c-format
+msgid "Could not update job start record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:988
+#, c-format
+msgid "Created new JobId=%u record for original JobId=%u\n"
+msgstr ""
+
+#: src/stored/bscan.c:1038
+#, c-format
+msgid "Could not update JobId=%u record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1043
+#, c-format
+msgid "Updated Job termination record for JobId=%u TermStat=%c\n"
+msgstr ""
+
+#: src/stored/bscan.c:1065
+#, c-format
+msgid "Job Termination code: %d"
+msgstr ""
+
+#: src/stored/bscan.c:1070
+#, c-format
+msgid ""
+"%s\n"
+"JobId: %d\n"
+"Job: %s\n"
+"FileSet: %s\n"
+"Backup Level: %s\n"
+"Client: %s\n"
+"Start time: %s\n"
+"End time: %s\n"
+"Files Written: %s\n"
+"Bytes Written: %s\n"
+"Volume Session Id: %d\n"
+"Volume Session Time: %d\n"
+"Last Volume Bytes: %s\n"
+"Termination: %s\n"
+"\n"
+msgstr ""
+
+#: src/stored/bscan.c:1134
+#, c-format
+msgid "Could not create JobMedia record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1138
+#, c-format
+msgid "Created JobMedia record JobId %d, MediaId %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:1154
+#, c-format
+msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:1168
+#, c-format
+msgid "Could not add MD5/SHA1 to File record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1173
+msgid "Updated MD5/SHA1 record\n"
+msgstr ""
+
+#: src/stored/btape.c:157 src/stored/stored.c:107
+#, c-format
+msgid "Tape block size (%d) not multiple of system size (%d)\n"
+msgstr ""
+
+#: src/stored/btape.c:161 src/stored/stored.c:111
+#, c-format
+msgid "Tape block size (%d) is not a power of 2\n"
+msgstr ""
+
+#: src/stored/btape.c:164
+#, c-format
+msgid ""
+"\n"
+"\n"
+"!!!! Warning large disk addressing disabled. off_t=%d should be 8 or "
+"more !!!!!\n"
+"\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:171
+#, c-format
+msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n"
+msgstr ""
+
+#: src/stored/btape.c:180
+msgid "64 bit printf/scanf problem. i=%d x64=%"
+msgstr ""
+
+#: src/stored/btape.c:180
+msgid " y64=%"
+msgstr ""
+
+#: src/stored/btape.c:184
+#, c-format
+msgid "Tape block granularity is %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:251
+msgid "No archive name specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:255
+msgid "Improper number of arguments specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:340
+#, c-format
+msgid "open device %s: OK\n"
+msgstr ""
+
+#: src/stored/btape.c:361
+msgid "Enter Volume Name: "
+msgstr ""
+
+#: src/stored/btape.c:368
+#, c-format
+msgid "Device open failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:373
+#, c-format
+msgid "Wrote Volume label for volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/btape.c:387
+msgid "Volume has no label.\n"
+msgstr ""
+
+#: src/stored/btape.c:390
+msgid "Volume label read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:393
+#, c-format
+msgid "I/O error on device: ERR=%s"
+msgstr ""
+
+#: src/stored/btape.c:396
+msgid "Volume name error\n"
+msgstr ""
+
+#: src/stored/btape.c:399
+#, c-format
+msgid "Error creating label. ERR=%s"
+msgstr ""
+
+#: src/stored/btape.c:402
+msgid "Volume version error.\n"
+msgstr ""
+
+#: src/stored/btape.c:405
+msgid "Bad Volume label type.\n"
+msgstr ""
+
+#: src/stored/btape.c:408
+msgid "Unknown error.\n"
+msgstr ""
+
+#: src/stored/btape.c:426
+#, c-format
+msgid "Bad status from load. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:428
+#, c-format
+msgid "Loaded %s\n"
+msgstr ""
+
+#: src/stored/btape.c:437 src/stored/btape.c:777 src/stored/btape.c:819
+#: src/stored/btape.c:889 src/stored/btape.c:931 src/stored/btape.c:1200
+#, c-format
+msgid "Bad status from rewind. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:440 src/stored/btape.c:1208
+#, c-format
+msgid "Rewound %s\n"
+msgstr ""
+
+#: src/stored/btape.c:467 src/stored/btape.c:1212
+#, c-format
+msgid "Bad status from weof %d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:471
+#, c-format
+msgid "Wrote 1 EOF to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:474
+#, c-format
+msgid "Wrote %d EOFs to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:492
+msgid "Moved to end of medium.\n"
+msgstr ""
+
+#: src/stored/btape.c:519
+#, c-format
+msgid "Bad status from bsf. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:521
+#, c-format
+msgid "Backspaced %d file%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:538
+#, c-format
+msgid "Bad status from bsr. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:540
+#, c-format
+msgid "Backspaced %d record%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:550 src/stored/status.c:220
+#, c-format
+msgid "Configured device capabilities:\n"
+msgstr ""
+
+#: src/stored/btape.c:568
+#, c-format
+msgid "Device status:\n"
+msgstr ""
+
+#: src/stored/btape.c:582 src/stored/status.c:252
+#, c-format
+msgid "Device parameters:\n"
+msgstr ""
+
+#: src/stored/btape.c:587
+#, c-format
+msgid "Status:\n"
+msgstr ""
+
+#: src/stored/btape.c:602
+msgid ""
+"Test writting larger and larger records.\n"
+"This is a torture test for records.\n"
+"I am going to write\n"
+"larger and larger records. It will stop when the record size\n"
+"plus the header exceeds the block size (by default about 64K)\n"
+msgstr ""
+
+#: src/stored/btape.c:610 src/stored/btape.c:1814
+msgid "Command aborted.\n"
+msgstr ""
+
+#: src/stored/btape.c:626
+#, c-format
+msgid "Block %d i=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:652
+msgid "Skipping read backwards test because BSR turned off.\n"
+msgstr ""
+
+#: src/stored/btape.c:656
+msgid ""
+"\n"
+"=== Write, backup, and re-read test ===\n"
+"\n"
+"I'm going to write three records and an EOF\n"
+"then backup over the EOF and re-read the last record.\n"
+"Bacula does this after writing the last block on the\n"
+"tape to verify that the block was written correctly.\n"
+"\n"
+"This is not an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:669 src/stored/btape.c:680 src/stored/btape.c:691
+#: src/stored/btape.c:789 src/stored/btape.c:805 src/stored/btape.c:901
+#: src/stored/btape.c:917 src/stored/btape.c:1526 src/stored/btape.c:2400
+msgid "Error writing record to block.\n"
+msgstr ""
+
+#: src/stored/btape.c:673 src/stored/btape.c:684 src/stored/btape.c:695
+#: src/stored/btape.c:793 src/stored/btape.c:809 src/stored/btape.c:905
+#: src/stored/btape.c:921 src/stored/btape.c:1530 src/stored/btape.c:2404
+msgid "Error writing block to device.\n"
+msgstr ""
+
+#: src/stored/btape.c:676
+#, c-format
+msgid "Wrote first record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:687
+#, c-format
+msgid "Wrote second record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:698
+#, c-format
+msgid "Wrote third record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:705 src/stored/btape.c:710
+#, c-format
+msgid "Backspace file failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:714
+msgid "Backspaced over EOF OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:716
+#, c-format
+msgid "Backspace record failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:719
+msgid "Backspace record OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:722 src/stored/btape.c:728
+#, c-format
+msgid "Read block failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:733
+msgid "Bad data in record. Test failed!\n"
+msgstr ""
+
+#: src/stored/btape.c:737
+msgid ""
+"\n"
+"Block re-read correct. Test succeeded!\n"
+msgstr ""
+
+#: src/stored/btape.c:738
+msgid ""
+"=== End Write, backup, and re-read test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:745
+msgid ""
+"This is not terribly serious since Bacula only uses\n"
+"this function to verify the last block written to the\n"
+"tape. Bacula will skip the last block verification\n"
+"if you add:\n"
+"\n"
+"Backward Space Record = No\n"
+"\n"
+"to your Storage daemon's Device resource definition.\n"
+msgstr ""
+
+#: src/stored/btape.c:769
+msgid ""
+"\n"
+"=== Write, rewind, and re-read test ===\n"
+"\n"
+"I'm going to write 1000 records and an EOF\n"
+"then write 1000 records and an EOF, then rewind,\n"
+"and re-read the data to verify that it is correct.\n"
+"\n"
+"This is an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:797 src/stored/btape.c:813 src/stored/btape.c:909
+#: src/stored/btape.c:925
+#, c-format
+msgid "Wrote 1000 blocks of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:822 src/stored/btape.c:934
+msgid "Rewind OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:829 src/stored/btape.c:983
+msgid "Got EOF on tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:834
+#, c-format
+msgid "Read block %d failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:840
+#, c-format
+msgid "Read record failed. Block %d! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:846 src/stored/btape.c:1013
+#, c-format
+msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n"
+msgstr ""
+
+#: src/stored/btape.c:853
+msgid "1000 blocks re-read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:856 src/stored/btape.c:1020
+msgid ""
+"=== Test Succeeded. End Write, rewind, and re-read test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:881
+msgid ""
+"\n"
+"=== Write, rewind, and position test ===\n"
+"\n"
+"I'm going to write 1000 records and an EOF\n"
+"then write 1000 records and an EOF, then rewind,\n"
+"and position to a few blocks and verify that it is correct.\n"
+"\n"
+"This is an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:974
+#, c-format
+msgid "Reposition to file:block %d:%d\n"
+msgstr ""
+
+#: src/stored/btape.c:976
+msgid "Reposition error.\n"
+msgstr ""
+
+#: src/stored/btape.c:989
+#, c-format
+msgid ""
+"Read block %d failed! file=%d blk=%d. ERR=%s\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:991
+msgid ""
+"This may be because the tape drive block size is not\n"
" set to variable blocking as normally used by Bacula.\n"
" Please see the Tape Testing chapter in the manual and \n"
" look for using mt with defblksize and setoptions\n"
" in your Device resource.\n"
msgstr ""
-#: src/stored/btape.c:998
+#: src/stored/btape.c:1007
+#, c-format
+msgid "Read record failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1018
+#, c-format
+msgid "Block %d re-read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:1039
+msgid ""
+"\n"
+"\n"
+"=== Append files test ===\n"
+"\n"
+"This test is essential to Bacula.\n"
+"\n"
+"I'm going to write one record in file 0,\n"
+" two records in file 1,\n"
+" and three records in file 2\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1063
+msgid "Now moving to end of medium.\n"
+msgstr ""
+
+#: src/stored/btape.c:1065 src/stored/btape.c:1295
+#, c-format
+msgid "We should be in file 3. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1066 src/stored/btape.c:1084 src/stored/btape.c:1284
+#: src/stored/btape.c:1296 src/stored/btape.c:1309 src/stored/btape.c:1326
+msgid "This is correct!"
+msgstr ""
+
+#: src/stored/btape.c:1066 src/stored/btape.c:1084 src/stored/btape.c:1284
+#: src/stored/btape.c:1296 src/stored/btape.c:1309 src/stored/btape.c:1326
+msgid "This is NOT correct!!!!"
+msgstr ""
+
+#: src/stored/btape.c:1072
+msgid ""
+"\n"
+"Now the important part, I am going to attempt to append to the tape.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1079
+msgid ""
+"Done appending, there should be no I/O errors\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1080
+msgid "Doing Bacula scan of blocks:\n"
+msgstr ""
+
+#: src/stored/btape.c:1082
+msgid "End scanning the tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:1083 src/stored/btape.c:1308
+#, c-format
+msgid "We should be in file 4. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1108
+msgid ""
+"\n"
+"Autochanger enabled, but no name or no command device specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:1112
+msgid ""
+"\n"
+"Ah, I see you have an autochanger configured.\n"
+"To test the autochanger you must have a blank tape\n"
+" that I can write on in Slot 1.\n"
+msgstr ""
+
+#: src/stored/btape.c:1115
+msgid ""
+"\n"
+"Do you wish to continue with the Autochanger test? (y/n): "
+msgstr ""
+
+#: src/stored/btape.c:1122
+msgid ""
+"\n"
+"\n"
+"=== Autochanger test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1131
+msgid "3301 Issuing autochanger \"loaded\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1140
+#, c-format
+msgid "3991 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1141
+#, c-format
+msgid "3991 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1145
+#, c-format
+msgid "Slot %d loaded. I am going to unload it.\n"
+msgstr ""
+
+#: src/stored/btape.c:1147
+msgid "Nothing loaded in the drive. OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:1155
+#, c-format
+msgid "3302 Issuing autochanger \"unload %d %d\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1160
+#, c-format
+msgid "unload status=%s %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1160
+msgid "Bad"
+msgstr ""
+
+#: src/stored/btape.c:1163
+#, c-format
+msgid "3992 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1164
+#, c-format
+msgid "3992 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1174
+#, c-format
+msgid "3303 Issuing autochanger \"load %d %d\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1182
+#, c-format
+msgid "3303 Autochanger \"load %d %d\" status is OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:1186
+#, c-format
+msgid "3993 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1187
+#, c-format
+msgid "3993 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1202
+msgid ""
+"\n"
+"The test failed, probably because you need to put\n"
+"a longer sleep time in the mtx-script in the load) case.\n"
+"Adding a 30 second sleep and trying again ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1215
+#, c-format
+msgid "Wrote EOF to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1219
+#, c-format
+msgid ""
+"\n"
+"The test worked this time. Please add:\n"
+"\n"
+" sleep %d\n"
+"\n"
+"to your mtx-changer script in the load) case.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1224
+msgid ""
+"\n"
+"The test autochanger worked!!\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1235
+msgid "You must correct this error or the Autochanger will not work.\n"
+msgstr ""
+
+#: src/stored/btape.c:1253
+msgid ""
+"\n"
+"\n"
+"=== Forward space files test ===\n"
+"\n"
+"This test is essential to Bacula.\n"
+"\n"
+"I'm going to write five files then test forward spacing\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1278
+msgid "Now forward spacing 1 file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1280 src/stored/btape.c:1292 src/stored/btape.c:1305
+#: src/stored/btape.c:1323 src/stored/btape.c:1492
+#, c-format
+msgid "Bad status from fsr. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1283
+#, c-format
+msgid "We should be in file 1. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1290
+msgid "Now forward spacing 2 files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1303
+msgid "Now forward spacing 4 files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1315
+msgid ""
+"The test worked this time. Please add:\n"
+"\n"
+" Fast Forward Space File = no\n"
+"\n"
+"to your Device resource for this drive.\n"
+msgstr ""
+
+#: src/stored/btape.c:1321
+msgid "Now forward spacing 1 more file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1325
+#, c-format
+msgid "We should be in file 5. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1330
+msgid ""
+"\n"
+"=== End Forward space files test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1334
+msgid ""
+"\n"
+"The forward space file test failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1336
+msgid ""
+"You have Fast Forward Space File enabled.\n"
+"I am turning it off then retrying the test.\n"
+msgstr ""
+
+#: src/stored/btape.c:1342
+msgid ""
+"You must correct this error or Bacula will not work.\n"
+"Some systems, e.g. OpenBSD, require you to set\n"
+" Use MTIOCGET= no\n"
+"in your device resource. Use with caution.\n"
+msgstr ""
+
+#: src/stored/btape.c:1374
+msgid ""
+"\n"
+"Append test failed. Attempting again.\n"
+"Setting \"Hardware End of Medium = no\n"
+" and \"Fast Forward Space File = no\n"
+"and retrying append test.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1382
+msgid ""
+"\n"
+"\n"
+"It looks like the test worked this time, please add:\n"
+"\n"
+" Hardware End of Medium = No\n"
+"\n"
+" Fast Forward Space File = No\n"
+"to your Device resource in the Storage conf file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1389
+msgid ""
+"\n"
+"\n"
+"That appears *NOT* to have corrected the problem.\n"
+msgstr ""
+
+#: src/stored/btape.c:1394
+msgid ""
+"\n"
+"\n"
+"It looks like the append failed. Attempting again.\n"
+"Setting \"BSF at EOM = yes\" and retrying append test.\n"
+msgstr ""
+
+#: src/stored/btape.c:1399
+msgid ""
+"\n"
+"\n"
+"It looks like the test worked this time, please add:\n"
+"\n"
+" Hardware End of Medium = No\n"
+" Fast Forward Space File = No\n"
+" BSF at EOM = yes\n"
+"\n"
+"to your Device resource in the Storage conf file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1410
+msgid ""
+"\n"
+"Append test failed.\n"
+"\n"
+"\n"
+"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
+"Unable to correct the problem. You MUST fix this\n"
+"problem before Bacula can use your tape drive correctly\n"
+"\n"
+"Perhaps running Bacula in fixed block mode will work.\n"
+"Do so by setting:\n"
+"\n"
+"Minimum Block Size = nnn\n"
+"Maximum Block Size = nnn\n"
+"\n"
+"in your Storage daemon's Device definition.\n"
+"nnn must match your tape driver's block size, which\n"
+"can be determined by reading your tape manufacturers\n"
+"information, and the information on your kernel dirver.\n"
+"Fixed block sizes, however, are not normally an ideal solution.\n"
+"\n"
+"Some systems, e.g. OpenBSD, require you to set\n"
+" Use MTIOCGET= no\n"
+"in your device resource. Use with caution.\n"
+msgstr ""
+
+#: src/stored/btape.c:1431
+msgid ""
+"\n"
+"The above Bacula scan should have output identical to what follows.\n"
+"Please double check it ...\n"
+"=== Sample correct output ===\n"
+"1 block of 64448 bytes in file 1\n"
+"End of File mark.\n"
+"2 blocks of 64448 bytes in file 2\n"
+"End of File mark.\n"
+"3 blocks of 64448 bytes in file 3\n"
+"End of File mark.\n"
+"1 block of 64448 bytes in file 4\n"
+"End of File mark.\n"
+"Total files=4, blocks=7, bytes = 451,136\n"
+"=== End sample correct output ===\n"
+"\n"
+"If the above scan output is not identical to the\n"
+"sample output, you MUST correct the problem\n"
+"or Bacula will not be able to write multiple Jobs to \n"
+"the tape.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1470
+#, c-format
+msgid "Bad status from fsf. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1474
+msgid "Forward spaced 1 file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1477
+#, c-format
+msgid "Forward spaced %d files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1496
+msgid "Forward spaced 1 record.\n"
+msgstr ""
+
+#: src/stored/btape.c:1499
+#, c-format
+msgid "Forward spaced %d records.\n"
+msgstr ""
+
+#: src/stored/btape.c:1533
+#, c-format
+msgid "Wrote one record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:1535
+msgid "Wrote block to device.\n"
+msgstr ""
+
+#: src/stored/btape.c:1550
+msgid "Enter length to read: "
+msgstr ""
+
+#: src/stored/btape.c:1555
+msgid "Bad length entered, using default of 1024 bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:1564
+#, c-format
+msgid "Read of %d bytes gives stat=%d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1587 src/stored/btape.c:1636
+#, c-format
+msgid "End of tape\n"
+msgstr ""
+
+#: src/stored/btape.c:1592
+#, c-format
+msgid "Starting scan at file %u\n"
+msgstr ""
+
+#: src/stored/btape.c:1597 src/stored/dev.c:1234
+#, c-format
+msgid "read error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:1599
+#, c-format
+msgid "Bad status from read %d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1602 src/stored/btape.c:1616 src/stored/btape.c:1679
+#: src/stored/btape.c:1691 src/stored/btape.c:1704 src/stored/btape.c:1720
+#, c-format
+msgid "1 block of %d bytes in file %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1605 src/stored/btape.c:1619 src/stored/btape.c:1682
+#: src/stored/btape.c:1694 src/stored/btape.c:1707 src/stored/btape.c:1723
+#, c-format
+msgid "%d blocks of %d bytes in file %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1627 src/stored/btape.c:1698
+#, c-format
+msgid "End of File mark.\n"
+msgstr ""
+
+#: src/stored/btape.c:1648 src/stored/btape.c:1751
+#, c-format
+msgid "Total files=%d, blocks=%d, bytes = %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1711
+#, c-format
+msgid "Short block read.\n"
+msgstr ""
+
+#: src/stored/btape.c:1714
+#, c-format
+msgid "Error reading block. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1738
+#, c-format
+msgid ""
+"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%"
+"s rlen=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:1760
+#, c-format
+msgid "Device status: %u. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1788
+msgid ""
+"\n"
+"This command simulates Bacula writing to a tape.\n"
+"It requires either one or two blank tapes, which it\n"
+"will label and write.\n"
+"\n"
+"If you have an autochanger configured, it will use\n"
+"the tapes that are in slots 1 and 2, otherwise, you will\n"
+"be prompted to insert the tapes when necessary.\n"
+"\n"
+"It will print a status approximately\n"
+"every 322 MB, and write an EOF every 3.2 GB. If you have\n"
+"selected the simple test option, after writing the first tape\n"
+"it will rewind it and re-read the last block written.\n"
+"\n"
+"If you have selected the multiple tape test, when the first tape\n"
+"fills, it will ask for a second, and after writing a few more \n"
+"blocks, it will stop. Then it will begin re-reading the\n"
+"two tapes.\n"
+"\n"
+"This may take a long time -- hours! ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1805
+msgid ""
+"Do you want to run the simplified test (s) with one tape\n"
+"or the complete multiple tape (m) test: (s/m) "
+msgstr ""
+
+#: src/stored/btape.c:1808
+msgid "Simple test (single tape) selected.\n"
+msgstr ""
+
+#: src/stored/btape.c:1811
+msgid "Multiple tape test selected.\n"
+msgstr ""
+
+#: src/stored/btape.c:1827
+msgid "Rewind failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1830
+msgid "Write EOF failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1857
+msgid "Wrote Start of Session label.\n"
+msgstr ""
+
+#: src/stored/btape.c:1886
+msgid "Begin writing Bacula records to tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1888
+msgid "Begin writing Bacula records to first tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1928
+#, c-format
+msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:1935
+msgid "Flush block, write EOF\n"
+msgstr ""
+
+#: src/stored/btape.c:1946
+msgid "Not OK\n"
+msgstr ""
+
+#: src/stored/btape.c:1974
+msgid "Set ok=false after write_block_to_device.\n"
+msgstr ""
+
+#: src/stored/btape.c:1977
+msgid "Wrote End of Session label.\n"
+msgstr ""
+
+#: src/stored/btape.c:2001
+#, c-format
+msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2005
+#, c-format
+msgid "Could not create state file: %s ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2010
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Done filling tape at %d:%d. Now beginning re-read of tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2014
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2053
+msgid ""
+"\n"
+"The state file level has changed. You must redo\n"
+"the fill command.\n"
+msgstr ""
+
+#: src/stored/btape.c:2059
+#, c-format
+msgid ""
+"\n"
+"Could not find the state file: %s ERR=%s\n"
+"You must redo the fill command.\n"
+msgstr ""
+
+#: src/stored/btape.c:2101
+msgid "Mount first tape. Press enter when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2125
+msgid "Reading the first 10000 records.\n"
+msgstr ""
+
+#: src/stored/btape.c:2128 src/stored/btape.c:2195
+#, c-format
+msgid "Reposition from %u:%u to %u:%u\n"
+msgstr ""
+
+#: src/stored/btape.c:2131 src/stored/btape.c:2182 src/stored/btape.c:2198
+#, c-format
+msgid "Reposition error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2134
+#, c-format
+msgid "Reading block %u.\n"
+msgstr ""
+
+#: src/stored/btape.c:2136 src/stored/btape.c:2187 src/stored/btape.c:2203
+#, c-format
+msgid "Error reading block: ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2141
+msgid ""
+"\n"
+"The last block on the tape matches. Test succeeded.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2143
+msgid ""
+"\n"
+"The last block of the first tape matches.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2168
+msgid "Mount second tape. Press enter when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2180
+#, c-format
+msgid "Reposition from %u:%u to 0:1\n"
+msgstr ""
+
+#: src/stored/btape.c:2185 src/stored/btape.c:2201
+#, c-format
+msgid "Reading block %d.\n"
+msgstr ""
+
+#: src/stored/btape.c:2191
+msgid ""
+"\n"
+"The first block on the second tape matches.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2207
+msgid ""
+"\n"
+"The last block on the second tape matches. Test succeeded.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2221
+#, c-format
+msgid "ERROR! device at %d:%d count=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2227
+#, c-format
+msgid "1000 records read now at %d:%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2250 src/stored/btape.c:2261 src/stored/btape.c:2309
+msgid "Last block written"
+msgstr ""
+
+#: src/stored/btape.c:2252 src/stored/btape.c:2262
+msgid "Block read back"
+msgstr ""
+
+#: src/stored/btape.c:2253
+#, c-format
+msgid ""
+"\n"
+"\n"
+"The blocks differ at byte %u\n"
+msgstr ""
+
+#: src/stored/btape.c:2254
+msgid ""
+"\n"
+"\n"
+"!!!! The last block written and the block\n"
+"that was read back differ. The test FAILED !!!!\n"
+"This must be corrected before you use Bacula\n"
+"to write multi-tape Volumes.!!!!\n"
+msgstr ""
+
+#: src/stored/btape.c:2293
+#, c-format
+msgid "Last block at: %u:%u this_dev_block_num=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2307
+#, c-format
+msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n"
+msgstr ""
+
+#: src/stored/btape.c:2311
+msgid "Block not written"
+msgstr ""
+
+#: src/stored/btape.c:2326
+#, c-format
+msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:2376
+msgid "Test writing blocks of 64512 bytes to tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:2378
+msgid "How many blocks do you want to write? (1000): "
+msgstr ""
+
+#: src/stored/btape.c:2393
+#, c-format
+msgid "Begin writing %d Bacula blocks to tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2445
+#, c-format
+msgid "Begin writing raw blocks of %u bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:2465
+#, c-format
+msgid "Write failed at block %u. stat=%d ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2495
+#, c-format
+msgid "Begin writing Bacula blocks of %u bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:2514
+#, c-format
+msgid "Write failed at block %u.\n"
+msgstr ""
+
+#: src/stored/btape.c:2521
+msgid "autochanger"
+msgstr ""
+
+#: src/stored/btape.c:2521
+msgid "test autochanger"
+msgstr ""
+
+#: src/stored/btape.c:2522
+msgid "bsf"
+msgstr ""
+
+#: src/stored/btape.c:2522
+msgid "backspace file"
+msgstr ""
+
+#: src/stored/btape.c:2523
+msgid "bsr"
+msgstr ""
+
+#: src/stored/btape.c:2523
+msgid "backspace record"
+msgstr ""
+
+#: src/stored/btape.c:2524
+msgid "bfill"
+msgstr ""
+
+#: src/stored/btape.c:2524
+msgid "fill tape using Bacula writes"
+msgstr ""
+
+#: src/stored/btape.c:2525
+msgid "cap"
+msgstr ""
+
+#: src/stored/btape.c:2525
+msgid "list device capabilities"
+msgstr ""
+
+#: src/stored/btape.c:2526
+msgid "clear"
+msgstr ""
+
+#: src/stored/btape.c:2526
+msgid "clear tape errors"
+msgstr ""
+
+#: src/stored/btape.c:2527
+msgid "eod"
+msgstr ""
+
+#: src/stored/btape.c:2527
+msgid "go to end of Bacula data for append"
+msgstr ""
+
+#: src/stored/btape.c:2528
+msgid "eom"
+msgstr ""
+
+#: src/stored/btape.c:2528
+msgid "go to the physical end of medium"
+msgstr ""
+
+#: src/stored/btape.c:2529
+msgid "fill"
+msgstr ""
+
+#: src/stored/btape.c:2529
+msgid "fill tape, write onto second volume"
+msgstr ""
+
+#: src/stored/btape.c:2530
+msgid "unfill"
+msgstr ""
+
+#: src/stored/btape.c:2530
+msgid "read filled tape"
+msgstr ""
+
+#: src/stored/btape.c:2531
+msgid "fsf"
+msgstr ""
+
+#: src/stored/btape.c:2531
+msgid "forward space a file"
+msgstr ""
+
+#: src/stored/btape.c:2532
+msgid "fsr"
+msgstr ""
+
+#: src/stored/btape.c:2532
+msgid "forward space a record"
+msgstr ""
+
+#: src/stored/btape.c:2534
+msgid "write a Bacula label to the tape"
+msgstr ""
+
+#: src/stored/btape.c:2535
+msgid "load"
+msgstr ""
+
+#: src/stored/btape.c:2535
+msgid "load a tape"
+msgstr ""
+
+#: src/stored/btape.c:2536
+msgid "quit btape"
+msgstr ""
+
+#: src/stored/btape.c:2537
+msgid "rawfill"
+msgstr ""
+
+#: src/stored/btape.c:2537
+msgid "use write() to fill tape"
+msgstr ""
+
+#: src/stored/btape.c:2538
+msgid "readlabel"
+msgstr ""
+
+#: src/stored/btape.c:2538
+msgid "read and print the Bacula tape label"
+msgstr ""
+
+#: src/stored/btape.c:2539
+msgid "rectest"
+msgstr ""
+
+#: src/stored/btape.c:2539
+msgid "test record handling functions"
+msgstr ""
+
+#: src/stored/btape.c:2540
+msgid "rewind"
+msgstr ""
+
+#: src/stored/btape.c:2540
+msgid "rewind the tape"
+msgstr ""
+
+#: src/stored/btape.c:2541
+msgid "read() tape block by block to EOT and report"
+msgstr ""
+
+#: src/stored/btape.c:2542
+msgid "scanblocks"
+msgstr ""
+
+#: src/stored/btape.c:2542
+msgid "Bacula read block by block to EOT and report"
+msgstr ""
+
+#: src/stored/btape.c:2543
+msgid "print tape status"
+msgstr ""
+
+#: src/stored/btape.c:2544
+msgid "test"
+msgstr ""
+
+#: src/stored/btape.c:2544
+msgid "General test Bacula tape functions"
+msgstr ""
+
+#: src/stored/btape.c:2545
+msgid "weof"
+msgstr ""
+
+#: src/stored/btape.c:2545
+msgid "write an EOF on the tape"
+msgstr ""
+
+#: src/stored/btape.c:2546
+msgid "wr"
+msgstr ""
+
+#: src/stored/btape.c:2546
+msgid "write a single Bacula block"
+msgstr ""
+
+#: src/stored/btape.c:2547
+msgid "rr"
+msgstr ""
+
+#: src/stored/btape.c:2547
+msgid "read a single record"
+msgstr ""
+
+#: src/stored/btape.c:2548
+msgid "qfill"
+msgstr ""
+
+#: src/stored/btape.c:2548
+msgid "quick fill command"
+msgstr ""
+
+#: src/stored/btape.c:2569
+#, c-format
+msgid "%s is an illegal command\n"
+msgstr ""
+
+#: src/stored/btape.c:2579
+#, c-format
+msgid "Interactive commands:\n"
+msgstr ""
+
+#: src/stored/btape.c:2589
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: btape <options> <device_name>\n"
+" -b <file> specify bootstrap file\n"
+" -c <file> set configuration file to file\n"
+" -d <nn> set debug level to nn\n"
+" -p proceed inspite of I/O errors\n"
+" -s turn off signals\n"
+" -v be verbose\n"
+" -? print this message.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2680
+#, c-format
+msgid "Mount second Volume on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2707
+#, c-format
+msgid "Mount blank Volume on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2725
+#, c-format
+msgid "End of Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/btape.c:2737
+#, c-format
+msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:2752 src/stored/mount.c:493
+#, c-format
+msgid "Cannot open Dev=%s, Vol=%s\n"
+msgstr ""
+
+#: src/stored/butil.c:46
+msgid "Nohdr,"
+msgstr ""
+
+#: src/stored/butil.c:49
+msgid "partial,"
+msgstr ""
+
+#: src/stored/butil.c:52
+msgid "empty,"
+msgstr ""
+
+#: src/stored/butil.c:55
+msgid "Nomatch,"
+msgstr ""
+
+#: src/stored/butil.c:58
+msgid "cont,"
+msgstr ""
+
+#: src/stored/butil.c:128
+msgid "Volume name or names is too long. Please use a .bsr file.\n"
+msgstr ""
+
+#: src/stored/butil.c:148
+#, c-format
+msgid "Cannot find device \"%s\" in config file %s.\n"
+msgstr ""
+
+#: src/stored/butil.c:155
+#, c-format
+msgid "Cannot init device %s\n"
+msgstr ""
+
+#: src/stored/butil.c:174
+#, c-format
+msgid "Cannot open %s\n"
+msgstr ""
+
+#: src/stored/butil.c:253
+#, c-format
+msgid "Could not find device \"%s\" in config file %s.\n"
+msgstr ""
+
+#: src/stored/butil.c:258
+#, c-format
+msgid "Using device: \"%s\" for reading.\n"
+msgstr ""
+
+#: src/stored/butil.c:261
+#, c-format
+msgid "Using device: \"%s\" for writing.\n"
+msgstr ""
+
+#: src/stored/butil.c:277
+msgid "Unexpected End of Data\n"
+msgstr ""
+
+#: src/stored/butil.c:279
+msgid "Unexpected End of Tape\n"
+msgstr ""
+
+#: src/stored/butil.c:281
+msgid "Unexpected End of File\n"
+msgstr ""
+
+#: src/stored/butil.c:283
+msgid "Tape Door is Open\n"
+msgstr ""
+
+#: src/stored/butil.c:285
+msgid "Unexpected Tape is Off-line\n"
+msgstr ""
+
+#: src/stored/dev.c:110
+#, c-format
+msgid "Unable to stat device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:125
+#, c-format
+msgid ""
+"%s is an unknown device type. Must be tape or directory\n"
+" or have RequiresMount=yes for DVD. st_mode=%x\n"
+msgstr ""
+
+#: src/stored/dev.c:183
+#, c-format
+msgid "Unable to stat mount point %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:188
+msgid ""
+"Mount and unmount commands must defined for a device which requires mount.\n"
+msgstr ""
+
+#: src/stored/dev.c:191
+msgid "Write part command must be defined for a device which requires mount.\n"
+msgstr ""
+
+#: src/stored/dev.c:197
+#, c-format
+msgid "Block size %u on device %s is too large, using default %u\n"
+msgstr ""
+
+#: src/stored/dev.c:202
+#, c-format
+msgid "Max block size %u not multiple of device %s block size.\n"
+msgstr ""
+
+#: src/stored/dev.c:218 src/stored/dev.c:224
+#, c-format
+msgid "Unable to init cond variable: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:310
+msgid "Illegal mode given to open dev.\n"
+msgstr ""
+
+#: src/stored/dev.c:372 src/stored/device.c:302
+#, c-format
+msgid "Unable to open device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:392
+#, c-format
+msgid "fcntl error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:430 src/stored/dev.c:489
+#, c-format
+msgid "Could not open file device %s. No Volume name given.\n"
+msgstr ""
+
+#: src/stored/dev.c:455 src/stored/dev.c:569
+#, c-format
+msgid "Could not open: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:514
+#, c-format
+msgid ""
+"The media in the device %s is not empty, please blank it before writing "
+"anything to it.\n"
+msgstr ""
+
+#: src/stored/dev.c:530
+#, c-format
+msgid "There is no valid media in the device %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:537
+#, c-format
+msgid "Could not mount device %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:595
+#, c-format
+msgid "Could not fstat: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:648
+#, c-format
+msgid "Bad call to rewind_dev. Device %s not open\n"
+msgstr ""
+
+#: src/stored/dev.c:677
+#, c-format
+msgid "Rewind error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:687 src/stored/dev.c:800 src/stored/dev.c:937
+#: src/stored/dev.c:1462
+#, c-format
+msgid "lseek_dev error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:727
+msgid "unknown blocked code"
+msgstr ""
+
+#: src/stored/dev.c:770
+#, c-format
+msgid "Bad call to eod_dev. Device %s not open\n"
+msgstr ""
+
+#: src/stored/dev.c:836
+#, c-format
+msgid "ioctl MTEOM error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:844 src/stored/dev.c:977
+#, c-format
+msgid "ioctl MTIOCGET error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:923
+msgid "Bad device call. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:936
+#, c-format
+msgid "Seek error: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:972
+msgid " Bacula status:"
+msgstr ""
+
+#: src/stored/dev.c:973 src/stored/dev.c:1022 src/stored/dev.c:1024
+#, c-format
+msgid " file=%d block=%d\n"
+msgstr ""
+
+#: src/stored/dev.c:981
+msgid " Device status:"
+msgstr ""
+
+#: src/stored/dev.c:1046
+msgid "Bad call to load_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1057 src/stored/dev.c:1070
+#, c-format
+msgid "ioctl MTLOAD error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1089
+msgid "Bad call to offline_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1112
+#, c-format
+msgid "ioctl MTOFFL error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1153
+msgid "Bad call to fsf_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1163 src/stored/dev.c:1284
+#, c-format
+msgid "Device %s at End of Tape.\n"
+msgstr ""
+
+#: src/stored/dev.c:1188 src/stored/dev.c:1264
+#, c-format
+msgid "ioctl MTFSF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1313
+msgid "Bad call to bsf_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1319
+#, c-format
+msgid "Device %s cannot BSF because it is not a tape.\n"
+msgstr ""
+
+#: src/stored/dev.c:1334
+#, c-format
+msgid "ioctl MTBSF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1354
+msgid "Bad call to fsr. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1363
+#, c-format
+msgid "ioctl MTFSR not permitted on %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1391
+#, c-format
+msgid "ioctl MTFSR %d error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1411
+msgid "Bad call to bsr_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1421
+#, c-format
+msgid "ioctl MTBSR not permitted on %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1434
+#, c-format
+msgid "ioctl MTBSR error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1451
+msgid "Bad call to reposition_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1519
+msgid "Bad call to weof_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1529
+msgid "Attempt to WEOF on non-appendable Volume\n"
+msgstr ""
+
+#: src/stored/dev.c:1546
+#, c-format
+msgid "ioctl MTWEOF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1588
+msgid "Got ENOTTY on read/write!\n"
+msgstr ""
+
+#: src/stored/dev.c:1635
+#, c-format
+msgid "unknown func code %d"
+msgstr ""
+
+#: src/stored/dev.c:1641
+#, c-format
+msgid "I/O function \"%s\" not supported on this device.\n"
+msgstr ""
+
+#: src/stored/dev.c:1779 src/stored/dvd.c:668
+#, c-format
+msgid "Unable to truncate device %s. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:1818
+msgid "Bad call to term_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/device.c:105
+#, c-format
+msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n"
+msgstr ""
+
+#: src/stored/device.c:119
+#, c-format
+msgid "New volume \"%s\" mounted on device %s at %s.\n"
+msgstr ""
+
+#: src/stored/device.c:131
+#, c-format
+msgid "write_block_to_device Volume label failed. ERR=%s"
+msgstr ""
+
+#: src/stored/device.c:168
+#, c-format
+msgid "write_block_to_device overflow block failed. ERR=%s"
+msgstr ""
+
+#: src/stored/device.c:304
+#, c-format
+msgid "Unable to open archive %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:328
+msgid "Bad call to force_close_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/device.c:346
+#, c-format
+msgid "Device write lock failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:354
+#, c-format
+msgid "Device write unlock failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:373
+#, c-format
+msgid "pthread_cond_wait failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:140
+msgid "Connection request failed.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:149
+#, c-format
+msgid "Invalid connection. Len=%d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:241
+#, c-format
+msgid "3991 Bad setdebug command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:262
+#, c-format
+msgid "3902 Job %s not found.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:279
+#, c-format
+msgid "3000 Job %s marked to be canceled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:283
+msgid "3903 Error scanning cancel command.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:352 src/stored/dircmd.c:648 src/stored/dircmd.c:712
+#: src/stored/dircmd.c:770 src/stored/dircmd.c:822 src/stored/dircmd.c:860
+#, c-format
+msgid "3999 Device \"%s\" not found\n"
+msgstr ""
+
+#: src/stored/dircmd.c:357
+#, c-format
+msgid "3903 Error scanning label command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:401
+#, c-format
+msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:407
+msgid "3921 Wrong volume mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:411
+msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:419 src/stored/dircmd.c:428
+#, c-format
+msgid "3912 Failed to label Volume: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:431
+#, c-format
+msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n"
+msgstr ""
+
+#: src/stored/dircmd.c:464
+#, c-format
+msgid "3001 Mounted Volume: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:468 src/stored/dircmd.c:896
+#, c-format
+msgid ""
+"3902 Cannot mount Volume on Storage Device %s because:\n"
+"%s"
+msgstr ""
+
+#: src/stored/dircmd.c:491 src/stored/reserve.c:518
+#, c-format
+msgid ""
+"\n"
+" Device \"%s\" requested by DIR could not be opened or does not exist.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:512 src/stored/reserve.c:514
+#, c-format
+msgid ""
+"\n"
+" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or "
+"does not exist.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:568 src/stored/dircmd.c:616
+#, c-format
+msgid "3901 open device failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:583 src/stored/dircmd.c:607
+#, c-format
+msgid "3001 Device %s is mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:586 src/stored/dircmd.c:610 src/stored/dircmd.c:625
+#, c-format
+msgid ""
+"3905 Device %s open but no Bacula volume is mounted.\n"
+"If this is not a blank tape, try unmounting and remounting the Volume.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:595
+#, c-format
+msgid "3001 Device %s is doing acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:600 src/stored/dircmd.c:690
+#, c-format
+msgid "3903 Device %s is being labeled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:622
+#, c-format
+msgid "3001 Device %s is already mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:631
+#, c-format
+msgid "3002 Device %s is mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:634
+#, c-format
+msgid "3907 %s"
+msgstr ""
+
+#: src/stored/dircmd.c:637
+#, c-format
+msgid "3906 File device %s is always mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:643
+#, c-format
+msgid "3905 Bizarre wait state %d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:652
+#, c-format
+msgid "3909 Error scanning mount command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:673
+#, c-format
+msgid "3901 Device %s is already unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:682
+#, c-format
+msgid "3001 Device %s unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:686
+#, c-format
+msgid "3902 Device %s is busy in acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:707
+#, c-format
+msgid "3002 Device %s unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:717
+#, c-format
+msgid "3907 Error scanning unmount command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:742
+#, c-format
+msgid "3911 Device %s already released.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:749
+#, c-format
+msgid "3912 Device %s waiting for mount.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:753
+#, c-format
+msgid "3913 Device %s is busy in acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:757
+#, c-format
+msgid "3914 Device %s is being labeled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:765
+#, c-format
+msgid "3012 Device %s released.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:775
+#, c-format
+msgid "3917 Error scanning release command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:808
+#, c-format
+msgid "3995 Device %s is not an autochanger.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:826
+#, c-format
+msgid "3908 Error scanning autocharger list/slots command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:864
+#, c-format
+msgid "3909 Error scanning readlabel command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:892
+#, c-format
+msgid "3001 Volume=%s Slot=%d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:921
+#, c-format
+msgid "3910 Unable to open device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:931
+#, c-format
+msgid "3911 Device %s is busy reading.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:934
+#, c-format
+msgid "3912 Device %s is busy with %d writer(s).\n"
+msgstr ""
+
+#: src/stored/fd_cmds.c:340
+msgid "Error parsing bootstrap file.\n"
+msgstr ""
+
+#: src/stored/job.c:79
+#, c-format
+msgid "Bad Job Command from Director: %s\n"
+msgstr ""
+
+#: src/stored/job.c:189
+#, c-format
+msgid "Job name not found: %s\n"
+msgstr ""
+
+#: src/stored/job.c:200
+#, c-format
+msgid "Hey!!!! JobId %u Job %s already authenticated.\n"
+msgstr ""
+
+#: src/stored/job.c:211
+msgid "Unable to authenticate File daemon\n"
+msgstr ""
+
+#: src/stored/job.c:338
+msgid "In free_jcr(), but still attached to device!!!!\n"
+msgstr ""
+
+#: src/stored/label.c:74
+msgid "BAD call to read_dev_volume_label\n"
+msgstr ""
+
+#: src/stored/label.c:79 src/stored/label.c:120 src/stored/label.c:208
+#, c-format
+msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n"
+msgstr ""
+
+#: src/stored/label.c:86 src/stored/label.c:123 src/stored/label.c:195
+#, c-format
+msgid "Too many tries: %s"
+msgstr ""
+
+#: src/stored/label.c:102
+#, c-format
+msgid "Couldn't rewind device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:140
+#, c-format
+msgid ""
+"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s"
+msgstr ""
+
+#: src/stored/label.c:145
+msgid "Could not read Volume label from block.\n"
+msgstr ""
+
+#: src/stored/label.c:148
+#, c-format
+msgid "Could not unserialize Volume label: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:153
+#, c-format
+msgid "Volume Header Id bad: %s\n"
+msgstr ""
+
+#: src/stored/label.c:180
+#, c-format
+msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n"
+msgstr ""
+
+#: src/stored/label.c:191
+#, c-format
+msgid "Volume on %s has bad Bacula label type: %x\n"
+msgstr ""
+
+#: src/stored/label.c:272
+#, c-format
+msgid "Cannot write Volume label to block for device %s\n"
+msgstr ""
+
+#: src/stored/label.c:393
+#, c-format
+msgid "Rewind error on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:398
+#, c-format
+msgid "Truncate error on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:420
+#, c-format
+msgid "Unable to write device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:448
+#, c-format
+msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n"
+msgstr ""
+
+#: src/stored/label.c:451
+#, c-format
+msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n"
+msgstr ""
+
+#: src/stored/label.c:648
+#, c-format
+msgid "Bad session label = %d\n"
+msgstr ""
+
+#: src/stored/label.c:666 src/stored/label.c:673
+#, c-format
+msgid "Error writing Session label to %s: %s\n"
+msgstr ""
+
+#: src/stored/label.c:707
+#, c-format
+msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n"
+msgstr ""
+
+#: src/stored/label.c:834
+#, c-format
+msgid "Unknown %d"
+msgstr ""
+
+#: src/stored/label.c:838
+#, c-format
+msgid ""
+"\n"
+"Volume Label:\n"
+"Id : %sVerNo : %d\n"
+"VolName : %s\n"
+"PrevVolName : %s\n"
+"VolFile : %d\n"
+"LabelType : %s\n"
+"LabelSize : %d\n"
+"PoolName : %s\n"
+"MediaType : %s\n"
+"PoolType : %s\n"
+"HostName : %s\n"
+msgstr ""
+
+#: src/stored/label.c:860
+#, c-format
+msgid "Date label written: %s\n"
+msgstr ""
+
+#: src/stored/label.c:866
+#, c-format
+msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n"
+msgstr ""
+
+#: src/stored/label.c:886
+#, c-format
+msgid ""
+"\n"
+"%s Record:\n"
+"JobId : %d\n"
+"VerNum : %d\n"
+"PoolName : %s\n"
+"PoolType : %s\n"
+"JobName : %s\n"
+"ClientName : %s\n"
+msgstr ""
+
+#: src/stored/label.c:899
+#, c-format
+msgid ""
+"Job (unique name) : %s\n"
+"FileSet : %s\n"
+"JobType : %c\n"
+"JobLevel : %c\n"
+msgstr ""
+
+#: src/stored/label.c:908
+#, c-format
+msgid ""
+"JobFiles : %s\n"
+"JobBytes : %s\n"
+"StartBlock : %s\n"
+"EndBlock : %s\n"
+"StartFile : %s\n"
+"EndFile : %s\n"
+"JobErrors : %s\n"
+"JobStatus : %c\n"
+msgstr ""
+
+#: src/stored/label.c:929
+#, c-format
+msgid "Date written : %s\n"
+msgstr ""
+
+#: src/stored/label.c:934
+#, c-format
+msgid "Date written : %04d-%02d-%02d at %02d:%02d\n"
+msgstr ""
+
+#: src/stored/label.c:953
+msgid "Fresh Volume"
+msgstr ""
+
+#: src/stored/label.c:965 src/stored/read_record.c:335
+msgid "End of Media"
+msgstr ""
+
+#: src/stored/label.c:968
+msgid "End of Tape"
+msgstr ""
+
+#: src/stored/label.c:988 src/stored/label.c:996 src/stored/label.c:1029
+#, c-format
+msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/label.c:993
+msgid "End of physical tape.\n"
+msgstr ""
+
+#: src/stored/label.c:1008 src/stored/label.c:1017
+#, c-format
+msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n"
+msgstr ""
+
+#: src/stored/label.c:1010
+#, c-format
+msgid " Job=%s Date=%s Level=%c Type=%c\n"
+msgstr ""
+
+#: src/stored/label.c:1019
+#, c-format
+msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n"
+msgstr ""
+
+#: src/stored/mount.c:197 src/stored/mount.c:294
+#, c-format
+msgid "Volume \"%s\" not on device %s.\n"
+msgstr ""
+
+#: src/stored/mount.c:230
+#, c-format
+msgid ""
+"Director wanted Volume \"%s\".\n"
+" Current Volume \"%s\" not acceptable because:\n"
+" %s"
+msgstr ""
+
+#: src/stored/mount.c:284
+#, c-format
+msgid "Labeled new Volume \"%s\" on device %s.\n"
+msgstr ""
+
+#: src/stored/mount.c:289
+#, c-format
+msgid "Warning device %s not configured to autolabel Volumes.\n"
+msgstr ""
+
+#: src/stored/mount.c:340
+#, c-format
+msgid "Volume \"%s\" previously written, moving to end of data.\n"
+msgstr ""
+
+#: src/stored/mount.c:343
+#, c-format
+msgid "Unable to position to end of data on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/mount.c:355
+#, c-format
+msgid "Ready to append to end of Volume \"%s\" at file=%d.\n"
+msgstr ""
+
+#: src/stored/mount.c:358
+#, c-format
+msgid ""
+"I cannot write on Volume \"%s\" because:\n"
+"The number of files mismatch! Volume=%u Catalog=%u\n"
+msgstr ""
+
+#: src/stored/mount.c:411
+#, c-format
+msgid "Marking Volume \"%s\" in Error in Catalog.\n"
+msgstr ""
+
+#: src/stored/mount.c:427
+#, c-format
+msgid ""
+"Autochanger Volume \"%s\" not found in slot %d.\n"
+" Setting InChanger to zero in catalog.\n"
+msgstr ""
+
+#: src/stored/mount.c:446
+msgid "Hey!!!!! WroteVol non-zero !!!!!\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:104 src/stored/parse_bsr.c:108
+#, c-format
+msgid ""
+"Bootstrap file error: %s\n"
+" : Line %d, col %d of file %s\n"
+"%s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:130
+#, c-format
+msgid "Cannot open bootstrap file %s: %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:260
+#, c-format
+msgid "MediaType %s in bsr at inappropriate place.\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:416
+msgid "JobType not yet implemented\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:424
+msgid "JobLevel not yet implemented\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:626
+#, c-format
+msgid "VolFile : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:634
+#, c-format
+msgid "VolBlock : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:644
+#, c-format
+msgid "FileIndex : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:646
+#, c-format
+msgid "FileIndex : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:656
+#, c-format
+msgid "JobId : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:658
+#, c-format
+msgid "JobId : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:668
+#, c-format
+msgid "SessId : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:670
+#, c-format
+msgid "SessId : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:679
+#, c-format
+msgid "VolumeName : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:688
+#, c-format
+msgid "Client : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:696
+#, c-format
+msgid "Job : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:704
+#, c-format
+msgid "SessTime : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:718
+msgid "BSR is NULL\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:722
+#, c-format
+msgid "Next : 0x%x\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:723
+#, c-format
+msgid "Root bsr : 0x%x\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:734
+#, c-format
+msgid "Slot : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:737
+#, c-format
+msgid "count : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:738
+#, c-format
+msgid "found : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:741
+#, c-format
+msgid "done : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:742
+#, c-format
+msgid "positioning : %d\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:743
#, c-format
-msgid "Read record failed! ERR=%s\n"
+msgid "fast_reject : %d\n"
+msgstr ""
+
+#: src/stored/read.c:55
+msgid "No Volume names found for restore.\n"
msgstr ""
-#: src/stored/btape.c:1009
+#: src/stored/read.c:109
#, c-format
-msgid "Block %d re-read correctly.\n"
+msgid ">filed: Error Hdr=%s\n"
+msgstr ""
+
+#: src/stored/read.c:110 src/stored/read.c:125
+#, c-format
+msgid "Error sending to File daemon. ERR=%s\n"
+msgstr ""
+
+#: src/stored/read.c:124
+#, c-format
+msgid "Error sending to FD. ERR=%s\n"
+msgstr ""
+
+#: src/stored/read_record.c:68
+#, c-format
+msgid "End of Volume at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/read_record.c:71
+msgid "End of all volumes.\n"
+msgstr ""
+
+#: src/stored/read_record.c:105
+#, c-format
+msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/read_record.c:119
+msgid "Did fsr\n"
+msgstr ""
+
+#: src/stored/read_record.c:275
+#, c-format
+msgid "Reposition from (file:block) %u:%u to %u:%u\n"
+msgstr ""
+
+#: src/stored/read_record.c:302
+#, c-format
+msgid "Forward spacing to file:block %u:%u.\n"
+msgstr ""
+
+#: src/stored/read_record.c:328
+msgid "Begin Session"
+msgstr ""
+
+#: src/stored/read_record.c:332
+msgid "End Session"
+msgstr ""
+
+#: src/stored/read_record.c:338
+#, c-format
+msgid "Unknown code %d\n"
+msgstr ""
+
+#: src/stored/record.c:61
+#, c-format
+msgid "unknown: %d"
+msgstr ""
+
+#: src/stored/record.c:332
+msgid "Damaged buffer\n"
+msgstr ""
+
+#: src/stored/spool.c:69
+#, c-format
+msgid ""
+"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n"
+msgstr ""
+
+#: src/stored/spool.c:75
+#, c-format
+msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n"
+msgstr ""
+
+#: src/stored/spool.c:91
+msgid "Spooling data ...\n"
+msgstr ""
+
+#: src/stored/spool.c:117
+#, c-format
+msgid "Bad return from despool WroteVol=%d\n"
+msgstr ""
+
+#: src/stored/spool.c:150
+#, c-format
+msgid "Open data spool file %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:199
+#, c-format
+msgid "Committing spooled data to Volume. Despooling %s bytes ...\n"
+msgstr ""
+
+#: src/stored/spool.c:203
+#, c-format
+msgid "Writing spooled data to Volume. Despooling %s bytes ...\n"
+msgstr ""
+
+#: src/stored/spool.c:257 src/stored/spool.c:431 src/stored/spool.c:469
+#, c-format
+msgid "Ftruncate spool file failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:259
+#, c-format
+msgid "Bad return from ftruncate. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:308
+#, c-format
+msgid "Spool header read error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:311
+#, c-format
+msgid "Spool read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:312
+#, c-format
+msgid "Spool header read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:318 src/stored/spool.c:319
+#, c-format
+msgid "Spool block too big. Max %u bytes, got %u\n"
+msgstr ""
+
+#: src/stored/spool.c:324 src/stored/spool.c:325
+#, c-format
+msgid "Spool data read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:382
+msgid "User specified spool size reached.\n"
+msgstr ""
+
+#: src/stored/spool.c:384
+msgid "Bad return from despool in write_block.\n"
+msgstr ""
+
+#: src/stored/spool.c:392
+msgid "Spooling data again ...\n"
+msgstr ""
+
+#: src/stored/spool.c:423
+#, c-format
+msgid "Error writing header to spool file. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:437 src/stored/spool.c:475
+msgid "Fatal despooling error."
+msgstr ""
+
+#: src/stored/spool.c:444
+msgid "Retrying after header spooling error failed.\n"
+msgstr ""
+
+#: src/stored/spool.c:458
+#, c-format
+msgid "Error writing data to spool file. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:485
+msgid "Retrying after data spooling error failed.\n"
+msgstr ""
+
+#: src/stored/spool.c:540 src/stored/spool.c:547
+#, c-format
+msgid "Fseek on attributes file failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:557
+#, c-format
+msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n"
msgstr ""
-#: src/stored/btape.c:1030
+#: src/stored/spool.c:584
+#, c-format
+msgid "fopen attr spool file %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/status.c:66
+#, c-format
msgid ""
"\n"
+"%s Version: %s (%s) %s %s %s\n"
+msgstr ""
+
+#: src/stored/status.c:97
+msgid ""
"\n"
-"=== Append files test ===\n"
+"Device status:\n"
+msgstr ""
+
+#: src/stored/status.c:99
+#, c-format
+msgid "Autochanger \"%s\" with devices:\n"
+msgstr ""
+
+#: src/stored/status.c:113
+#, c-format
+msgid "Device %s is mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/status.c:116
+#, c-format
+msgid "Device %s open but no Bacula volume is mounted.\n"
+msgstr ""
+
+#: src/stored/status.c:126
+#, c-format
+msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:140
+#, c-format
+msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:145
+#, c-format
+msgid " Positioned at File=%s Block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:151
+#, c-format
+msgid "Device %s is not open or does not exist.\n"
+msgstr ""
+
+#: src/stored/status.c:153
+#, c-format
+msgid "Device \"%s\" is not open or does not exist.\n"
+msgstr ""
+
+#: src/stored/status.c:158 src/stored/status.c:165 src/stored/status.c:168
+msgid ""
+"====\n"
"\n"
-"This test is essential to Bacula.\n"
+msgstr ""
+
+#: src/stored/status.c:159
+msgid "Volume status:\n"
+msgstr ""
+
+#: src/stored/status.c:183
+msgid ""
+"No DEVICE structure.\n"
"\n"
-"I'm going to write one record in file 0,\n"
-" two records in file 1,\n"
-" and three records in file 2\n"
+msgstr ""
+
+#: src/stored/status.c:188
+msgid " Device is BLOCKED. User unmounted.\n"
+msgstr ""
+
+#: src/stored/status.c:191
+msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n"
+msgstr ""
+
+#: src/stored/status.c:195
+#, c-format
+msgid " Device is BLOCKED waiting for mount of volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/status.c:198
+msgid " Device is BLOCKED waiting for media.\n"
+msgstr ""
+
+#: src/stored/status.c:202
+msgid " Device is being initialized.\n"
+msgstr ""
+
+#: src/stored/status.c:205
+msgid " Device is blocked labeling a Volume.\n"
+msgstr ""
+
+#: src/stored/status.c:213
+#, c-format
+msgid " Slot %d is loaded in drive %d.\n"
+msgstr ""
+
+#: src/stored/status.c:216
+#, c-format
+msgid " Drive %d is not loaded.\n"
+msgstr ""
+
+#: src/stored/status.c:235
+msgid "Device state:\n"
+msgstr ""
+
+#: src/stored/status.c:249
+#, c-format
+msgid ""
+"num_writers=%d JobStatus=%c block=%d\n"
"\n"
msgstr ""
-#: src/stored/btape.c:1054
-msgid "Now moving to end of medium.\n"
+#: src/stored/status.c:253
+#, c-format
+msgid "Archive name: %s Device name: %s\n"
msgstr ""
-#: src/stored/btape.c:1056 src/stored/btape.c:1286
+#: src/stored/status.c:255
#, c-format
-msgid "We should be in file 3. I am at file %d. This is %s\n"
+msgid "File=%u block=%u\n"
msgstr ""
-#: src/stored/btape.c:1063
+#: src/stored/status.c:256
+#, c-format
+msgid "Min block=%u Max block=%u\n"
+msgstr ""
+
+#: src/stored/status.c:272
+#, c-format
+msgid "%s Job %s waiting for Client connection.\n"
+msgstr ""
+
+#: src/stored/status.c:284
+#, c-format
+msgid "%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"
+msgstr ""
+
+#: src/stored/status.c:303
+#, c-format
+msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n"
+msgstr ""
+
+#: src/stored/status.c:308
+msgid " FDSocket closed\n"
+msgstr ""
+
+#: src/stored/status.c:335
+msgid " JobId Level Files Bytes Status Finished Name \n"
+msgstr ""
+
+#: src/stored/status.c:469
+msgid "3900 Bad .status command, missing argument.\n"
+msgstr ""
+
+#: src/stored/status.c:494
+msgid "3900 Bad .status command, wrong argument.\n"
+msgstr ""
+
+#: src/stored/stored.c:65
+#, c-format
msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
"\n"
-"Now the important part, I am going to attempt to append to the tape.\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: stored [options] [-c config_file] [config_file]\n"
+" -c <file> use <file> as configuration file\n"
+" -dnn set debug level to nn\n"
+" -f run in foreground (for debugging)\n"
+" -g <group> set groupid to group\n"
+" -p proceed despite I/O errors\n"
+" -s no signals (for debugging)\n"
+" -t test - read config and exit\n"
+" -u <user> userid to <user>\n"
+" -v verbose user messages\n"
+" -? print this message.\n"
"\n"
msgstr ""
-#: src/stored/btape.c:1070
-msgid ""
-"Done appending, there should be no I/O errors\n"
-"\n"
+#: src/stored/stored.c:220
+msgid "Volume Session Time is ZERO!\n"
msgstr ""
-#: src/stored/btape.c:1073
-msgid "End scanning the tape.\n"
+#: src/stored/stored.c:233
+#, c-format
+msgid "Unable to create thread. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1074 src/stored/btape.c:1299
+#: src/stored/stored.c:272
#, c-format
-msgid "We should be in file 4. I am at file %d. This is %s\n"
+msgid "Only one Storage resource permitted in %s\n"
msgstr ""
-#: src/stored/btape.c:1113
-msgid ""
-"\n"
-"\n"
-"=== Autochanger test ===\n"
-"\n"
+#: src/stored/stored.c:277
+#, c-format
+msgid "No Director resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1122
-msgid "3301 Issuing autochanger \"loaded\" command.\n"
+#: src/stored/stored.c:282
+#, c-format
+msgid "No Device resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1131
+#: src/stored/stored.c:290
#, c-format
-msgid "3991 Bad autochanger command: %s\n"
+msgid "No Messages resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1132
+#: src/stored/stored.c:317
#, c-format
-msgid "3991 result=\"%s\": ERR=%s\n"
+msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/stored/btape.c:1146
+#: src/stored/stored.c:323
#, c-format
-msgid "3302 Issuing autochanger \"unload %d %d\" command.\n"
+msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/stored/btape.c:1154
+#: src/stored/stored.c:329
#, c-format
-msgid "3992 Bad autochanger command: %s\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Storage \"%s\" in %s. At least one CA certificate store is required when "
+"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/stored/btape.c:1155
+#: src/stored/stored.c:417
#, c-format
-msgid "3992 result=\"%s\": ERR=%s\n"
+msgid "No Changer Name given for device %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1165
+#: src/stored/stored.c:423
#, c-format
-msgid "3303 Issuing autochanger \"load %d %d\" command.\n"
+msgid "No Changer Command given for device %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1173
+#: src/stored/stored.c:435
#, c-format
-msgid "3303 Autochanger \"load %d %d\" status is OK.\n"
+msgid ""
+"Media Type not the same for all devices in changer %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1177
+#: src/stored/stored.c:496
#, c-format
-msgid "3993 Bad autochanger command: %s\n"
+msgid "Could not initialize %s\n"
msgstr ""
-#: src/stored/btape.c:1178
+#: src/stored/stored.c:509
#, c-format
-msgid "3993 result=\"%s\": ERR=%s\n"
+msgid "Could not open device %s\n"
msgstr ""
-#: src/stored/btape.c:1244
-msgid ""
-"\n"
-"\n"
-"=== Forward space files test ===\n"
-"\n"
-"This test is essential to Bacula.\n"
-"\n"
-"I'm going to write five files then test forward spacing\n"
-"\n"
+#: src/stored/stored.c:526
+#, c-format
+msgid "Could not mount device %s\n"
msgstr ""
-#: src/stored/btape.c:1269
-msgid "Now forward spacing 1 file.\n"
+#: src/stored/stored_conf.c:188
+#, c-format
+msgid "Warning: no \"%s\" resource (%d) defined.\n"
msgstr ""
-#: src/stored/btape.c:1274
+#: src/stored/stored_conf.c:191
#, c-format
-msgid "We should be in file 1. I am at file %d. This is %s\n"
+msgid "dump_resource type=%d\n"
msgstr ""
-#: src/stored/btape.c:1281
-msgid "Now forward spacing 2 files.\n"
+#: src/stored/stored_conf.c:307
+#, c-format
+msgid "Warning: unknown resource type %d\n"
msgstr ""
-#: src/stored/btape.c:1294
-msgid "Now forward spacing 4 files.\n"
+#: src/stored/stored_conf.c:496
+#, c-format
+msgid "\"%s\" item is required in \"%s\" resource, but not found.\n"
msgstr ""
-#: src/stored/btape.c:1312
-msgid "Now forward spacing 1 more file.\n"
+#: src/stored/stored_conf.c:502
+#, c-format
+msgid "Too many items in \"%s\" resource\n"
msgstr ""
-#: src/stored/btape.c:1316
+#: src/stored/stored_conf.c:536
#, c-format
-msgid "We should be in file 5. I am at file %d. This is %s\n"
+msgid "Cannot find AutoChanger resource %s\n"
msgstr ""
-#: src/stored/btape.c:1321
+#: src/stored/stored_conf.c:607
+#, c-format
msgid ""
-"\n"
-"=== End Forward space files test ===\n"
-"\n"
+"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n"
msgstr ""
-#: src/stored/btape.c:1325
-msgid ""
-"\n"
-"The forward space file test failed.\n"
+#: src/stored/ansi_label.c:83
+#, c-format
+msgid "Read error on device %s in ANSI label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1422
-msgid ""
-"\n"
-"The above Bacula scan should have output identical to what follows.\n"
-"Please double check it ...\n"
-"=== Sample correct output ===\n"
-"1 block of 64448 bytes in file 1\n"
-"End of File mark.\n"
-"2 blocks of 64448 bytes in file 2\n"
-"End of File mark.\n"
-"3 blocks of 64448 bytes in file 3\n"
-"End of File mark.\n"
-"1 block of 64448 bytes in file 4\n"
-"End of File mark.\n"
-"Total files=4, blocks=7, bytes = 451,136\n"
-"=== End sample correct output ===\n"
-"\n"
+#: src/stored/ansi_label.c:93
+msgid "Insane! End of tape while reading ANSI label.\n"
msgstr ""
-#: src/stored/btape.c:1436
-msgid ""
-"If the above scan output is not identical to the\n"
-"sample output, you MUST correct the problem\n"
-"or Bacula will not be able to write multiple Jobs to \n"
-"the tape.\n"
-"\n"
+#: src/stored/ansi_label.c:117
+msgid "No VOL1 label while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1515
+#: src/stored/ansi_label.c:137
#, c-format
-msgid "Wrote one record of %d bytes.\n"
+msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n"
msgstr ""
-#: src/stored/btape.c:1517
-msgid "Wrote block to device.\n"
+#: src/stored/ansi_label.c:148
+msgid "No HDR1 label while reading ANSI label.\n"
msgstr ""
-#: src/stored/btape.c:1537
-msgid "Bad length entered, using default of 1024 bytes.\n"
+#: src/stored/ansi_label.c:154
+#, c-format
+msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n"
msgstr ""
-#: src/stored/btape.c:1546
-#, c-format
-msgid "Read of %d bytes gives stat=%d. ERR=%s\n"
+#: src/stored/ansi_label.c:165
+msgid "No HDR2 label while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1574
-#, c-format
-msgid "Starting scan at file %u\n"
+#: src/stored/ansi_label.c:179
+msgid "Unknown or bad ANSI/IBM label record.\n"
+msgstr ""
+
+#: src/stored/ansi_label.c:186
+msgid "Too many records in while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1663
+#: src/stored/ansi_label.c:285
#, c-format
-msgid "End of File mark.\n"
+msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n"
msgstr ""
-#: src/stored/btape.c:1672
+#: src/stored/ansi_label.c:302
#, c-format
-msgid "Short block read.\n"
+msgid "Could not write ANSI VOL1 label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1675
+#: src/stored/ansi_label.c:340 src/stored/ansi_label.c:369
#, c-format
-msgid "Error reading block. ERR=%s\n"
+msgid "Could not write ANSI HDR1 label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1903
-msgid "Not OK\n"
+#: src/stored/ansi_label.c:345 src/stored/ansi_label.c:376
+msgid "Could not write ANSI HDR1 label.\n"
msgstr ""
-#: src/stored/btape.c:1931
-msgid "Set ok=false after write_block_to_device.\n"
+#: src/stored/ansi_label.c:381
+#, c-format
+msgid "Error writing EOF to tape. ERR=%s"
msgstr ""
-#: src/stored/btape.c:1934
-msgid "Wrote End of Session label.\n"
+#: src/stored/ansi_label.c:386
+msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n"
msgstr ""
-#: src/stored/btape.c:1962
+#: src/stored/dvd.c:153
#, c-format
-msgid "Could not create state file: %s ERR=%s\n"
+msgid "Device %s cannot be mounted. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1966
+#: src/stored/dvd.c:261
#, c-format
-msgid ""
-"\n"
-"\n"
-"Done filling tape%s at %d:%d. Now beginning re-read of %stape ...\n"
+msgid "Cannot run free space command (%s)\n"
msgstr ""
-#: src/stored/btape.c:2052
-msgid "Mount first tape. Press enter when ready: "
+#: src/stored/dvd.c:322
+#, c-format
+msgid "Error while writing current part to the DVD: %s"
msgstr ""
-#: src/stored/btape.c:2076
-msgid "Reading the first 10000 records.\n"
+#: src/stored/dvd.c:343
+#, c-format
+msgid "Remaining free space %s on %s\n"
msgstr ""
-#: src/stored/btape.c:2079 src/stored/btape.c:2146
+#: src/stored/dvd.c:412
#, c-format
-msgid "Reposition from %u:%u to %u:%u\n"
+msgid "Next Volume part already exists on DVD. Cannot continue: %s\n"
msgstr ""
-#: src/stored/btape.c:2085
+#: src/stored/dvd.c:430
#, c-format
-msgid "Reading block %u.\n"
+msgid "open_next_part can't unlink existing part %s, ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:2087 src/stored/btape.c:2138 src/stored/btape.c:2154
+#: src/stored/dvd.c:634
#, c-format
-msgid "Error reading block: ERR=%s\n"
+msgid "Unable to write part %s: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:2092
-msgid ""
-"\n"
-"The last block on the tape matches. Test succeeded.\n"
-"\n"
+#: src/stored/wait.c:178 src/stored/wait.c:236
+#, c-format
+msgid "Job %s waiting to reserve a device.\n"
msgstr ""
-#: src/stored/btape.c:2094
-msgid ""
-"\n"
-"The last block of the first tape matches.\n"
-"\n"
+#: src/stored/pythonsd.c:59
+msgid "SDName"
msgstr ""
-#: src/stored/btape.c:2119
-msgid "Mount second tape. Press enter when ready: "
+#: src/stored/pythonsd.c:202
+msgid "Error in ParseTuple\n"
msgstr ""
-#: src/stored/btape.c:2131
-#, c-format
-msgid "Reposition from %u:%u to 0:1\n"
+#: src/stored/pythonsd.c:218
+msgid "Parse tuple error in job_write\n"
msgstr ""
-#: src/stored/btape.c:2136 src/stored/btape.c:2152
+#: src/stored/pythonsd.c:254
#, c-format
-msgid "Reading block %d.\n"
+msgid "Error in Python method %s\n"
msgstr ""
-#: src/stored/btape.c:2142
-msgid ""
-"\n"
-"The first block on the second tape matches.\n"
-"\n"
+#: src/stored/reserve.c:344 src/stored/reserve.c:361
+#, c-format
+msgid "Failed command: %s\n"
msgstr ""
-#: src/stored/btape.c:2158
+#: src/stored/reserve.c:346
+#, c-format
msgid ""
"\n"
-"The last block on the second tape matches. Test succeeded.\n"
-"\n"
+" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD "
+"Device resources.\n"
msgstr ""
-#: src/stored/btape.c:2201 src/stored/btape.c:2212
-msgid "Last block written"
+#: src/stored/reserve.c:528
+#, c-format
+msgid "3926 Could not get dcr for device: %s\n"
msgstr ""
-#: src/stored/btape.c:2203 src/stored/btape.c:2213
-msgid "Block read back"
+#: src/stored/reserve.c:568 src/stored/reserve.c:623
+#, c-format
+msgid "Device %s is BLOCKED due to user unmount.\n"
msgstr ""
-#: src/stored/btape.c:2520
+#: src/stored/reserve.c:576
#, c-format
-msgid "%s is an illegal command\n"
+msgid "Device %s is busy.\n"
msgstr ""
-#: src/stored/btape.c:2530
+#: src/stored/reserve.c:631
#, c-format
-msgid "Interactive commands:\n"
+msgid "Device %s is busy writing on another Volume.\n"
msgstr ""
-#: src/stored/btape.c:2541
+#: src/stored/reserve.c:705
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: btape <options> <device_name>\n"
-" -b <file> specify bootstrap file\n"
-" -c <file> set configuration file to file\n"
-" -d <nn> set debug level to nn\n"
-" -p proceed inspite of I/O errors\n"
-" -s turn off signals\n"
-" -v be verbose\n"
-" -? print this message.\n"
-"\n"
+msgid "Wanted Pool \"%s\", but device %s is using Pool \"%s\" .\n"
msgstr ""
-#: src/stored/butil.c:128
-msgid "Volume name or names is too long. Please use a .bsr file.\n"
+#: src/stored/reserve.c:710 src/stored/reserve.c:711
+msgid "Logic error!!!! Should not get here.\n"
msgstr ""
-#: src/stored/butil.c:148
+#: src/tools/bsmtp.c:85
#, c-format
-msgid "Cannot find device \"%s\" in config file %s.\n"
+msgid "Fatal malformed reply from %s: %s\n"
msgstr ""
-#: src/stored/butil.c:155
+#: src/tools/bsmtp.c:121
#, c-format
-msgid "Cannot init device %s\n"
+msgid ""
+"\n"
+"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n"
+" -c set the Cc: field\n"
+" -dnn set debug level to nn\n"
+" -f set the From: field\n"
+" -h use mailhost:port as the SMTP server\n"
+" -s set the Subject: field\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/butil.c:174
-#, c-format
-msgid "Cannot open %s\n"
+#: src/tools/bsmtp.c:204
+msgid "Fatal error: no recipient given.\n"
msgstr ""
-#: src/stored/butil.c:253
+#: src/tools/bsmtp.c:225
#, c-format
-msgid "Could not find device \"%s\" in config file %s.\n"
+msgid "Fatal gethostname error: ERR=%s\n"
msgstr ""
-#: src/stored/butil.c:257
+#: src/tools/bsmtp.c:229
#, c-format
-msgid "Using device: \"%s\" for %s.\n"
-msgstr ""
-
-#: src/stored/butil.c:273
-msgid "Unexpected End of Data\n"
-msgstr ""
-
-#: src/stored/butil.c:275
-msgid "Unexpected End of Tape\n"
+msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n"
msgstr ""
-#: src/stored/butil.c:277
-msgid "Unexpected End of File\n"
+#: src/tools/bsmtp.c:254
+#, c-format
+msgid "Error unknown mail host \"%s\": ERR=%s\n"
msgstr ""
-
-#: src/stored/butil.c:279
-msgid "Tape Door is Open\n"
+
+#: src/tools/bsmtp.c:257
+msgid "Retrying connection using \"localhost\".\n"
msgstr ""
-#: src/stored/butil.c:281
-msgid "Unexpected Tape is Off-line\n"
+#: src/tools/bsmtp.c:265
+#, c-format
+msgid "Fatal error: Unknown address family for smtp host: %d\n"
msgstr ""
-#: src/stored/dev.c:110
+#: src/tools/bsmtp.c:273
#, c-format
-msgid "Unable to stat device %s: ERR=%s\n"
+msgid "Fatal socket error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:125
+#: src/tools/bsmtp.c:277
#, c-format
-msgid ""
-"%s is an unknown device type. Must be tape or directory\n"
-" or have RequiresMount=yes for DVD. st_mode=%x\n"
+msgid "Fatal connect error to %s: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:183
+#: src/tools/bsmtp.c:282
#, c-format
-msgid "Unable to stat mount point %s: ERR=%s\n"
+msgid "Fatal dup error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:188
-msgid ""
-"Mount and unmount commands must defined for a device which requires mount.\n"
+#: src/tools/bsmtp.c:286 src/tools/bsmtp.c:290
+#, c-format
+msgid "Fatal fdopen error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:191
-msgid "Write part command must be defined for a device which requires mount.\n"
+#: src/tools/dbcheck.c:158
+msgid ""
+"Warning skipping the additional parameters for working directory/dbname/user/"
+"password/host.\n"
msgstr ""
-#: src/stored/dev.c:197
+#: src/tools/dbcheck.c:174
#, c-format
-msgid "Block size %u on device %s is too large, using default %u\n"
+msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n"
msgstr ""
-#: src/stored/dev.c:202
+#: src/tools/dbcheck.c:176
#, c-format
-msgid "Max block size %u not multiple of device %s block size.\n"
+msgid "Error there is no Catalog section in the given config file [%s]\n"
msgstr ""
-#: src/stored/dev.c:212 src/stored/dev.c:230 src/stored/dev.c:236
-#: src/stored/stored_conf.c:550
-#, c-format
-msgid "Unable to init mutex: ERR=%s\n"
+#: src/tools/dbcheck.c:185
+msgid "Error no Director resource defined.\n"
msgstr ""
-#: src/stored/dev.c:218 src/stored/dev.c:224
-#, c-format
-msgid "Unable to init cond variable: ERR=%s\n"
+#: src/tools/dbcheck.c:199
+msgid "Wrong number of arguments.\n"
msgstr ""
-#: src/stored/dev.c:310
-msgid "Illegal mode given to open dev.\n"
+#: src/tools/dbcheck.c:204
+msgid "Working directory not supplied.\n"
msgstr ""
-#: src/stored/dev.c:372 src/stored/device.c:302
+#: src/tools/dbcheck.c:269
#, c-format
-msgid "Unable to open device %s: ERR=%s\n"
+msgid "Hello, this is the database check/correct program.\n"
msgstr ""
-#: src/stored/dev.c:430 src/stored/dev.c:489
+#: src/tools/dbcheck.c:271
#, c-format
-msgid "Could not open file device %s. No Volume name given.\n"
+msgid "Modify database is on."
msgstr ""
-#: src/stored/dev.c:455 src/stored/dev.c:569
+#: src/tools/dbcheck.c:273
#, c-format
-msgid "Could not open: %s, ERR=%s\n"
+msgid "Modify database is off."
msgstr ""
-#: src/stored/dev.c:514
+#: src/tools/dbcheck.c:275 src/tools/dbcheck.c:336
#, c-format
-msgid ""
-"The media in the device %s is not empty, please blank it before writing "
-"anything to it.\n"
+msgid " Verbose is on.\n"
msgstr ""
-#: src/stored/dev.c:530
+#: src/tools/dbcheck.c:277 src/tools/dbcheck.c:338
#, c-format
-msgid "There is no valid media in the device %s.\n"
+msgid " Verbose is off.\n"
msgstr ""
-#: src/stored/dev.c:537
+#: src/tools/dbcheck.c:279
#, c-format
-msgid "Could not mount device %s.\n"
+msgid "Please select the fuction you want to perform.\n"
msgstr ""
-#: src/stored/dev.c:595
+#: src/tools/dbcheck.c:283
#, c-format
-msgid "Could not fstat: %s, ERR=%s\n"
+msgid ""
+"\n"
+" 1) Toggle modify database flag\n"
+" 2) Toggle verbose flag\n"
+" 3) Repair bad Filename records\n"
+" 4) Repair bad Path records\n"
+" 5) Eliminate duplicate Filename records\n"
+" 6) Eliminate duplicate Path records\n"
+" 7) Eliminate orphaned Jobmedia records\n"
+" 8) Eliminate orphaned File records\n"
+" 9) Eliminate orphaned Path records\n"
+" 10) Eliminate orphaned Filename records\n"
+" 11) Eliminate orphaned FileSet records\n"
+" 12) Eliminate orphaned Client records\n"
+" 13) Eliminate orphaned Job records\n"
+" 14) Eliminate all Admin records\n"
+" 15) Eliminate all Restore records\n"
+" 16) All (3-15)\n"
+" 17) Quit\n"
msgstr ""
-#: src/stored/dev.c:648
+#: src/tools/dbcheck.c:302
#, c-format
-msgid "Bad call to rewind_dev. Device %s not open\n"
+msgid ""
+"\n"
+" 1) Toggle modify database flag\n"
+" 2) Toggle verbose flag\n"
+" 3) Check for bad Filename records\n"
+" 4) Check for bad Path records\n"
+" 5) Check for duplicate Filename records\n"
+" 6) Check for duplicate Path records\n"
+" 7) Check for orphaned Jobmedia records\n"
+" 8) Check for orphaned File records\n"
+" 9) Check for orphaned Path records\n"
+" 10) Check for orphaned Filename records\n"
+" 11) Check for orphaned FileSet records\n"
+" 12) Check for orphaned Client records\n"
+" 13) Check for orphaned Job records\n"
+" 14) Check for all Admin records\n"
+" 15) Check for all Restore records\n"
+" 16) All (3-15)\n"
+" 17) Quit\n"
msgstr ""
-#: src/stored/dev.c:677
+#: src/tools/dbcheck.c:322
+msgid "Select function number: "
+msgstr ""
+
+#: src/tools/dbcheck.c:329
#, c-format
-msgid "Rewind error on %s. ERR=%s.\n"
+msgid "Database will be modified.\n"
msgstr ""
-#: src/stored/dev.c:687 src/stored/dev.c:800 src/stored/dev.c:937
-#: src/stored/dev.c:1462
+#: src/tools/dbcheck.c:331
#, c-format
-msgid "lseek_dev error on %s. ERR=%s.\n"
+msgid "Database will NOT be modified.\n"
msgstr ""
-#: src/stored/dev.c:770
+#: src/tools/dbcheck.c:421
#, c-format
-msgid "Bad call to eod_dev. Device %s not open\n"
+msgid "JobId=%s Name=\"%s\" StartTime=%s\n"
msgstr ""
-#: src/stored/dev.c:836
+#: src/tools/dbcheck.c:429
#, c-format
-msgid "ioctl MTEOM error on %s. ERR=%s.\n"
+msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:844 src/stored/dev.c:977
+#: src/tools/dbcheck.c:436
#, c-format
-msgid "ioctl MTIOCGET error on %s. ERR=%s.\n"
+msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:923
-msgid "Bad device call. Device not open\n"
+#: src/tools/dbcheck.c:443
+#, c-format
+msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n"
msgstr ""
-#: src/stored/dev.c:1046
-msgid "Bad call to load_dev. Device not open\n"
+#: src/tools/dbcheck.c:450
+#, c-format
+msgid "Orphaned ClientId=%s Name=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:1057 src/stored/dev.c:1070
+#: src/tools/dbcheck.c:503
#, c-format
-msgid "ioctl MTLOAD error on %s. ERR=%s.\n"
+msgid "Deleting: %s\n"
msgstr ""
-#: src/stored/dev.c:1089
-msgid "Bad call to offline_dev. Device not open\n"
+#: src/tools/dbcheck.c:577
+#, c-format
+msgid "Checking for duplicate Filename entries.\n"
msgstr ""
-#: src/stored/dev.c:1112
+#: src/tools/dbcheck.c:586
#, c-format
-msgid "ioctl MTOFFL error on %s. ERR=%s.\n"
+msgid "Found %d duplicate Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1153
-msgid "Bad call to fsf_dev. Device not open\n"
+#: src/tools/dbcheck.c:587
+msgid "Print the list? (yes/no): "
msgstr ""
-#: src/stored/dev.c:1163 src/stored/dev.c:1284
+#: src/tools/dbcheck.c:603 src/tools/dbcheck.c:657
#, c-format
-msgid "Device %s at End of Tape.\n"
+msgid "Found %d for: %s\n"
msgstr ""
-#: src/stored/dev.c:1188 src/stored/dev.c:1264
+#: src/tools/dbcheck.c:630
#, c-format
-msgid "ioctl MTFSF error on %s. ERR=%s.\n"
+msgid "Checking for duplicate Path entries.\n"
msgstr ""
-#: src/stored/dev.c:1234
+#: src/tools/dbcheck.c:640
#, c-format
-msgid "read error on %s. ERR=%s.\n"
+msgid "Found %d duplicate Path records.\n"
msgstr ""
-#: src/stored/dev.c:1313
-msgid "Bad call to bsf_dev. Device not open\n"
+#: src/tools/dbcheck.c:641 src/tools/dbcheck.c:691 src/tools/dbcheck.c:723
+#: src/tools/dbcheck.c:755 src/tools/dbcheck.c:783 src/tools/dbcheck.c:811
+#: src/tools/dbcheck.c:849 src/tools/dbcheck.c:887 src/tools/dbcheck.c:918
+#: src/tools/dbcheck.c:948 src/tools/dbcheck.c:982 src/tools/dbcheck.c:1040
+msgid "Print them? (yes/no): "
msgstr ""
-#: src/stored/dev.c:1319
+#: src/tools/dbcheck.c:683
#, c-format
-msgid "Device %s cannot BSF because it is not a tape.\n"
+msgid "Checking for orphaned JobMedia entries.\n"
msgstr ""
-#: src/stored/dev.c:1334
+#: src/tools/dbcheck.c:690
#, c-format
-msgid "ioctl MTBSF error on %s. ERR=%s.\n"
+msgid "Found %d orphaned JobMedia records.\n"
msgstr ""
-#: src/stored/dev.c:1354
-msgid "Bad call to fsr. Device not open\n"
-msgstr ""
-
-#: src/stored/dev.c:1363
+#: src/tools/dbcheck.c:703
#, c-format
-msgid "ioctl MTFSR not permitted on %s.\n"
+msgid "Deleting %d orphaned JobMedia records.\n"
msgstr ""
-#: src/stored/dev.c:1391
+#: src/tools/dbcheck.c:712
#, c-format
-msgid "ioctl MTFSR %d error on %s. ERR=%s.\n"
+msgid "Checking for orphaned File entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1411
-msgid "Bad call to bsr_dev. Device not open\n"
+#: src/tools/dbcheck.c:722
+#, c-format
+msgid "Found %d orphaned File records.\n"
msgstr ""
-#: src/stored/dev.c:1421
+#: src/tools/dbcheck.c:735
#, c-format
-msgid "ioctl MTBSR not permitted on %s.\n"
+msgid "Deleting %d orphaned File records.\n"
msgstr ""
-#: src/stored/dev.c:1434
+#: src/tools/dbcheck.c:744
#, c-format
-msgid "ioctl MTBSR error on %s. ERR=%s.\n"
+msgid "Checking for orphaned Path entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1451
-msgid "Bad call to reposition_dev. Device not open\n"
+#: src/tools/dbcheck.c:754
+#, c-format
+msgid "Found %d orphaned Path records.\n"
msgstr ""
-#: src/stored/dev.c:1519
-msgid "Bad call to weof_dev. Device not open\n"
+#: src/tools/dbcheck.c:763
+#, c-format
+msgid "Deleting %d orphaned Path records.\n"
msgstr ""
-#: src/stored/dev.c:1529
-msgid "Attempt to WEOF on non-appendable Volume\n"
+#: src/tools/dbcheck.c:772
+#, c-format
+msgid "Checking for orphaned Filename entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1546
+#: src/tools/dbcheck.c:782
#, c-format
-msgid "ioctl MTWEOF error on %s. ERR=%s.\n"
+msgid "Found %d orphaned Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1641
+#: src/tools/dbcheck.c:791
#, c-format
-msgid "I/O function \"%s\" not supported on this device.\n"
+msgid "Deleting %d orphaned Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1779 src/stored/dvd.c:667
+#: src/tools/dbcheck.c:800
#, c-format
-msgid "Unable to truncate device %s. ERR=%s\n"
+msgid "Checking for orphaned FileSet entries. This takes some time!\n"
msgstr ""
-#: src/stored/dev.c:1818
-msgid "Bad call to term_dev. Device not open\n"
+#: src/tools/dbcheck.c:810
+#, c-format
+msgid "Found %d orphaned FileSet records.\n"
msgstr ""
-#: src/stored/device.c:105
+#: src/tools/dbcheck.c:822
#, c-format
-msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n"
+msgid "Deleting %d orphaned FileSet records.\n"
msgstr ""
-#: src/stored/device.c:119
+#: src/tools/dbcheck.c:831
#, c-format
-msgid "New volume \"%s\" mounted on device %s at %s.\n"
+msgid "Checking for orphaned Client entries.\n"
msgstr ""
-#: src/stored/device.c:328
-msgid "Bad call to force_close_dev. Device not open\n"
+#: src/tools/dbcheck.c:848
+#, c-format
+msgid "Found %d orphaned Client records.\n"
msgstr ""
-#: src/stored/device.c:373
+#: src/tools/dbcheck.c:860
#, c-format
-msgid "pthread_cond_wait failure. ERR=%s\n"
+msgid "Deleting %d orphaned Client records.\n"
msgstr ""
-#: src/stored/dircmd.c:140
-msgid "Connection request failed.\n"
+#: src/tools/dbcheck.c:869
+#, c-format
+msgid "Checking for orphaned Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:149
+#: src/tools/dbcheck.c:886
#, c-format
-msgid "Invalid connection. Len=%d\n"
+msgid "Found %d orphaned Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:262
+#: src/tools/dbcheck.c:898
#, c-format
-msgid "3902 Job %s not found.\n"
+msgid "Deleting %d orphaned Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:279
+#: src/tools/dbcheck.c:908
#, c-format
-msgid "3000 Job %s marked to be canceled.\n"
+msgid "Checking for Admin Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:283
-msgid "3903 Error scanning cancel command.\n"
+#: src/tools/dbcheck.c:917
+#, c-format
+msgid "Found %d Admin Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:352 src/stored/dircmd.c:648 src/stored/dircmd.c:712
-#: src/stored/dircmd.c:770 src/stored/dircmd.c:822 src/stored/dircmd.c:860
+#: src/tools/dbcheck.c:929
#, c-format
-msgid "3999 Device \"%s\" not found\n"
+msgid "Deleting %d Admin Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:357
+#: src/tools/dbcheck.c:938
#, c-format
-msgid "3903 Error scanning label command: %s\n"
+msgid "Checking for Restore Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:401
+#: src/tools/dbcheck.c:947
#, c-format
-msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n"
+msgid "Found %d Restore Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:407
-msgid "3921 Wrong volume mounted.\n"
+#: src/tools/dbcheck.c:959
+#, c-format
+msgid "Deleting %d Restore Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:411
-msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n"
+#: src/tools/dbcheck.c:972
+#, c-format
+msgid "Checking for Filenames with a trailing slash\n"
msgstr ""
-#: src/stored/dircmd.c:419 src/stored/dircmd.c:428
+#: src/tools/dbcheck.c:981
#, c-format
-msgid "3912 Failed to label Volume: ERR=%s\n"
+msgid "Found %d bad Filename records.\n"
msgstr ""
-#: src/stored/dircmd.c:431
+#: src/tools/dbcheck.c:995 src/tools/dbcheck.c:1053
#, c-format
-msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n"
+msgid "Reparing %d bad Filename records.\n"
msgstr ""
-#: src/stored/dircmd.c:464
+#: src/tools/dbcheck.c:1030
#, c-format
-msgid "3001 Mounted Volume: %s\n"
+msgid "Checking for Paths without a trailing slash\n"
msgstr ""
-#: src/stored/dircmd.c:468 src/stored/dircmd.c:896
+#: src/tools/dbcheck.c:1039
#, c-format
-msgid ""
-"3902 Cannot mount Volume on Storage Device %s because:\n"
-"%s"
+msgid "Found %d bad Path records.\n"
msgstr ""
-#: src/stored/dircmd.c:491 src/stored/reserve.c:518
+#: src/tools/testfind.c:49
#, c-format
msgid ""
"\n"
-" Device \"%s\" requested by DIR could not be opened or does not exist.\n"
+"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n"
+" -a print extended attributes (Win32 debug)\n"
+" -dnn set debug level to nn\n"
+" -e specify file of exclude patterns\n"
+" -i specify file of include patterns\n"
+" - read pattern(s) from stdin\n"
+" -? print this message.\n"
+"\n"
+"Patterns are used for file inclusion -- normally directories.\n"
+"Debug level >= 1 prints each file found.\n"
+"Debug level >= 10 prints path/file for catalog.\n"
+"Errors are always printed.\n"
+"Files/paths truncated is the number of files/paths with len > 255.\n"
+"Truncation is only in the catalog.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:512 src/stored/reserve.c:514
+#: src/tools/testfind.c:134 src/tools/testls.c:130
#, c-format
-msgid ""
-"\n"
-" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or "
-"does not exist.\n"
+msgid "Could not open include file: %s\n"
msgstr ""
-#: src/stored/dircmd.c:568 src/stored/dircmd.c:616
+#: src/tools/testfind.c:147 src/tools/testls.c:143
#, c-format
-msgid "3901 open device failed: ERR=%s\n"
+msgid "Could not open exclude file: %s\n"
msgstr ""
-#: src/stored/dircmd.c:583 src/stored/dircmd.c:607
+#: src/tools/testfind.c:160
#, c-format
-msgid "3001 Device %s is mounted with Volume \"%s\"\n"
+msgid ""
+"Total files : %d\n"
+"Max file length: %d\n"
+"Max path length: %d\n"
+"Files truncated: %d\n"
+"Paths truncated: %d\n"
+"Hard links : %d\n"
msgstr ""
-#: src/stored/dircmd.c:586 src/stored/dircmd.c:610 src/stored/dircmd.c:625
+#: src/tools/testfind.c:199
#, c-format
-msgid ""
-"3905 Device %s open but no Bacula volume is mounted.\n"
-"If this is not a blank tape, try unmounting and remounting the Volume.\n"
+msgid "Reg: %s\n"
+msgstr ""
+
+#: src/tools/testfind.c:220
+msgid "\t[will not descend: recursion turned off]"
+msgstr ""
+
+#: src/tools/testfind.c:222
+msgid "\t[will not descend: file system change not allowed]"
+msgstr ""
+
+#: src/tools/testfind.c:224
+msgid "\t[will not descend: disallowed file system]"
msgstr ""
-#: src/stored/dircmd.c:595
+#: src/tools/testfind.c:240 src/tools/testls.c:178
#, c-format
-msgid "3001 Device %s is doing acquire.\n"
+msgid "Err: Could not access %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:600 src/stored/dircmd.c:690
+#: src/tools/testfind.c:243 src/tools/testls.c:181
#, c-format
-msgid "3903 Device %s is being labeled.\n"
+msgid "Err: Could not follow ff->link %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:622
+#: src/tools/testfind.c:246 src/tools/testls.c:184
#, c-format
-msgid "3001 Device %s is already mounted with Volume \"%s\"\n"
+msgid "Err: Could not stat %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:631
+#: src/tools/testfind.c:249 src/tools/testls.c:187
#, c-format
-msgid "3002 Device %s is mounted.\n"
+msgid "Skip: File not saved. No change. %s\n"
msgstr ""
-#: src/stored/dircmd.c:637
+#: src/tools/testfind.c:252 src/tools/testls.c:190
#, c-format
-msgid "3906 File device %s is always mounted.\n"
+msgid "Err: Attempt to backup archive. Not saved. %s\n"
msgstr ""
-#: src/stored/dircmd.c:643
+#: src/tools/testfind.c:255 src/tools/testls.c:199
#, c-format
-msgid "3905 Bizarre wait state %d\n"
+msgid "Err: Could not open directory %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:652
+#: src/tools/testfind.c:258 src/tools/testls.c:202
#, c-format
-msgid "3909 Error scanning mount command: %s\n"
+msgid "Err: Unknown file ff->type %d: %s\n"
msgstr ""
-#: src/stored/dircmd.c:673
+#: src/tools/testfind.c:308
#, c-format
-msgid "3901 Device %s is already unmounted.\n"
+msgid "===== Filename truncated to 255 chars: %s\n"
msgstr ""
-#: src/stored/dircmd.c:682
+#: src/tools/testfind.c:325
#, c-format
-msgid "3001 Device %s unmounted.\n"
+msgid "========== Path name truncated to 255 chars: %s\n"
msgstr ""
-#: src/stored/dircmd.c:686
+#: src/tools/testfind.c:334
#, c-format
-msgid "3902 Device %s is busy in acquire.\n"
+msgid "========== Path length is zero. File=%s\n"
msgstr ""
-#: src/stored/dircmd.c:707
+#: src/tools/testfind.c:337
#, c-format
-msgid "3002 Device %s unmounted.\n"
+msgid "Path: %s\n"
msgstr ""
-#: src/stored/dircmd.c:717
+#: src/tools/testls.c:45
#, c-format
-msgid "3907 Error scanning unmount command: %s\n"
+msgid ""
+"\n"
+"Usage: testls [-d debug_level] [-] [pattern1 ...]\n"
+" -a print extended attributes (Win32 debug)\n"
+" -dnn set debug level to nn\n"
+" -e specify file of exclude patterns\n"
+" -i specify file of include patterns\n"
+" - read pattern(s) from stdin\n"
+" -? print this message.\n"
+"\n"
+"Patterns are file inclusion -- normally directories.\n"
+"Debug level >= 1 prints each file found.\n"
+"Debug level >= 10 prints path/file for catalog.\n"
+"Errors always printed.\n"
+"Files/paths truncated is number with len > 255.\n"
+"Truncation is only in catalog.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:742
+#: src/tools/testls.c:193
#, c-format
-msgid "3911 Device %s already released.\n"
+msgid "Recursion turned off. Directory not entered. %s\n"
msgstr ""
-#: src/stored/dircmd.c:749
+#: src/tools/testls.c:196
#, c-format
-msgid "3912 Device %s waiting for mount.\n"
+msgid "Skip: File system change prohibited. Directory not entered. %s\n"
msgstr ""
-#: src/stored/dircmd.c:753
+#: src/tools/fstype.c:34
#, c-format
-msgid "3913 Device %s is busy in acquire.\n"
+msgid ""
+"\n"
+"Usage: fstype [-d debug_level] path ...\n"
+"\n"
+" Print the file system type a given file/directory is on.\n"
+" The following options are supported:\n"
+"\n"
+" -v print both path and file system type.\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:757
+#: src/tools/fstype.c:86
#, c-format
-msgid "3914 Device %s is being labeled.\n"
+msgid "%s: unknown\n"
msgstr ""
-#: src/stored/dircmd.c:765
-#, c-format
-msgid "3012 Device %s released.\n"
+#: src/tray-monitor/authenticate.c:78
+msgid ""
+"Director authorization problem.\n"
+"Most likely the passwords do not agree.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:775
-#, c-format
-msgid "3917 Error scanning release command: %s\n"
+#: src/tray-monitor/authenticate.c:127
+msgid ""
+"Director and Storage daemon passwords or names not the same.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:808
-#, c-format
-msgid "3995 Device %s is not an autochanger.\n"
+#: src/tray-monitor/authenticate.c:172
+msgid ""
+"Director and File daemon passwords or names not the same.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:826
+#: src/tray-monitor/tray-monitor.c:102
#, c-format
-msgid "3908 Error scanning autocharger list/slots command: %s\n"
+msgid ""
+"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n"
+"Written by Nicolas Boichat (2004)\n"
+"\n"
+"Version: %s (%s) %s %s %s\n"
+"\n"
+"Usage: tray-monitor [-c config_file] [-d debug_level]\n"
+" -c <file> set configuration file to file\n"
+" -dnn set debug level to nn\n"
+" -t test - read configuration and exit\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:864
+#: src/tray-monitor/tray-monitor.c:251
#, c-format
-msgid "3909 Error scanning readlabel command: %s\n"
+msgid ""
+"Error: %d Monitor resource defined in %s. You must define one and only one "
+"Monitor resource.\n"
msgstr ""
-#: src/stored/dircmd.c:892
+#: src/tray-monitor/tray-monitor.c:282
#, c-format
-msgid "3001 Volume=%s Slot=%d\n"
+msgid ""
+"No Client, Storage nor Director resource defined in %s\n"
+"Without that I don't how to get status from the File, Storage or Director "
+"Daemon :-(\n"
msgstr ""
-#: src/stored/dircmd.c:921
+#: src/tray-monitor/tray-monitor.c:304
#, c-format
-msgid "3910 Unable to open device %s: ERR=%s\n"
+msgid ""
+"Invalid refresh interval defined in %s\n"
+"This value must be greater or equal to 1 second and less or equal to 10 "
+"minutes (read value: %d).\n"
msgstr ""
-#: src/stored/dircmd.c:931
-#, c-format
-msgid "3911 Device %s is busy reading.\n"
+#: src/tray-monitor/tray-monitor.c:319
+msgid "Open status window..."
msgstr ""
-#: src/stored/dircmd.c:934
-#, c-format
-msgid "3912 Device %s is busy with %d writer(s).\n"
+#: src/tray-monitor/tray-monitor.c:325
+msgid "Exit"
msgstr ""
-#: src/stored/fd_cmds.c:340
-msgid "Error parsing bootstrap file.\n"
+#: src/tray-monitor/tray-monitor.c:337
+msgid "Bacula tray monitor"
msgstr ""
-#: src/stored/job.c:79
-#, c-format
-msgid "Bad Job Command from Director: %s\n"
+#: src/tray-monitor/tray-monitor.c:362
+msgid " (DIR)"
msgstr ""
-#: src/stored/job.c:189
-#, c-format
-msgid "Job name not found: %s\n"
+#: src/tray-monitor/tray-monitor.c:366
+msgid " (FD)"
msgstr ""
-#: src/stored/job.c:211
-msgid "Unable to authenticate File daemon\n"
+#: src/tray-monitor/tray-monitor.c:370
+msgid " (SD)"
msgstr ""
-#: src/stored/job.c:338
-msgid "In free_jcr(), but still attached to device!!!!\n"
+#: src/tray-monitor/tray-monitor.c:383
+msgid "Unknown status."
msgstr ""
-#: src/stored/label.c:74
-msgid "BAD call to read_dev_volume_label\n"
+#: src/tray-monitor/tray-monitor.c:424
+msgid "Refresh interval in seconds: "
msgstr ""
-#: src/stored/label.c:79 src/stored/label.c:120 src/stored/label.c:208
+#: src/tray-monitor/tray-monitor.c:432
+msgid "Refresh now"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:436
+msgid "About"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:440
+msgid "Close"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:460
#, c-format
-msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n"
+msgid "Disconnecting from Director %s:%d\n"
msgstr ""
-#: src/stored/label.c:102
+#: src/tray-monitor/tray-monitor.c:463
#, c-format
-msgid "Couldn't rewind device %s: ERR=%s\n"
+msgid "Disconnecting from Client %s:%d\n"
msgstr ""
-#: src/stored/label.c:140
+#: src/tray-monitor/tray-monitor.c:466
#, c-format
+msgid "Disconnecting from Storage %s:%d\n"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:502 src/tray-monitor/tray-monitor.c:512
+msgid "Bacula Tray Monitor"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:503 src/tray-monitor/tray-monitor.c:513
msgid ""
-"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s"
+"Copyright (C) 2004 Kern Sibbald and John Walker\n"
+"Written by Nicolas Boichat\n"
msgstr ""
-#: src/stored/label.c:145
-msgid "Could not read Volume label from block.\n"
+#: src/tray-monitor/tray-monitor.c:505
+msgid "Version"
msgstr ""
-#: src/stored/label.c:148
+#: src/tray-monitor/tray-monitor.c:509
#, c-format
-msgid "Could not unserialize Volume label: ERR=%s\n"
+msgid ""
+"%s\n"
+"\n"
+"%s\n"
+"%s %s (%s) %s %s %s"
msgstr ""
-#: src/stored/label.c:153
-#, c-format
-msgid "Volume Header Id bad: %s\n"
+#: src/tray-monitor/tray-monitor.c:515
+msgid "Version:"
msgstr ""
-#: src/stored/label.c:180
+#: src/tray-monitor/tray-monitor.c:583
#, c-format
-msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n"
+msgid "Error, currentitem is not a Client or a Storage..\n"
msgstr ""
-#: src/stored/label.c:191
+#: src/tray-monitor/tray-monitor.c:656
#, c-format
-msgid "Volume on %s has bad Bacula label type: %x\n"
+msgid ""
+"Current job: %s\n"
+"Last job: %s"
msgstr ""
-#: src/stored/label.c:272
+#: src/tray-monitor/tray-monitor.c:668
#, c-format
-msgid "Cannot write Volume label to block for device %s\n"
+msgid " (%d errors)"
msgstr ""
-#: src/stored/label.c:393
+#: src/tray-monitor/tray-monitor.c:671
#, c-format
-msgid "Rewind error on device %s: ERR=%s\n"
+msgid " (%d error)"
msgstr ""
-#: src/stored/label.c:398
-#, c-format
-msgid "Truncate error on device %s: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:708
+msgid "No current job."
msgstr ""
-#: src/stored/label.c:420
-#, c-format
-msgid "Unable to write device %s: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:711
+msgid "No last job."
msgstr ""
-#: src/stored/label.c:448
-#, c-format
-msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n"
+#: src/tray-monitor/tray-monitor.c:719
+msgid "Job status: Created"
msgstr ""
-#: src/stored/label.c:451
-#, c-format
-msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n"
+#: src/tray-monitor/tray-monitor.c:724
+msgid "Job status: Running"
msgstr ""
-#: src/stored/label.c:648
-#, c-format
-msgid "Bad session label = %d\n"
+#: src/tray-monitor/tray-monitor.c:728
+msgid "Job status: Blocked"
msgstr ""
-#: src/stored/label.c:666 src/stored/label.c:673
-#, c-format
-msgid "Error writing Session label to %s: %s\n"
+#: src/tray-monitor/tray-monitor.c:733
+msgid "Job status: Terminated"
msgstr ""
-#: src/stored/label.c:707
-#, c-format
-msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n"
+#: src/tray-monitor/tray-monitor.c:738
+msgid "Job status: Terminated in error"
msgstr ""
-#: src/stored/label.c:929
-#, c-format
-msgid "Date written : %s\n"
+#: src/tray-monitor/tray-monitor.c:744
+msgid "Job status: Error"
msgstr ""
-#: src/stored/label.c:934
-#, c-format
-msgid "Date written : %04d-%02d-%02d at %02d:%02d\n"
+#: src/tray-monitor/tray-monitor.c:748
+msgid "Job status: Fatal error"
msgstr ""
-#: src/stored/label.c:954
-msgid "Fresh Volume"
+#: src/tray-monitor/tray-monitor.c:753
+msgid "Job status: Verify differences"
msgstr ""
-#: src/stored/label.c:960
-msgid "Begin Job Session"
+#: src/tray-monitor/tray-monitor.c:758
+msgid "Job status: Canceled"
msgstr ""
-#: src/stored/label.c:963
-msgid "End Job Session"
+#: src/tray-monitor/tray-monitor.c:763
+msgid "Job status: Waiting on File daemon"
msgstr ""
-#: src/stored/label.c:966
-msgid "End of Media"
+#: src/tray-monitor/tray-monitor.c:768
+msgid "Job status: Waiting on the Storage daemon"
msgstr ""
-#: src/stored/label.c:972
-msgid "Unknown"
+#: src/tray-monitor/tray-monitor.c:773
+msgid "Job status: Waiting for new media"
msgstr ""
-#: src/stored/label.c:994
-msgid "End of physical tape.\n"
+#: src/tray-monitor/tray-monitor.c:778
+msgid "Job status: Waiting for Mount"
msgstr ""
-#: src/stored/mount.c:197 src/stored/mount.c:294
-#, c-format
-msgid "Volume \"%s\" not on device %s.\n"
+#: src/tray-monitor/tray-monitor.c:783
+msgid "Job status: Waiting for storage resource"
msgstr ""
-#: src/stored/mount.c:230
+#: src/tray-monitor/tray-monitor.c:788
+msgid "Job status: Waiting for job resource"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:793
+msgid "Job status: Waiting for Client resource"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:798
+msgid "Job status: Waiting for maximum jobs"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:803
+msgid "Job status: Waiting for start time"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:808
+msgid "Job status: Waiting for higher priority jobs to finish"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:813
#, c-format
-msgid ""
-"Director wanted Volume \"%s\".\n"
-" Current Volume \"%s\" not acceptable because:\n"
-" %s"
+msgid "Unknown job status %c."
msgstr ""
-#: src/stored/mount.c:284
+#: src/tray-monitor/tray-monitor.c:814
#, c-format
-msgid "Labeled new Volume \"%s\" on device %s.\n"
+msgid "Job status: Unknown(%c)"
msgstr ""
-#: src/stored/mount.c:289
+#: src/tray-monitor/tray-monitor.c:821
#, c-format
-msgid "Warning device %s not configured to autolabel Volumes.\n"
+msgid "Bad scan : '%s' %d\n"
msgstr ""
-#: src/stored/mount.c:340
+#: src/tray-monitor/tray-monitor.c:859
#, c-format
-msgid "Volume \"%s\" previously written, moving to end of data.\n"
+msgid "Connecting to Director %s:%d"
msgstr ""
-#: src/stored/mount.c:343
+#: src/tray-monitor/tray-monitor.c:865
#, c-format
-msgid "Unable to position to end of data on device %s: ERR=%s\n"
+msgid "Connecting to Client %s:%d\n"
msgstr ""
-#: src/stored/mount.c:355
+#: src/tray-monitor/tray-monitor.c:866
#, c-format
-msgid "Ready to append to end of Volume \"%s\" at file=%d.\n"
+msgid "Connecting to Client %s:%d"
msgstr ""
-#: src/stored/mount.c:358
+#: src/tray-monitor/tray-monitor.c:872
#, c-format
-msgid ""
-"I cannot write on Volume \"%s\" because:\n"
-"The number of files mismatch! Volume=%u Catalog=%u\n"
+msgid "Connecting to Storage %s:%d\n"
msgstr ""
-#: src/stored/mount.c:411
+#: src/tray-monitor/tray-monitor.c:873
#, c-format
-msgid "Marking Volume \"%s\" in Error in Catalog.\n"
+msgid "Connecting to Storage %s:%d"
msgstr ""
-#: src/stored/mount.c:427
+#: src/tray-monitor/tray-monitor.c:878 src/tray-monitor/tray-monitor.c:916
#, c-format
-msgid ""
-"Autochanger Volume \"%s\" not found in slot %d.\n"
-" Setting InChanger to zero in catalog.\n"
+msgid "Error, currentitem is not a Client, a Storage or a Director..\n"
msgstr ""
-#: src/stored/parse_bsr.c:104 src/stored/parse_bsr.c:108
-#, c-format
-msgid ""
-"Bootstrap file error: %s\n"
-" : Line %d, col %d of file %s\n"
-"%s\n"
+#: src/tray-monitor/tray-monitor.c:884
+msgid "Cannot connect to daemon.\n"
msgstr ""
-#: src/stored/parse_bsr.c:130
-#, c-format
-msgid "Cannot open bootstrap file %s: %s\n"
+#: src/tray-monitor/tray-monitor.c:885
+msgid "Cannot connect to daemon."
msgstr ""
-#: src/stored/parse_bsr.c:260
+#: src/tray-monitor/tray-monitor.c:897
#, c-format
-msgid "MediaType %s in bsr at inappropriate place.\n"
+msgid "Authentication error : %s"
msgstr ""
-#: src/stored/read.c:55
-msgid "No Volume names found for restore.\n"
+#: src/tray-monitor/tray-monitor.c:904
+msgid "Opened connection with Director daemon.\n"
msgstr ""
-#: src/stored/read.c:110 src/stored/read.c:125
-#, c-format
-msgid "Error sending to File daemon. ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:905
+msgid "Opened connection with Director daemon."
msgstr ""
-#: src/stored/read_record.c:302
-#, c-format
-msgid "Forward spacing to file:block %u:%u.\n"
+#: src/tray-monitor/tray-monitor.c:908
+msgid "Opened connection with File daemon.\n"
msgstr ""
-#: src/stored/spool.c:91
-msgid "Spooling data ...\n"
+#: src/tray-monitor/tray-monitor.c:909
+msgid "Opened connection with File daemon."
msgstr ""
-#: src/stored/spool.c:150
-#, c-format
-msgid "Open data spool file %s failed: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:912
+msgid "Opened connection with Storage daemon.\n"
msgstr ""
-#: src/stored/spool.c:198
-#, c-format
-msgid "%s spooled data to Volume. Despooling %s bytes ...\n"
+#: src/tray-monitor/tray-monitor.c:913
+msgid "Opened connection with Storage daemon."
msgstr ""
-#: src/stored/spool.c:252 src/stored/spool.c:426 src/stored/spool.c:464
-#, c-format
-msgid "Ftruncate spool file failed: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:948
+msgid "<< Error: BNET_PROMPT signal received. >>\n"
msgstr ""
-#: src/stored/spool.c:303
-#, c-format
-msgid "Spool header read error. ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:953 src/wx-console/console_thread.cpp:442
+msgid "<< Heartbeat signal received, answered. >>\n"
msgstr ""
-#: src/stored/spool.c:307
+#: src/tray-monitor/tray-monitor.c:957
#, c-format
-msgid "Spool header read error. Wanted %u bytes, got %d\n"
+msgid "<< Unexpected signal received : %s >>\n"
msgstr ""
-#: src/stored/spool.c:314
-#, c-format
-msgid "Spool block too big. Max %u bytes, got %u\n"
+#: src/tray-monitor/tray-monitor.c:962
+msgid "<ERROR>\n"
msgstr ""
-#: src/stored/spool.c:320
-#, c-format
-msgid "Spool data read error. Wanted %u bytes, got %d\n"
+#: src/tray-monitor/tray-monitor.c:966
+msgid "Error : BNET_HARDEOF or BNET_ERROR"
msgstr ""
-#: src/stored/spool.c:377
-msgid "User specified spool size reached.\n"
+#: src/tray-monitor/tray-monitor.c:972
+msgid "<STOP>\n"
msgstr ""
-#: src/stored/spool.c:387
-msgid "Spooling data again ...\n"
+#: src/tray-monitor/tray-monitor.c:976
+msgid "Error : Connection closed."
msgstr ""
-#: src/stored/spool.c:418
+#: src/tray-monitor/tray_conf.c:161
#, c-format
-msgid "Error writing header to spool file. ERR=%s\n"
+msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n"
msgstr ""
-#: src/stored/spool.c:432 src/stored/spool.c:470
-msgid "Fatal despooling error."
+#: src/tray-monitor/tray_conf.c:167
+#, c-format
+msgid "Director: name=%s address=%s FDport=%d\n"
msgstr ""
-#: src/stored/spool.c:439
-msgid "Retrying after header spooling error failed.\n"
+#: src/tray-monitor/tray_conf.c:171
+#, c-format
+msgid "Client: name=%s address=%s FDport=%d\n"
msgstr ""
-#: src/stored/spool.c:453
+#: src/tray-monitor/tray_conf.c:175
#, c-format
-msgid "Error writing data to spool file. ERR=%s\n"
+msgid "Storage: name=%s address=%s SDport=%d\n"
msgstr ""
-#: src/stored/spool.c:480
-msgid "Retrying after data spooling error failed.\n"
+#: src/wx-console/authenticate.c:126
+msgid "Bad response to Hello command: ERR="
msgstr ""
-#: src/stored/spool.c:535 src/stored/spool.c:542
+#: src/baconfig.h:52
#, c-format
-msgid "Fseek on attributes file failed: ERR=%s\n"
+msgid "Failed ASSERT: %s\n"
msgstr ""
-#: src/stored/spool.c:552
-#, c-format
-msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n"
+#: src/baconfig.h:59
+msgid "*None*"
msgstr ""
-#: src/stored/spool.c:579
+#: src/wx-console/console_thread.cpp:100
#, c-format
-msgid "fopen attr spool file %s failed: ERR=%s\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Director \"%s\" in config file.\n"
+" At least one CA certificate store is required.\n"
msgstr ""
-#: src/stored/status.c:93
+#: src/wx-console/console_thread.cpp:109
msgid ""
-"\n"
-"Device status:\n"
+"No Director resource defined in config file.\n"
+"Without that I don't how to speak to the Director :-(\n"
msgstr ""
-#: src/stored/status.c:95
+#: src/wx-console/console_thread.cpp:129
#, c-format
-msgid "Autochanger \"%s\" with devices:\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Console \"%s\" in config file.\n"
msgstr ""
-#: src/stored/status.c:109
-#, c-format
-msgid "Device %s is mounted with Volume \"%s\"\n"
+#: src/wx-console/console_thread.cpp:151
+msgid "Error while initializing windows sockets...\n"
msgstr ""
-#: src/stored/status.c:112
-#, c-format
-msgid "Device %s open but no Bacula volume is mounted.\n"
+#: src/wx-console/console_thread.cpp:166
+msgid "Error while cleaning up windows sockets...\n"
msgstr ""
-#: src/stored/status.c:122
-#, c-format
-msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n"
+#: src/wx-console/console_thread.cpp:204
+msgid "Error while initializing library."
msgstr ""
-#: src/stored/status.c:136
-#, c-format
-msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n"
+#: src/wx-console/console_thread.cpp:234
+msgid "Please correct configuration file.\n"
msgstr ""
-#: src/stored/status.c:141
-#, c-format
-msgid " Positioned at File=%s Block=%s\n"
+#: src/wx-console/console_thread.cpp:267
+msgid "Error : Library not initialized\n"
msgstr ""
-#: src/stored/status.c:147
-#, c-format
-msgid "Device %s is not open or does not exist.\n"
+#: src/wx-console/console_thread.cpp:278
+msgid "Error : No configuration file loaded\n"
msgstr ""
-#: src/stored/status.c:149
-#, c-format
-msgid "Device \"%s\" is not open or does not exist.\n"
+#: src/wx-console/console_thread.cpp:288
+msgid "Connecting...\n"
msgstr ""
-#: src/stored/status.c:184
-msgid " Device is BLOCKED. User unmounted.\n"
+#: src/wx-console/console_thread.cpp:304
+msgid "Error : No director defined in config file.\n"
msgstr ""
-#: src/stored/status.c:187
-msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n"
+#: src/wx-console/console_thread.cpp:316
+msgid "Multiple directors found in your config file.\n"
msgstr ""
-#: src/stored/status.c:191
+#: src/wx-console/console_thread.cpp:325
#, c-format
-msgid " Device is BLOCKED waiting for mount of volume \"%s\".\n"
+msgid "Please choose a director (1-%s): "
msgstr ""
-#: src/stored/status.c:194
-msgid " Device is BLOCKED waiting for media.\n"
+#: src/wx-console/console_thread.cpp:397
+msgid "Failed to connect to the director\n"
msgstr ""
-#: src/stored/status.c:198
-msgid " Device is being initialized.\n"
+#: src/wx-console/console_thread.cpp:407
+msgid "Connected\n"
msgstr ""
-#: src/stored/status.c:201
-msgid " Device is blocked labeling a Volume.\n"
+#: src/wx-console/console_thread.cpp:445
+msgid "<< Unexpected signal received : "
msgstr ""
-#: src/stored/status.c:209
-#, c-format
-msgid " Slot %d is loaded in drive %d.\n"
+#: src/wx-console/console_thread.cpp:463
+msgid "Connection terminated\n"
+msgstr ""
+
+#: src/wx-console/main.cpp:96
+msgid "Bacula wx-console"
msgstr ""
-#: src/stored/status.c:212
+#: src/wx-console/main.cpp:101 src/wx-console/wxbmainframe.cpp:248
#, c-format
-msgid " Drive %d is not loaded.\n"
+msgid "Welcome to bacula wx-console %s (%s)!\n"
msgstr ""
-#: src/stored/status.c:231
-msgid "Device state:\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:41
+msgid "Config file editor"
msgstr ""
-#: src/stored/status.c:268
-#, c-format
-msgid "%s Job %s waiting for Client connection.\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:57
+msgid "Save and close"
msgstr ""
-#: src/stored/status.c:280
-#, c-format
-msgid "%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:58
+msgid "Close without saving"
msgstr ""
-#: src/stored/status.c:331
-msgid " JobId Level Files Bytes Status Finished Name \n"
+#: src/wx-console/wxbconfigfileeditor.cpp:69
+msgid "# Bacula wx-console Configuration File\n"
msgstr ""
-#: src/stored/stored.c:66
+#: src/wx-console/wxbconfigfileeditor.cpp:100
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: stored [options] [-c config_file] [config_file]\n"
-" -c <file> use <file> as configuration file\n"
-" -dnn set debug level to nn\n"
-" -f run in foreground (for debugging)\n"
-" -g <group> set groupid to group\n"
-" -p proceed despite I/O errors\n"
-" -s no signals (for debugging)\n"
-" -t test - read config and exit\n"
-" -u <user> userid to <user>\n"
-" -v verbose user messages\n"
-" -? print this message.\n"
-"\n"
+msgid "Unable to write to %s\n"
msgstr ""
-#: src/stored/stored.c:217
-msgid "Volume Session Time is ZERO!\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:101
+msgid "Error while saving"
msgstr ""
-#: src/stored/stored.c:230
-#, c-format
-msgid "Unable to create thread. ERR=%s\n"
+#: src/wx-console/wxbconfigpanel.cpp:184
+msgid "Apply"
msgstr ""
-#: src/stored/stored.c:269
-#, c-format
-msgid "Only one Storage resource permitted in %s\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:61
+#: src/wx-console/wxbhistorytextctrl.cpp:132
+#: src/wx-console/wxbmainframe.cpp:272
+msgid "Type your command below:"
msgstr ""
-#: src/stored/stored.c:274
-#, c-format
-msgid "No Director resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:96
+msgid "Unknown command."
msgstr ""
-#: src/stored/stored.c:279
-#, c-format
-msgid "No Device resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:105
+msgid "Possible completions: "
msgstr ""
-#: src/stored/stored.c:287
-#, c-format
-msgid "No Messages resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:258
+#: src/wx-console/wxbrestorepanel.cpp:1861
+#: src/wx-console/wxbrestorepanel.cpp:1890
+msgid "Enter restore mode"
msgstr ""
-#: src/stored/stored.c:314
-#, c-format
-msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n"
+#: src/wx-console/wxbrestorepanel.cpp:261
+msgid "Cancel restore"
msgstr ""
-#: src/stored/stored.c:320
-#, c-format
-msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n"
+#: src/wx-console/wxbrestorepanel.cpp:287
+#: src/wx-console/wxbrestorepanel.cpp:341
+msgid "Add"
msgstr ""
-#: src/stored/stored.c:326
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Storage \"%s\" in %s. At least one CA certificate store is required when "
-"using \"TLS Verify Peer\".\n"
+#: src/wx-console/wxbrestorepanel.cpp:289
+#: src/wx-console/wxbrestorepanel.cpp:343
+msgid "Remove"
msgstr ""
-#: src/stored/stored.c:414
-#, c-format
-msgid "No Changer Name given for device %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:291
+#: src/wx-console/wxbrestorepanel.cpp:345
+msgid "Refresh"
msgstr ""
-#: src/stored/stored.c:420
-#, c-format
-msgid "No Changer Command given for device %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:310
+msgid "M"
msgstr ""
-#: src/stored/stored.c:432
-#, c-format
-msgid ""
-"Media Type not the same for all devices in changer %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:326
+msgid "Perm."
msgstr ""
-#: src/stored/stored.c:493
-#, c-format
-msgid "Could not initialize %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:359
+#: src/wx-console/wxbrestorepanel.cpp:372
+#: src/wx-console/wxbrestorepanel.cpp:524
+#: src/wx-console/wxbrestorepanel.cpp:534
+#: src/wx-console/wxbrestorepanel.cpp:537
+#: src/wx-console/wxbrestorepanel.cpp:1732
+#: src/wx-console/wxbrestorepanel.cpp:1812
+msgid "Job Name"
msgstr ""
-#: src/stored/stored.c:506
-#, c-format
-msgid "Could not open device %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:361
+#: src/wx-console/wxbrestorepanel.cpp:377
+#: src/wx-console/wxbrestorepanel.cpp:476
+#: src/wx-console/wxbrestorepanel.cpp:477
+#: src/wx-console/wxbrestorepanel.cpp:487
+#: src/wx-console/wxbrestorepanel.cpp:488
+#: src/wx-console/wxbrestorepanel.cpp:1101
+#: src/wx-console/wxbrestorepanel.cpp:1768
+#: src/wx-console/wxbrestorepanel.cpp:1827
+msgid "Fileset"
msgstr ""
-#: src/stored/stored.c:523
-#, c-format
-msgid "Could not mount device %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:364
+#: src/wx-console/wxbrestorepanel.cpp:1168
+#: src/wx-console/wxbrestorepanel.cpp:1183
+#: src/wx-console/wxbrestorepanel.cpp:1185
+#: src/wx-console/wxbrestorepanel.cpp:1193
+#: src/wx-console/wxbrestorepanel.cpp:1195
+#: src/wx-console/wxbrestorepanel.cpp:1212
+#: src/wx-console/wxbrestorepanel.cpp:1219
+#: src/wx-console/wxbrestorepanel.cpp:1759
+#: src/wx-console/wxbrestorepanel.cpp:1885
+msgid "Before"
msgstr ""
-#: src/stored/stored_conf.c:188
-#, c-format
-msgid "Warning: no \"%s\" resource (%d) defined.\n"
+#: src/wx-console/wxbrestorepanel.cpp:366
+msgid "Please configure parameters concerning files to restore :"
msgstr ""
-#: src/stored/stored_conf.c:307
-#, c-format
-msgid "Warning: unknown resource type %d\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+#: src/wx-console/wxbrestorepanel.cpp:1820
+msgid "always"
msgstr ""
-#: src/stored/stored_conf.c:496
-#, c-format
-msgid "\"%s\" item is required in \"%s\" resource, but not found.\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+msgid "if newer"
msgstr ""
-#: src/stored/stored_conf.c:502
-#, c-format
-msgid "Too many items in \"%s\" resource\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+msgid "if older"
msgstr ""
-#: src/stored/stored_conf.c:607
-#, c-format
-msgid ""
-"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+#: src/wx-console/wxbrestorepanel.cpp:1823
+msgid "never"
msgstr ""
-#: src/stored/ansi_label.c:83
-#, c-format
-msgid "Read error on device %s in ANSI label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:383
+msgid "Please configure parameters concerning files restoration :"
msgstr ""
-#: src/stored/ansi_label.c:93
-msgid "Insane! End of tape while reading ANSI label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:448
+msgid "Getting parameters list."
msgstr ""
-#: src/stored/ansi_label.c:117
-msgid "No VOL1 label while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:456
+msgid "Error : no clients returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:148
-msgid "No HDR1 label while reading ANSI label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:480
+msgid "Error : no filesets returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:154
-#, c-format
-msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n"
+#: src/wx-console/wxbrestorepanel.cpp:504
+msgid "Error : no storage returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:165
-msgid "No HDR2 label while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:527
+#: src/wx-console/wxbrestorepanel.cpp:551
+msgid "Error : no jobs returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:179
-msgid "Unknown or bad ANSI/IBM label record.\n"
+#: src/wx-console/wxbrestorepanel.cpp:537
+msgid "RestoreFiles"
msgstr ""
-#: src/stored/ansi_label.c:186
-msgid "Too many records in while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:572
+msgid "Please configure your restore parameters."
msgstr ""
-#: src/stored/ansi_label.c:285
-#, c-format
-msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n"
+#: src/wx-console/wxbrestorepanel.cpp:583
+msgid "Building restore tree..."
msgstr ""
-#: src/stored/ansi_label.c:302
-#, c-format
-msgid "Could not write ANSI VOL1 label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:622
+msgid "Error while starting restore: "
msgstr ""
-#: src/stored/ansi_label.c:340 src/stored/ansi_label.c:369
-#, c-format
-msgid "Could not write ANSI HDR1 label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:712
+msgid ""
+"Right click on a file or on a directory, or double-click on its mark to add "
+"it to the restore list."
msgstr ""
-#: src/stored/ansi_label.c:345 src/stored/ansi_label.c:376
-msgid "Could not write ANSI HDR1 label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:729
+msgid " files selected to be restored."
msgstr ""
-#: src/stored/ansi_label.c:381
+#: src/wx-console/wxbrestorepanel.cpp:734
+msgid " file selected to be restored."
+msgstr ""
+
+#: src/wx-console/wxbrestorepanel.cpp:741
#, c-format
-msgid "Error writing EOF to tape. ERR=%s"
+msgid "Please configure your restore (%s files selected to be restored)..."
msgstr ""
-#: src/stored/ansi_label.c:386
-msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n"
+#: src/wx-console/wxbrestorepanel.cpp:751
+msgid "Restore failed : no file selected.\n"
msgstr ""
-#: src/stored/dvd.c:342
-#, c-format
-msgid "Remaining free space %s on %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:752
+msgid "Restore failed : no file selected."
msgstr ""
-#: src/stored/dvd.c:411
-#, c-format
-msgid "Next Volume part already exists on DVD. Cannot continue: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:762
+msgid "Restoring, please wait..."
msgstr ""
-#: src/stored/dvd.c:429
-#, c-format
-msgid "open_next_part can't unlink existing part %s, ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:775
+msgid "Job started. JobId="
msgstr ""
-#: src/stored/dvd.c:633
-#, c-format
-msgid "Unable to write part %s: ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:777
+msgid "Restore started, jobid="
msgstr ""
-#: src/stored/wait.c:178 src/stored/wait.c:236
-#, c-format
-msgid "Job %s waiting to reserve a device.\n"
+#: src/wx-console/wxbrestorepanel.cpp:781
+msgid "Job failed."
msgstr ""
-#: src/stored/pythonsd.c:59
-msgid "SDName"
+#: src/wx-console/wxbrestorepanel.cpp:782
+msgid "Restore failed, please look at messages.\n"
msgstr ""
-#: src/stored/reserve.c:344 src/stored/reserve.c:361
-#, c-format
-msgid "Failed command: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:783
+msgid "Restore failed, please look at messages in console."
msgstr ""
-#: src/stored/reserve.c:346
-#, c-format
-msgid ""
-"\n"
-" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD "
-"Device resources.\n"
+#: src/wx-console/wxbrestorepanel.cpp:789
+#: src/wx-console/wxbrestorepanel.cpp:790
+msgid "Failed to retrieve jobid.\n"
msgstr ""
-#: src/stored/reserve.c:528
-#, c-format
-msgid "3926 Could not get dcr for device: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:816
+msgid ""
+"Restore is scheduled in more than two minutes, wx-console will not wait for "
+"its completion.\n"
msgstr ""
-#: src/stored/reserve.c:568 src/stored/reserve.c:623
-#, c-format
-msgid "Device %s is BLOCKED due to user unmount.\n"
+#: src/wx-console/wxbrestorepanel.cpp:817
+msgid ""
+"Restore is scheduled in more than two minutes, wx-console will not wait for "
+"its completion."
msgstr ""
-#: src/stored/reserve.c:576
-#, c-format
-msgid "Device %s is busy.\n"
+#: src/wx-console/wxbrestorepanel.cpp:841
+msgid "Restore job created, but not yet running."
msgstr ""
-#: src/stored/reserve.c:631
+#: src/wx-console/wxbrestorepanel.cpp:846
#, c-format
-msgid "Device %s is busy writing on another Volume.\n"
+msgid "Restore job running, please wait (%d of %d files restored)..."
msgstr ""
-#: src/stored/reserve.c:705
-#, c-format
-msgid "Wanted Pool \"%s\", but device %s is using Pool \"%s\" .\n"
+#: src/wx-console/wxbrestorepanel.cpp:850
+msgid "Restore job terminated successfully."
msgstr ""
-#: src/stored/reserve.c:711
-msgid "Logic error!!!! Should not get here.\n"
+#: src/wx-console/wxbrestorepanel.cpp:851
+msgid "Restore job terminated successfully.\n"
msgstr ""
-#: src/tools/dbcheck.c:154
-msgid ""
-"Warning skipping the additional parameters for working directory/dbname/user/"
-"password/host.\n"
+#: src/wx-console/wxbrestorepanel.cpp:856
+msgid "Restore job terminated in error, see messages in console."
+msgstr ""
+
+#: src/wx-console/wxbrestorepanel.cpp:857
+msgid "Restore job terminated in error, see messages.\n"
msgstr ""
-#: src/tools/dbcheck.c:195
-msgid "Wrong number of arguments.\n"
+#: src/wx-console/wxbrestorepanel.cpp:862
+msgid "Restore job reported a non-fatal error."
msgstr ""
-#: src/tools/dbcheck.c:200
-msgid "Working directory not supplied.\n"
+#: src/wx-console/wxbrestorepanel.cpp:866
+msgid "Restore job reported a fatal error."
msgstr ""
-#: src/tools/dbcheck.c:272
-#, c-format
-msgid ""
-"\n"
-" 1) Toggle modify database flag\n"
-" 2) Toggle verbose flag\n"
-" 3) Repair bad Filename records\n"
-" 4) Repair bad Path records\n"
-" 5) Eliminate duplicate Filename records\n"
-" 6) Eliminate duplicate Path records\n"
-" 7) Eliminate orphaned Jobmedia records\n"
-" 8) Eliminate orphaned File records\n"
-" 9) Eliminate orphaned Path records\n"
-" 10) Eliminate orphaned Filename records\n"
-" 11) Eliminate orphaned FileSet records\n"
-" 12) Eliminate orphaned Client records\n"
-" 13) Eliminate orphaned Job records\n"
-" 14) Eliminate all Admin records\n"
-" 15) Eliminate all Restore records\n"
-" 16) All (3-15)\n"
-" 17) Quit\n"
+#: src/wx-console/wxbrestorepanel.cpp:871
+msgid "Restore job cancelled by user."
msgstr ""
-#: src/tools/dbcheck.c:291
-#, c-format
-msgid ""
-"\n"
-" 1) Toggle modify database flag\n"
-" 2) Toggle verbose flag\n"
-" 3) Check for bad Filename records\n"
-" 4) Check for bad Path records\n"
-" 5) Check for duplicate Filename records\n"
-" 6) Check for duplicate Path records\n"
-" 7) Check for orphaned Jobmedia records\n"
-" 8) Check for orphaned File records\n"
-" 9) Check for orphaned Path records\n"
-" 10) Check for orphaned Filename records\n"
-" 11) Check for orphaned FileSet records\n"
-" 12) Check for orphaned Client records\n"
-" 13) Check for orphaned Job records\n"
-" 14) Check for all Admin records\n"
-" 15) Check for all Restore records\n"
-" 16) All (3-15)\n"
-" 17) Quit\n"
+#: src/wx-console/wxbrestorepanel.cpp:872
+msgid "Restore job cancelled by user.\n"
msgstr ""
-#: src/tools/dbcheck.c:311
-msgid "Select function number: "
+#: src/wx-console/wxbrestorepanel.cpp:877
+msgid "Restore job is waiting on File daemon."
msgstr ""
-#: src/tools/dbcheck.c:317
-#, c-format
-msgid "Database will %sbe modified.\n"
+#: src/wx-console/wxbrestorepanel.cpp:881
+msgid "Restore job is waiting for new media."
msgstr ""
-#: src/tools/dbcheck.c:317
-msgid "NOT "
+#: src/wx-console/wxbrestorepanel.cpp:885
+msgid "Restore job is waiting for storage resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-#, c-format
-msgid "Verbose is %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:889
+msgid "Restore job is waiting for job resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-msgid "On"
+#: src/wx-console/wxbrestorepanel.cpp:893
+msgid "Restore job is waiting for Client resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-msgid "Off"
+#: src/wx-console/wxbrestorepanel.cpp:897
+msgid "Restore job is waiting for maximum jobs."
msgstr ""
-#: src/tools/dbcheck.c:404
-#, c-format
-msgid "JobId=%s Name=\"%s\" StartTime=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:901
+msgid "Restore job is waiting for start time."
msgstr ""
-#: src/tools/dbcheck.c:412
-#, c-format
-msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:905
+msgid "Restore job is waiting for higher priority jobs to finish."
msgstr ""
-#: src/tools/dbcheck.c:419
-#, c-format
-msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:954
+msgid ""
+"The restore job has not been started within one minute, wx-console will not "
+"wait for its completion anymore.\n"
msgstr ""
-#: src/tools/dbcheck.c:426
-#, c-format
-msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:955
+msgid ""
+"The restore job has not been started within one minute, wx-console will not "
+"wait for its completion anymore."
msgstr ""
-#: src/tools/dbcheck.c:433
-#, c-format
-msgid "Orphaned ClientId=%s Name=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:965
+msgid "Restore done successfully.\n"
msgstr ""
-#: src/tools/dbcheck.c:613
-#, c-format
-msgid "Checking for duplicate Path entries.\n"
+#: src/wx-console/wxbrestorepanel.cpp:966
+msgid "Restore done successfully."
msgstr ""
-#: src/tools/testfind.c:49
-#, c-format
-msgid ""
-"\n"
-"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n"
-" -a print extended attributes (Win32 debug)\n"
-" -dnn set debug level to nn\n"
-" -e specify file of exclude patterns\n"
-" -i specify file of include patterns\n"
-" - read pattern(s) from stdin\n"
-" -? print this message.\n"
-"\n"
-"Patterns are used for file inclusion -- normally directories.\n"
-"Debug level >= 1 prints each file found.\n"
-"Debug level >= 10 prints path/file for catalog.\n"
-"Errors are always printed.\n"
-"Files/paths truncated is the number of files/paths with len > 255.\n"
-"Truncation is only in the catalog.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1037
+msgid "Applying restore configuration changes..."
msgstr ""
-#: src/tools/testfind.c:156
-#, c-format
-msgid ""
-"Total files : %d\n"
-"Max file length: %d\n"
-"Max path length: %d\n"
-"Files truncated: %d\n"
-"Paths truncated: %d\n"
-"Hard links : %d\n"
+#: src/wx-console/wxbrestorepanel.cpp:1088
+msgid "Failed to find the selected client."
msgstr ""
-#: src/tools/testfind.c:236 src/tools/testls.c:174
-#, c-format
-msgid "Err: Could not access %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1103
+msgid "Failed to find the selected fileset."
msgstr ""
-#: src/tools/testfind.c:239 src/tools/testls.c:177
-#, c-format
-msgid "Err: Could not follow ff->link %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1118
+msgid "Failed to find the selected storage."
msgstr ""
-#: src/tools/testfind.c:242 src/tools/testls.c:180
-#, c-format
-msgid "Err: Could not stat %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1135
+#: src/wx-console/wxbrestorepanel.cpp:1801
+msgid "Run Restore job"
msgstr ""
-#: src/tools/testfind.c:245 src/tools/testls.c:183
-#, c-format
-msgid "Skip: File not saved. No change. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1151
+msgid "Restore configuration changes were applied."
msgstr ""
-#: src/tools/testfind.c:248 src/tools/testls.c:186
-#, c-format
-msgid "Err: Attempt to backup archive. Not saved. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1160
+msgid "Restore cancelled.\n"
msgstr ""
-#: src/tools/testfind.c:251 src/tools/testls.c:195
-#, c-format
-msgid "Err: Could not open directory %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1161
+msgid "Restore cancelled."
msgstr ""
-#: src/tools/testfind.c:254 src/tools/testls.c:198
-#, c-format
-msgid "Err: Unknown file ff->type %d: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1182
+msgid "No results to list."
msgstr ""
-#: src/tools/testfind.c:304
-#, c-format
-msgid "===== Filename truncated to 255 chars: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1184
+msgid "No backup found for this client."
msgstr ""
-#: src/tools/testfind.c:321
-#, c-format
-msgid "========== Path name truncated to 255 chars: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1191
+msgid "ERROR"
msgstr ""
-#: src/tools/testfind.c:330
-#, c-format
-msgid "========== Path length is zero. File=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1192
+msgid "Query failed"
msgstr ""
-#: src/tools/testls.c:45
-#, c-format
-msgid ""
-"\n"
-"Usage: testls [-d debug_level] [-] [pattern1 ...]\n"
-" -a print extended attributes (Win32 debug)\n"
-" -dnn set debug level to nn\n"
-" -e specify file of exclude patterns\n"
-" -i specify file of include patterns\n"
-" - read pattern(s) from stdin\n"
-" -? print this message.\n"
-"\n"
-"Patterns are file inclusion -- normally directories.\n"
-"Debug level >= 1 prints each file found.\n"
-"Debug level >= 10 prints path/file for catalog.\n"
-"Errors always printed.\n"
-"Files/paths truncated is number with len > 255.\n"
-"Truncation is only in catalog.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1194
+msgid "Cannot get previous backups list, see console."
msgstr ""
-#: src/tools/testls.c:189
-#, c-format
-msgid "Recursion turned off. Directory not entered. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1811
+msgid "JobName:"
msgstr ""
-#: src/tools/testls.c:192
-#, c-format
-msgid "Skip: File system change prohibited. Directory not entered. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1815
+msgid "Where:"
msgstr ""
-#: src/tools/fstype.c:34
-#, c-format
-msgid ""
-"\n"
-"Usage: fstype [-d debug_level] path ...\n"
-"\n"
-" Print the file system type a given file/directory is on.\n"
-" The following options are supported:\n"
-"\n"
-" -v print both path and file system type.\n"
-" -? print this message.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1818
+msgid "Replace:"
msgstr ""
-#: src/tray-monitor/authenticate.c:78
-msgid ""
-"Director authorization problem.\n"
-"Most likely the passwords do not agree.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1821
+msgid "ifnewer"
msgstr ""
-#: src/tray-monitor/authenticate.c:127
-msgid ""
-"Director and Storage daemon passwords or names not the same.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1822
+msgid "ifolder"
msgstr ""
-#: src/tray-monitor/authenticate.c:172
-msgid ""
-"Director and File daemon passwords or names not the same.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1826
+msgid "FileSet:"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:102
-#, c-format
-msgid ""
-"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat (2004)\n"
-"\n"
-"Version: "
+#: src/wx-console/wxbrestorepanel.cpp:1942
+msgid "Restoring..."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:104
-#, c-format
-msgid ""
-") %s %s %s\n"
-"\n"
-"Usage: tray-monitor [-c config_file] [-d debug_level]\n"
-" -c <file> set configuration file to file\n"
-" -dnn set debug level to nn\n"
-" -t test - read configuration and exit\n"
-" -? print this message.\n"
-"\n"
+#: src/wx-console/wxbmainframe.cpp:227
+msgid "&About...\tF1"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:248
-#, c-format
-msgid ""
-"Error: %d Monitor resource defined in %s. You must define one and only one "
-"Monitor resource.\n"
+#: src/wx-console/wxbmainframe.cpp:227
+msgid "Show about dialog"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:279
-#, c-format
-msgid ""
-"No Client, Storage nor Director resource defined in %s\n"
-"Without that I don't how to get status from the File, Storage or Director "
-"Daemon :-(\n"
+#: src/wx-console/wxbmainframe.cpp:229 src/wx-console/wxbmainframe.cpp:590
+msgid "Connect to the director"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:301
-#, c-format
-msgid ""
-"Invalid refresh interval defined in %s\n"
-"This value must be greater or equal to 1 second and less or equal to 10 "
-"minutes (read value: %d).\n"
+#: src/wx-console/wxbmainframe.cpp:230
+msgid "Disconnect"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:359
-msgid " (DIR)"
+#: src/wx-console/wxbmainframe.cpp:230
+msgid "Disconnect of the director"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:363
-msgid " (FD)"
+#: src/wx-console/wxbmainframe.cpp:232
+msgid "Change of configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:367
-msgid " (SD)"
+#: src/wx-console/wxbmainframe.cpp:232
+msgid "Change your default configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:380
-msgid "Unknown status."
+#: src/wx-console/wxbmainframe.cpp:233
+msgid "Edit your configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:421
-msgid "Refresh interval in seconds: "
+#: src/wx-console/wxbmainframe.cpp:235
+msgid "E&xit\tAlt-X"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:429
-msgid "Refresh now"
+#: src/wx-console/wxbmainframe.cpp:235
+msgid "Quit this program"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:433
-msgid "About"
+#: src/wx-console/wxbmainframe.cpp:239
+msgid "&File"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:437
-msgid "Close"
+#: src/wx-console/wxbmainframe.cpp:240
+msgid "&Help"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:496
-msgid ""
-"<span size='x-large' weight='bold'>Bacula Tray Monitor</span>\n"
-"\n"
-"Copyright (C) 2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat\n"
-"\n"
-"<small>Version: "
+#: src/wx-console/wxbmainframe.cpp:257
+msgid "Console"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:499
-#, c-format
-msgid ") %s %s %s</small>"
+#: src/wx-console/wxbmainframe.cpp:264
+msgid ""
+"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:503
+#: src/wx-console/wxbmainframe.cpp:268
msgid ""
-"Bacula Tray Monitor\n"
-"\n"
-"Copyright (C) 2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat\n"
-"\n"
-"Version: "
+"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode "
+"support when handling non-ASCII filenames: Every non-ASCII character in such "
+"filenames will be replaced by an interrogation mark.\n"
+"If this behaviour disturbs you, please build wx-console against a Unicode "
+"version of wxWidgets for GTK+ 2.0.\n"
+"---\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:506
-#, c-format
-msgid ") %s %s %s"
+#: src/wx-console/wxbmainframe.cpp:279
+msgid "Send"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:690
-msgid "No current job."
+#: src/wx-console/wxbmainframe.cpp:356 src/wx-console/wxbmainframe.cpp:368
+msgid "Error while parsing command line arguments, using defaults.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:693
-msgid "No last job."
+#: src/wx-console/wxbmainframe.cpp:357 src/wx-console/wxbmainframe.cpp:369
+msgid "Usage: wx-console [-c configfile] [-w tmp]\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:701
+#: src/wx-console/wxbmainframe.cpp:397
#, c-format
-msgid "Job status: Created (%d error%s)"
+msgid ""
+"It seems that it is the first time you run wx-console.\n"
+"This file (%s) has been choosen as default configuration file.\n"
+"Do you want to edit it? (if you click No you will have to select another "
+"file)"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:705
-#, c-format
-msgid "Job status: Running (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:401
+msgid "First run"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:708
+#: src/wx-console/wxbmainframe.cpp:418
#, c-format
-msgid "Job status: Blocked (%d error%s)"
+msgid ""
+"Unable to read %s\n"
+"Error: %s\n"
+"Do you want to choose another one? (Press no to edit this file)"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:712
-#, c-format
-msgid "Job status: Terminated (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:421
+msgid "Unable to read configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:716
-#, c-format
-msgid "Job status: Terminated in error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:433
+msgid "Please choose a configuration file to use"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:721
-#, c-format
-msgid "Job status: Error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:446
+msgid "This configuration file has been successfully read, use it as default?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:724
-#, c-format
-msgid "Job status: Fatal error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:447
+msgid "Configuration file read successfully"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:728
+#: src/wx-console/wxbmainframe.cpp:457
#, c-format
-msgid "Job status: Verify differences (%d error%s)"
+msgid "Using this configuration file: %s\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:732
-#, c-format
-msgid "Job status: Canceled (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:462
+msgid "Connecting to the director..."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:736
-#, c-format
-msgid "Job status: Waiting on File daemon (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:477
+msgid "Failed to unregister a data parser !"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:740
-#, c-format
-msgid "Job status: Waiting on the Storage daemon (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:485
+msgid "Quitting.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:744
-#, c-format
-msgid "Job status: Waiting for new media (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:500
+msgid ""
+"Welcome to Bacula wx-console.\n"
+"Written by Nicolas Boichat <nicolas@boichat.ch>\n"
+"(C) 2004 Kern Sibbald and John Walker\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:748
-#, c-format
-msgid "Job status: Waiting for Mount (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:502
+msgid "About Bacula wx-console"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:752
-#, c-format
-msgid "Job status: Waiting for storage resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:508
+msgid "Please choose your default configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:756
-#, c-format
-msgid "Job status: Waiting for job resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:512
+msgid "Use this configuration file as default?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:760
-#, c-format
-msgid "Job status: Waiting for Client resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:513
+msgid "Configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:764
-#, c-format
-msgid "Job status: Waiting for maximum jobs (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:577
+msgid "Console thread terminated."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:768
-#, c-format
-msgid "Job status: Waiting for start time (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:581
+msgid "Connection to the director lost. Quit program?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:772
-#, c-format
-msgid "Job status: Waiting for higher priority jobs to finish (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:582
+msgid "Connection lost"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:777
-#, c-format
-msgid "Job status: Unknown(%c) (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:598
+msgid "Connected to the director."
msgstr ""
-#: src/wx-console/console_thread.cpp:100
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Director \"%s\" in config file.\n"
-" At least one CA certificate store is required.\n"
+#: src/wx-console/wxbmainframe.cpp:612
+msgid "Reconnect"
msgstr ""
-#: src/wx-console/console_thread.cpp:109
-msgid ""
-"No Director resource defined in config file.\n"
-"Without that I don't how to speak to the Director :-(\n"
+#: src/wx-console/wxbmainframe.cpp:613
+msgid "Reconnect to the director"
msgstr ""
-#: src/wx-console/console_thread.cpp:129
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Console \"%s\" in config file.\n"
+#: src/wx-console/wxbmainframe.cpp:623
+msgid "Disconnected of the director."
msgstr ""
-#: src/wx-console/console_thread.cpp:235
-msgid "Please correct configuration file.\n"
+#: src/wx-console/wxbmainframe.cpp:642
+msgid "Unexpected question has been received.\n"
+msgstr ""
+
+#: src/wx-console/wxbmainframe.cpp:665 src/wx-console/wxbmainframe.cpp:680
+msgid "wx-console: unexpected director's question."
msgstr ""
msgstr ""
"Project-Id-Version: Bacula 1.38\n"
"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2005-08-08 17:56+0200\n"
-"PO-Revision-Date: 2005-08-08 17:44+0200\n"
+"POT-Creation-Date: 2005-08-10 18:10+0200\n"
+"PO-Revision-Date: 2005-08-10 16:45+0100\n"
"Last-Translator: Nicolas Boichat <nicolas@boichat.ch>\n"
"Language-Team: French <bacula-devel-fr@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
msgid "Create DB Job record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:91 src/dird/expand.c:145 src/dird/ua_cmds.c:422
-#: src/dird/ua_prune.c:455 src/dird/ua_purge.c:171 src/dird/ua_run.c:643
-#: src/dird/ua_select.c:228 src/dird/ua_select.c:249 src/dird/pythondir.c:61
-#: src/stored/pythonsd.c:58
+#: src/cats/sql_create.c:91 src/dird/dird_conf.c:532 src/dird/expand.c:145
+#: src/dird/ua_cmds.c:422 src/dird/ua_prune.c:455 src/dird/ua_purge.c:171
+#: src/dird/ua_run.c:643 src/dird/ua_select.c:228 src/dird/ua_select.c:249
+#: src/dird/pythondir.c:61 src/stored/pythonsd.c:58
msgid "Job"
msgstr ""
#: src/cats/sql_create.c:201 src/dird/expand.c:152 src/dird/ua_run.c:650
#: src/dird/ua_select.c:464 src/dird/ua_select.c:554 src/dird/ua_update.c:356
#: src/dird/ua_update.c:426 src/dird/pythondir.c:67 src/stored/pythonsd.c:64
+#: src/wx-console/wxbrestorepanel.cpp:362
+#: src/wx-console/wxbrestorepanel.cpp:548
+#: src/wx-console/wxbrestorepanel.cpp:558
+#: src/wx-console/wxbrestorepanel.cpp:1754
msgid "Pool"
msgstr ""
msgid "Create DB Storage record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:306 src/dird/expand.c:153 src/dird/ua_cmds.c:829
-#: src/dird/ua_run.c:642 src/dird/ua_select.c:152 src/dird/ua_status.c:128
-#: src/dird/pythondir.c:68
+#: src/cats/sql_create.c:306 src/dird/expand.c:153 src/dird/ua_run.c:642
+#: src/dird/ua_select.c:152 src/dird/ua_status.c:128 src/dird/pythondir.c:68
+#: src/wx-console/wxbrestorepanel.cpp:363
+#: src/wx-console/wxbrestorepanel.cpp:379
+#: src/wx-console/wxbrestorepanel.cpp:500
+#: src/wx-console/wxbrestorepanel.cpp:501
+#: src/wx-console/wxbrestorepanel.cpp:511
+#: src/wx-console/wxbrestorepanel.cpp:512
+#: src/wx-console/wxbrestorepanel.cpp:1116
+#: src/wx-console/wxbrestorepanel.cpp:1765
+#: src/wx-console/wxbrestorepanel.cpp:1831
msgid "Storage"
msgstr ""
msgid "Create DB Client record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:507 src/dird/expand.c:150 src/dird/ua_cmds.c:830
-#: src/dird/ua_purge.c:173 src/dird/ua_purge.c:178 src/dird/ua_run.c:645
-#: src/dird/ua_select.c:272 src/dird/ua_select.c:379 src/dird/ua_status.c:129
-#: src/dird/pythondir.c:65 src/filed/pythonfd.c:77 src/stored/pythonsd.c:63
+#: src/cats/sql_create.c:507 src/dird/expand.c:150 src/dird/ua_purge.c:173
+#: src/dird/ua_purge.c:178 src/dird/ua_run.c:645 src/dird/ua_select.c:272
+#: src/dird/ua_select.c:379 src/dird/ua_status.c:129 src/dird/pythondir.c:65
+#: src/filed/pythonfd.c:77 src/stored/pythonsd.c:63
+#: src/wx-console/wxbrestorepanel.cpp:360
+#: src/wx-console/wxbrestorepanel.cpp:378
+#: src/wx-console/wxbrestorepanel.cpp:452
+#: src/wx-console/wxbrestorepanel.cpp:453
+#: src/wx-console/wxbrestorepanel.cpp:463
+#: src/wx-console/wxbrestorepanel.cpp:464
+#: src/wx-console/wxbrestorepanel.cpp:707
+#: src/wx-console/wxbrestorepanel.cpp:1086
+#: src/wx-console/wxbrestorepanel.cpp:1173
+#: src/wx-console/wxbrestorepanel.cpp:1758
+#: src/wx-console/wxbrestorepanel.cpp:1760
+#: src/wx-console/wxbrestorepanel.cpp:1829
+#: src/wx-console/wxbrestorepanel.cpp:1884
msgid "Client"
msgstr ""
msgid "Create DB FileSet record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:618 src/dird/ua_restore.c:1010 src/dird/ua_run.c:644
+#: src/cats/sql_create.c:618 src/dird/ua_restore.c:1035 src/dird/ua_run.c:644
#: src/dird/ua_select.c:173
msgid "FileSet"
msgstr ""
msgid "Create db File record %s failed. ERR=%s"
msgstr ""
-#: src/cats/sql_create.c:738
+#: src/cats/sql_create.c:738 src/gnome2-console/restore.c:121
msgid "File"
msgstr ""
msgid "Create db Filename record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:856
+#: src/cats/sql_create.c:856 src/wx-console/wxbrestorepanel.cpp:314
msgid "Filename"
msgstr ""
msgid "Unable to open Database=%s. ERR=%s\n"
msgstr ""
-#: src/cats/sqlite.c:162
+#: src/cats/sqlite.c:162 src/lib/bnet_server.c:378
msgid "unknown"
msgstr ""
msgid "next_index update error: ERR=%s\n"
msgstr ""
+#: src/console/authenticate.c:41
+#, c-format
+msgid "Hello %s calling\n"
+msgstr ""
+
+#: src/console/authenticate.c:44
+msgid "1000 OK:"
+msgstr ""
+
#: src/console/authenticate.c:104 src/dird/authenticate.c:106
#: src/dird/authenticate.c:206 src/filed/authenticate.c:124
#: src/filed/authenticate.c:220 src/stored/authenticate.c:128
msgstr ""
#: src/console/authenticate.c:140 src/gnome2-console/authenticate.c:95
-#: src/tray-monitor/authenticate.c:94
+#: src/tray-monitor/authenticate.c:94 src/wx-console/authenticate.c:133
msgid "Director rejected Hello command\n"
msgstr ""
"help.\n"
msgstr ""
-#: src/console/console.c:102 src/filed/filed.c:62
+#: src/console/console.c:102
#, c-format
msgid ""
"Copyright (C) 2000-2005 Kern Sibbald\n"
"Version: "
msgstr ""
-#: src/console/console.c:103 src/dird/admin.c:108 src/dird/backup.c:489
-#: src/dird/dird.c:72 src/dird/mac.c:377 src/dird/restore.c:275
-#: src/dird/verify.c:415 src/dird/verify.c:448 src/filed/filed.c:63
-#: src/gnome2-console/console.c:89 src/stored/bcopy.c:59
-#: src/stored/bscan.c:110 src/stored/btape.c:2541 src/stored/stored.c:66
-#: src/tray-monitor/tray-monitor.c:104 src/tray-monitor/tray-monitor.c:499
-#: src/tray-monitor/tray-monitor.c:506
+#: src/console/console.c:103 src/dird/admin.c:108
#, c-format
msgid " ("
msgstr ""
msgstr ""
#: src/console/console.c:152 src/dird/ua_cmds.c:106 src/dird/ua_tree.c:72
+#: src/stored/btape.c:2536
msgid "quit"
msgstr ""
msgid ": is an illegal command\n"
msgstr ""
-#: src/console/console.c:397 src/dird/dird.c:193 src/filed/filed.c:180
-#: src/gnome2-console/console.c:267 src/stored/stored.c:186
-#: src/wx-console/console_thread.cpp:231
+#: src/console/console.c:400 src/dird/dird.c:196 src/filed/filed.c:183
+#: src/gnome2-console/console.c:271 src/stored/stored.c:189
+#: src/wx-console/console_thread.cpp:230
msgid "TLS library initialization failed.\n"
msgstr ""
-#: src/console/console.c:401 src/dird/dird.c:197 src/dird/dird.c:407
-#: src/dird/dird.c:410 src/filed/filed.c:185 src/gnome2-console/console.c:271
-#: src/stored/stored.c:190
+#: src/console/console.c:404 src/dird/dird.c:200 src/dird/dird.c:410
+#: src/dird/dird.c:413 src/filed/filed.c:188 src/gnome2-console/console.c:275
+#: src/stored/stored.c:193
#, c-format
msgid "Please correct configuration file: %s\n"
msgstr ""
-#: src/console/console.c:418
+#: src/console/console.c:421
msgid "Available Directors:\n"
msgstr ""
-#: src/console/console.c:422
+#: src/console/console.c:425
#, c-format
msgid "%d %s at %s:%d\n"
msgstr ""
-#: src/console/console.c:426
+#: src/console/console.c:429
msgid "Select Director: "
msgstr ""
-#: src/console/console.c:432
+#: src/console/console.c:435
#, c-format
msgid "You must enter a number between 1 and %d\n"
msgstr ""
-#: src/console/console.c:452
+#: src/console/console.c:455 src/tray-monitor/tray-monitor.c:858
#, c-format
msgid "Connecting to Director %s:%d\n"
-msgstr ""
+msgstr "Connection au Director %s:%d\n"
-#: src/console/console.c:468 src/gnome2-console/console.c:504
-#: src/wx-console/console_thread.cpp:365
+#: src/console/console.c:471 src/gnome2-console/console.c:508
+#: src/wx-console/console_thread.cpp:364
#, c-format
msgid "Failed to initialize TLS context for Console \"%s\".\n"
msgstr ""
-#: src/console/console.c:489 src/gnome2-console/console.c:526
-#: src/wx-console/console_thread.cpp:386
+#: src/console/console.c:492 src/gnome2-console/console.c:530
+#: src/wx-console/console_thread.cpp:385
#, c-format
msgid "Failed to initialize TLS context for Director \"%s\".\n"
msgstr ""
-#: src/console/console.c:512
+#: src/console/console.c:515
msgid "Enter a period to cancel a command.\n"
msgstr ""
-#: src/console/console.c:579 src/console/console.c:608 src/dird/dird.c:493
-#: src/dird/dird.c:708 src/dird/dird.c:774 src/dird/dird.c:826
-#: src/filed/filed.c:299 src/filed/filed.c:345
+#: src/console/console.c:582 src/console/console.c:611 src/dird/dird.c:496
+#: src/dird/dird.c:711 src/dird/dird.c:777 src/dird/dird.c:829
+#: src/filed/filed.c:302 src/filed/filed.c:348
#: src/gnome2-console/console.c:140 src/gnome2-console/console.c:169
-#: src/stored/stored.c:307 src/wx-console/console_thread.cpp:93
+#: src/stored/stored.c:310 src/wx-console/console_thread.cpp:93
#: src/wx-console/console_thread.cpp:122
msgid "TLS required but not configured in Bacula.\n"
msgstr ""
-#: src/console/console.c:586 src/gnome2-console/console.c:147
+#: src/console/console.c:589 src/gnome2-console/console.c:147
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Director \"%s\" in %s. At least one CA certificate store is required.\n"
msgstr ""
-#: src/console/console.c:595 src/gnome2-console/console.c:156
+#: src/console/console.c:598 src/gnome2-console/console.c:156
#, c-format
msgid ""
"No Director resource defined in %s\n"
"Without that I don't how to speak to the Director :-(\n"
msgstr ""
-#: src/console/console.c:615 src/gnome2-console/console.c:176
+#: src/console/console.c:618 src/gnome2-console/console.c:176
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Console \"%s\" in %s.\n"
msgstr ""
-#: src/console/console.c:760
+#: src/console/console.c:763
msgid "Too many arguments on input command.\n"
msgstr ""
-#: src/console/console.c:764
+#: src/console/console.c:767
msgid "First argument to input command must be a filename.\n"
msgstr ""
-#: src/console/console.c:769
+#: src/console/console.c:772
#, c-format
msgid "Cannot open file %s for input. ERR=%s\n"
msgstr ""
-#: src/console/console.c:799
+#: src/console/console.c:802
msgid "Too many arguments on output/tee command.\n"
msgstr ""
-#: src/console/console.c:815
+#: src/console/console.c:818
#, c-format
msgid "Cannot open file %s for output. ERR=%s\n"
msgstr ""
+#: src/console/console_conf.c:123 src/gnome2-console/console_conf.c:122
+#: src/wx-console/console_conf.c:124
+#, c-format
+msgid "No record for %d %s\n"
+msgstr ""
+
+#: src/console/console_conf.c:132 src/wx-console/console_conf.c:133
+#, c-format
+msgid "Console: name=%s rcfile=%s histfile=%s\n"
+msgstr ""
+
+#: src/console/console_conf.c:136 src/gnome2-console/console_conf.c:131
+#: src/wx-console/console_conf.c:137
+#, c-format
+msgid "Director: name=%s address=%s DIRport=%d\n"
+msgstr ""
+
+#: src/console/console_conf.c:140 src/console/console_conf.c:216
+#: src/console/console_conf.c:261 src/console/console_conf.c:288
+#: src/filed/filed_conf.c:268 src/filed/filed_conf.c:327
+#: src/filed/filed_conf.c:357 src/gnome2-console/console_conf.c:142
+#: src/gnome2-console/console_conf.c:220 src/gnome2-console/console_conf.c:268
+#: src/gnome2-console/console_conf.c:298 src/stored/stored_conf.c:467
+#: src/stored/stored_conf.c:555 src/stored/stored_conf.c:590
+#: src/wx-console/console_conf.c:141 src/wx-console/console_conf.c:216
+#: src/wx-console/console_conf.c:261 src/wx-console/console_conf.c:288
+#, c-format
+msgid "Unknown resource type %d\n"
+msgstr ""
+
+#: src/console/console_conf.c:242 src/dird/dird_conf.c:1109
+#: src/dird/dird_conf.c:1124 src/filed/filed_conf.c:296
+#: src/gnome2-console/console_conf.c:246 src/tray-monitor/tray_conf.c:262
+#: src/wx-console/console_conf.c:242
+#, c-format
+msgid "%s item is required in %s resource, but not found.\n"
+msgstr ""
+
#: src/console/console_conf.c:304 src/dird/dird_conf.c:1296
#: src/filed/filed_conf.c:374 src/gnome2-console/console_conf.c:314
#: src/tray-monitor/tray_conf.c:341 src/wx-console/console_conf.c:304
msgid "Inappropriate term code: %c\n"
msgstr ""
-#: src/dird/admin.c:108 src/dird/backup.c:489 src/dird/mac.c:377
-#: src/dird/restore.c:275 src/dird/verify.c:415 src/dird/verify.c:448
+#: src/dird/admin.c:108
msgid "Bacula "
msgstr ""
msgstr ""
#: src/dird/authenticate.c:123 src/dird/authenticate.c:223
+#: src/dird/authenticate.c:356 src/filed/authenticate.c:141
+#: src/filed/authenticate.c:237 src/stored/authenticate.c:145
+#: src/stored/authenticate.c:249
msgid "TLS negotiation failed.\n"
msgstr ""
msgid "Unable to authenticate console \"%s\" at %s:%s:%d.\n"
msgstr ""
+#: src/dird/authenticate.c:373
+#, c-format
+msgid "1000 OK: %s Version: %s (%s)\n"
+msgstr ""
+
#: src/dird/autoprune.c:57
msgid "Begin pruning Jobs.\n"
msgstr ""
msgid "Backup OK -- with warnings"
msgstr ""
-#: src/dird/backup.c:424 src/dird/mac.c:313 src/stored/bscan.c:1045
+#: src/dird/backup.c:424 src/dird/mac.c:313 src/stored/bscan.c:1054
msgid "Backup OK"
msgstr ""
-#: src/dird/backup.c:429 src/dird/mac.c:318 src/stored/bscan.c:1049
+#: src/dird/backup.c:429 src/dird/mac.c:318 src/stored/bscan.c:1058
msgid "*** Backup Error ***"
msgstr ""
-#: src/dird/backup.c:439 src/dird/mac.c:328 src/stored/bscan.c:1052
+#: src/dird/backup.c:439 src/dird/mac.c:328 src/stored/bscan.c:1061
msgid "Backup Canceled"
msgstr ""
#: src/dird/backup.c:489
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Backup Level: %s%s\n"
msgid "No Volumes found to restore.\n"
msgstr ""
+#: src/dird/catreq.c:109 src/dird/catreq.c:298
+#, c-format
+msgid "1990 Invalid Catalog Request: %s"
+msgstr ""
+
#: src/dird/catreq.c:110
#, c-format
msgid "Invalid Catalog request; DB not open: %s"
msgstr ""
+#: src/dird/catreq.c:131
+msgid "1901 No Media.\n"
+msgstr ""
+
+#: src/dird/catreq.c:159
+msgid "not in Pool"
+msgstr ""
+
+#: src/dird/catreq.c:161
+msgid "not correct MediaType"
+msgstr ""
+
+#: src/dird/catreq.c:187
+#, c-format
+msgid "1998 Volume \"%s\" status is %s, %s.\n"
+msgstr ""
+
+#: src/dird/catreq.c:192
+#, c-format
+msgid "1997 Volume \"%s\" not in catalog.\n"
+msgstr ""
+
#: src/dird/catreq.c:213
#, c-format
msgid "Unable to get Media record for Volume %s: ERR=%s\n"
msgstr ""
+#: src/dird/catreq.c:215
+#, c-format
+msgid "1991 Catalog Request for vol=%s failed: %s"
+msgstr ""
+
#: src/dird/catreq.c:235
#, c-format
msgid ""
"Volume Files at %u being set to %u for Volume \"%s\". This is incorrect.\n"
msgstr ""
+#: src/dird/catreq.c:238 src/dird/catreq.c:270
+msgid "1992 Update Media error\n"
+msgstr ""
+
#: src/dird/catreq.c:268
#, c-format
msgid "Catalog error updating Media record. %s"
msgid "Catalog error creating JobMedia record. %s"
msgstr ""
+#: src/dird/catreq.c:289
+msgid "1991 Update JobMedia error\n"
+msgstr ""
+
#: src/dird/catreq.c:299
#, c-format
msgid "Invalid Catalog request: %s"
msgstr ""
+#: src/dird/catreq.c:398
+msgid "Got MD5/SHA1 but not same File as attributes\n"
+msgstr ""
+
#: src/dird/catreq.c:422
#, c-format
msgid "Catalog error updating MD5/SHA1. %s"
msgstr ""
-#: src/dird/dird.c:71 src/stored/btape.c:2540 src/stored/stored.c:65
+#: src/dird/dird.c:71
#, c-format
msgid ""
"Copyright (C) 2000-2005 Kern Sibbald.\n"
"\n"
-"Version: "
-msgstr ""
-
-#: src/dird/dird.c:72
-#, c-format
-msgid ""
-")\n"
+"Version: %s (%s)\n"
"\n"
"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n"
" -c <file> set configuration file to file\n"
"\n"
msgstr ""
-#: src/dird/dird.c:393
+#: src/dird/dird.c:396
msgid "Too many open reload requests. Request ignored.\n"
msgstr ""
-#: src/dird/dird.c:408
+#: src/dird/dird.c:411
msgid "Out of reload table entries. Giving up.\n"
msgstr ""
-#: src/dird/dird.c:411
+#: src/dird/dird.c:414
msgid "Resetting previous configuration.\n"
msgstr ""
-#: src/dird/dird.c:471
+#: src/dird/dird.c:474
#, c-format
msgid ""
"No Director resource defined in %s\n"
"Without that I don't know who I am :-(\n"
msgstr ""
-#: src/dird/dird.c:479 src/filed/filed.c:292
+#: src/dird/dird.c:482 src/filed/filed.c:295
#, c-format
msgid "No Messages resource defined in %s\n"
msgstr ""
-#: src/dird/dird.c:484
+#: src/dird/dird.c:487
#, c-format
msgid "Only one Director resource permitted in %s\n"
msgstr ""
-#: src/dird/dird.c:499 src/filed/filed.c:354 src/stored/stored.c:359
+#: src/dird/dird.c:502 src/filed/filed.c:357 src/stored/stored.c:362
#, c-format
msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:505 src/filed/filed.c:360 src/stored/stored.c:365
+#: src/dird/dird.c:508 src/filed/filed.c:363 src/stored/stored.c:368
#, c-format
msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:511 src/filed/filed.c:366 src/stored/stored.c:371
+#: src/dird/dird.c:514 src/filed/filed.c:369 src/stored/stored.c:374
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/dird/dird.c:530 src/filed/filed.c:385 src/stored/stored.c:390
+#: src/dird/dird.c:533 src/filed/filed.c:388 src/stored/stored.c:393
#, c-format
msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:538
+#: src/dird/dird.c:541
#, c-format
msgid "No Job records defined in %s\n"
msgstr ""
-#: src/dird/dird.c:669 src/dird/job.c:101 src/dird/ua_cmds.c:1424
+#: src/dird/dird.c:585 src/dird/dird.c:598
+#, c-format
+msgid "Hey something is wrong. p=0x%lu\n"
+msgstr ""
+
+#: src/dird/dird.c:647
+#, c-format
+msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n"
+msgstr ""
+
+#: src/dird/dird.c:654
+msgid "Too many items in Job resource\n"
+msgstr ""
+
+#: src/dird/dird.c:672 src/dird/job.c:101 src/dird/ua_cmds.c:1424
#: src/dird/ua_output.c:598
#, c-format
msgid "Could not open database \"%s\".\n"
msgstr ""
-#: src/dird/dird.c:672
+#: src/dird/dird.c:675
#, c-format
msgid "%s"
msgstr ""
-#: src/dird/dird.c:714
+#: src/dird/dird.c:717
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Storage \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:730 src/stored/stored.c:345
+#: src/dird/dird.c:733 src/stored/stored.c:348
#, c-format
msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:781
+#: src/dird/dird.c:784
#, c-format
msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:787
+#: src/dird/dird.c:790
#, c-format
msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:793
+#: src/dird/dird.c:796
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/dird/dird.c:810 src/dird/dird.c:850 src/filed/filed.c:323
+#: src/dird/dird.c:813 src/dird/dird.c:853 src/filed/filed.c:326
#, c-format
msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:833
+#: src/dird/dird.c:836
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"File daemon \"%s\" in %s.\n"
msgstr ""
+#: src/dird/dird_conf.c:441 src/tray-monitor/tray_conf.c:152
+#, c-format
+msgid "No %s resource defined\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:450
+#, c-format
+msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:455
+#, c-format
+msgid " query_file=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:458 src/dird/dird_conf.c:483 src/dird/dird_conf.c:497
+#: src/dird/dird_conf.c:541 src/dird/dird_conf.c:545 src/dird/dird_conf.c:549
+#: src/dird/dird_conf.c:573 src/dird/dird_conf.c:578 src/dird/dird_conf.c:582
+#: src/dird/dird_conf.c:586 src/dird/dird_conf.c:590 src/dird/dird_conf.c:594
+#: src/dird/dird_conf.c:604
+msgid " --> "
+msgstr ""
+
+#: src/dird/dird_conf.c:464 src/dird/dird_conf.c:467
+#, c-format
+msgid "Console: name=%s SSL=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:473
+#, c-format
+msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:478
+#, c-format
+msgid "Counter: name=%s min=%d max=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:489
+#, c-format
+msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:492
+#, c-format
+msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:504
+#, c-format
+msgid ""
+"Device: name=%s ok=%d num_writers=%d max_writers=%d\n"
+" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%"
+"d\n"
+" poolid=%s volname=%s MediaType=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:514
+#, c-format
+msgid ""
+"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n"
+" DeviceName=%s MediaType=%s StorageId=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:523
+#, c-format
+msgid ""
+"Catalog: name=%s address=%s DBport=%d db_name=%s\n"
+" db_user=%s MutliDBConn=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:531
+#, c-format
+msgid "%s: name=%s JobType=%d level=%s Priority=%d MaxJobs=%u\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:532
+msgid "JobDefs"
+msgstr ""
+
+#: src/dird/dird_conf.c:536
+#, c-format
+msgid " Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:553
+#, c-format
+msgid " --> Where=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:556
+#, c-format
+msgid " --> Bootstrap=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:559
+#, c-format
+msgid " --> RunBefore=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:562
+#, c-format
+msgid " --> RunAfter=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:565
+#, c-format
+msgid " --> RunAfterFailed=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:568
+#, c-format
+msgid " --> WriteBootstrap=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:600
+#, c-format
+msgid " --> Run=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:611
+#, c-format
+msgid "FileSet: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:673 src/dird/dird_conf.c:752
+#, c-format
+msgid "Schedule: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:678
+#, c-format
+msgid " --> Run Level=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:679
+msgid " hour="
+msgstr ""
+
+#: src/dird/dird_conf.c:688
+msgid " mday="
+msgstr ""
+
+#: src/dird/dird_conf.c:697
+msgid " month="
+msgstr ""
+
+#: src/dird/dird_conf.c:706
+msgid " wday="
+msgstr ""
+
+#: src/dird/dird_conf.c:715
+msgid " wom="
+msgstr ""
+
+#: src/dird/dird_conf.c:724
+msgid " woy="
+msgstr ""
+
+#: src/dird/dird_conf.c:733
+#, c-format
+msgid " mins=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:735 src/dird/dird_conf.c:739 src/dird/dird_conf.c:743
+msgid " --> "
+msgstr ""
+
+#: src/dird/dird_conf.c:756
+#, c-format
+msgid "Pool: name=%s PoolType=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:758
+#, c-format
+msgid " use_cat=%d use_once=%d acpt_any=%d cat_files=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:761
+#, c-format
+msgid " max_vols=%d auto_prune=%d VolRetention=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:764
+#, c-format
+msgid " VolUse=%s recycle=%d LabelFormat=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:768
+#, c-format
+msgid " CleaningPrefix=%s LabelType=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:770
+#, c-format
+msgid " RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:776
+#, c-format
+msgid "Messages: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:778
+#, c-format
+msgid " mailcmd=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:780
+#, c-format
+msgid " opcmd=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:783 src/tray-monitor/tray_conf.c:179
+#, c-format
+msgid "Unknown resource type %d in dump_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1077 src/tray-monitor/tray_conf.c:232
+#, c-format
+msgid "Unknown resource type %d in free_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1115 src/lib/parse_conf.c:211
+#: src/tray-monitor/tray_conf.c:268
+#, c-format
+msgid "Too many items in %s resource\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1149
+#, c-format
+msgid "Cannot find Console resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1155 src/filed/filed_conf.c:316
+#: src/stored/stored_conf.c:523
+#, c-format
+msgid "Cannot find Director resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1162 src/stored/stored_conf.c:529
+#, c-format
+msgid "Cannot find Storage resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1171
+#, c-format
+msgid "Cannot find Job resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1189
+#, c-format
+msgid "Cannot find Counter resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1197 src/filed/filed_conf.c:322
+#, c-format
+msgid "Cannot find Client resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1209
+#, c-format
+msgid "Cannot find Schedule resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1214 src/tray-monitor/tray_conf.c:287
+#, c-format
+msgid "Unknown resource type %d in save_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1274 src/tray-monitor/tray_conf.c:322
+#, c-format
+msgid "Unknown resource type %d in save_resrouce.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1289
+#, c-format
+msgid "Name item is required in %s resource, but not found.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1301
+#, c-format
+msgid "Inserting %s res: %s index=%d pass=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1374
+#, c-format
+msgid "Expected a Job Type keyword, got: %s"
+msgstr ""
+
+#: src/dird/dird_conf.c:1398
+#, c-format
+msgid "Expected a Job Level keyword, got: %s"
+msgstr ""
+
+#: src/dird/dird_conf.c:1418
+#, c-format
+msgid "Expected a Restore replacement option, got: %s"
+msgstr ""
+
#: src/dird/expand.c:137
msgid "Year"
msgstr ""
msgid "Cannot destroy var context: ERR=%s\n"
msgstr ""
-#: src/dird/fd_cmds.c:73
+#: src/dird/fd_cmds.c:73 src/tray-monitor/tray-monitor.c:867
msgid "File daemon"
msgstr ""
msgid "FD gave bad response to JobId command: %s\n"
msgstr ""
+#: src/dird/fd_cmds.c:144 src/dird/fd_cmds.c:180
+msgid ", since="
+msgstr ""
+
#: src/dird/fd_cmds.c:164
msgid "No prior or suitable Full backup found. Doing FULL backup.\n"
msgstr ""
+#: src/dird/fd_cmds.c:165 src/dird/fd_cmds.c:173
+#, c-format
+msgid " (upgraded from %s)"
+msgstr ""
+
#: src/dird/fd_cmds.c:171
#, c-format
msgid "Prior failed job found. Upgrading to %s.\n"
msgstr ""
+#: src/dird/fd_cmds.c:196
+msgid "since_utime "
+msgstr ""
+
#: src/dird/fd_cmds.c:232
#, c-format
msgid "Unimplemented backup level %d %c\n"
"msglen=%d msg=%s\n"
msgstr ""
-#: src/dird/fd_cmds.c:571 src/dird/verify.c:692
+#: src/dird/fd_cmds.c:571 src/dird/verify.c:696
#, c-format
msgid "MD5/SHA1 index %d not same as attributes %d\n"
msgstr ""
#: src/dird/getmsg.c:318
#, c-format
-msgid "Bad response to %s command: wanted %s got: %s\n"
+msgid "Bad response to %s command: wanted %s, got %s\n"
msgstr ""
#: src/dird/getmsg.c:323
msgid "Socket error on %s command: ERR=%s\n"
msgstr ""
+#: src/dird/inc_conf.c:249
+#, c-format
+msgid "Expected a FileSet option keyword, got:%s:"
+msgstr ""
+
#: src/dird/inc_conf.c:282
msgid "Old style Include/Exclude not supported\n"
msgstr ""
msgid "Expecting keyword, got: %s\n"
msgstr ""
+#: src/dird/inc_conf.c:318 src/dird/inc_conf.c:583 src/lib/parse_conf.c:819
+#, c-format
+msgid "expected an equals, got: %s"
+msgstr ""
+
+#: src/dird/inc_conf.c:328 src/dird/inc_conf.c:592
+#, c-format
+msgid "Keyword %s not permitted in this resource"
+msgstr ""
+
#: src/dird/inc_conf.c:381
#, c-format
msgid "Regex compile error. ERR=%s\n"
msgid "Expected a filename, got: %s"
msgstr ""
+#: src/dird/inc_conf.c:562
+#, c-format
+msgid "Expecting open brace. Got %s"
+msgstr ""
+
+#: src/dird/inc_conf.c:617
+#, c-format
+msgid "Expected a FileSet keyword, got: %s"
+msgstr ""
+
#: src/dird/job.c:50
#, c-format
msgid "Could not init job queue: ERR=%s\n"
msgstr ""
-#: src/dird/job.c:86 src/stored/dircmd.c:174 src/stored/stored.c:485
+#: src/dird/job.c:86 src/stored/dircmd.c:174 src/stored/stored.c:488
#, c-format
msgid "Unable to init job cond variable: ERR=%s\n"
msgstr ""
msgid "Job canceled because max start delay time exceeded.\n"
msgstr ""
+#: src/dird/job.c:229 src/dird/job.c:307
+#, c-format
+msgid "Unimplemented job type: %d\n"
+msgstr ""
+
#: src/dird/job.c:254
#, c-format
msgid "RunBefore: %s"
msgid "Unhandled job status code %d\n"
msgstr ""
-#: src/dird/job.c:621 src/stored/bscan.c:893
+#: src/dird/job.c:621 src/stored/bscan.c:902
#, c-format
msgid "Could not create Client record. ERR=%s\n"
msgstr ""
msgid "Error updating job record. %s"
msgstr ""
+#: src/dird/jobq.c:67
+#, c-format
+msgid "pthread_attr_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:76
+#, c-format
+msgid "pthread_mutex_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:82
+#, c-format
+msgid "pthread_cond_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:115 src/dird/jobq.c:242 src/dird/jobq.c:307
+#: src/dird/jobq.c:388
+#, c-format
+msgid "pthread_mutex_lock: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:128
+#, c-format
+msgid "pthread_cond_broadcast: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:136
+#, c-format
+msgid "pthread_cond_wait: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:144
+#, c-format
+msgid "pthread_mutex_unlock: ERR=%s\n"
+msgstr ""
+
#: src/dird/jobq.c:180
#, c-format
msgid "Job %s waiting %d seconds for scheduled start time.\n"
msgstr ""
+#: src/dird/jobq.c:235
+#, c-format
+msgid "pthread_thread_create: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:353
+#, c-format
+msgid "pthread_cond_signal: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:362
+#, c-format
+msgid "pthread_create: ERR=%s\n"
+msgstr ""
+
#: src/dird/jobq.c:487
#, c-format
msgid "Rescheduled Job %s at %s to re-run in %d seconds.\n"
#: src/dird/mac.c:377
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Backup Level: %s%s\n"
msgstr ""
#: src/dird/msgchan.c:78 src/filed/job.c:1128
+#: src/tray-monitor/tray-monitor.c:874
msgid "Storage daemon"
msgstr ""
msgid "Catalog error updating volume \"%s\". ERR=%s"
msgstr ""
+#: src/dird/next_vol.c:262
+msgid "volume has expired"
+msgstr ""
+
+#: src/dird/next_vol.c:280 src/dird/next_vol.c:316
+#, c-format
+msgid "Recycled current volume \"%s\"\n"
+msgstr ""
+
+#: src/dird/next_vol.c:285
+msgid "and recycling of current volume failed"
+msgstr ""
+
+#: src/dird/next_vol.c:291
+msgid "but should be Append, Purged or Recycle"
+msgstr ""
+
+#: src/dird/next_vol.c:319
+msgid ""
+"but should be Append, Purged or Recycle (recycling of the current volume "
+"failed)"
+msgstr ""
+
+#: src/dird/next_vol.c:323
+msgid ""
+"but should be Append, Purged or Recycle (cannot automatically recycle "
+"current volume, as it still contains unpruned data)"
+msgstr ""
+
+#: src/dird/recycle.c:102
+#, c-format
+msgid "Recycled volume \"%s\"\n"
+msgstr ""
+
#: src/dird/restore.c:70
msgid "Cannot restore without bootstrap file.\n"
msgstr ""
#: src/dird/restore.c:275
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Client: %s\n"
msgid "fifth"
msgstr ""
-#: src/dird/run_conf.c:201 src/dird/run_conf.c:213 src/lib/parse_conf.c:699
+#: src/dird/run_conf.c:188
+#, c-format
+msgid "Expected an equals, got: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:201 src/dird/run_conf.c:213
#, c-format
msgid "Expect a YES or NO, got: %s"
msgstr ""
msgid "Job level field: %s not found in run record"
msgstr ""
+#: src/dird/run_conf.c:245
+#, c-format
+msgid "Could not find specified Pool Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:270
+#, c-format
+msgid "Could not find specified Storage Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:282
+#, c-format
+msgid "Could not find specified Messages Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:290
+#, c-format
+msgid "Expected a keyword name, got: %s"
+msgstr ""
+
#: src/dird/run_conf.c:325
msgid "Day number out of range (1-31)"
msgstr ""
msgid "Job %s not found\n"
msgstr ""
+#: src/dird/scheduler.c:102
+msgid "Walk queue"
+msgstr ""
+
+#: src/dird/scheduler.c:112
+msgid "Dequeued job"
+msgstr ""
+
#: src/dird/scheduler.c:115
msgid "Scheduler logic error\n"
msgstr ""
+#: src/dird/scheduler.c:132
+msgid "Run job"
+msgstr ""
+
+#: src/dird/scheduler.c:345
+msgid "Inserted job"
+msgstr ""
+
+#: src/dird/scheduler.c:353
+msgid "Appended job"
+msgstr ""
+
+#: src/dird/scheduler.c:357
+msgid "Run queue"
+msgstr ""
+
#: src/dird/ua_cmds.c:88
msgid "add"
msgstr ""
msgstr ""
#: src/dird/ua_cmds.c:97 src/dird/ua_output.c:112 src/dird/ua_tree.c:64
+#: src/stored/btape.c:2533
msgid "help"
msgstr ""
-#: src/dird/ua_cmds.c:97
+#: src/dird/ua_cmds.c:97 src/stored/btape.c:2533
msgid "print this command"
msgstr ""
"from catalog"
msgstr ""
-#: src/dird/ua_cmds.c:99
+#: src/dird/ua_cmds.c:99 src/stored/btape.c:2534
msgid "label"
msgstr ""
msgid "run <job-name>"
msgstr ""
-#: src/dird/ua_cmds.c:113
+#: src/dird/ua_cmds.c:113 src/stored/btape.c:2543
msgid "status"
msgstr ""
msgid "use SQL to query catalog"
msgstr ""
-#: src/dird/ua_cmds.c:119 src/dird/ua_cmds.c:768
+#: src/dird/ua_cmds.c:119
msgid "trace"
msgstr ""
msgid "off"
msgstr ""
-#: src/dird/ua_cmds.c:368 src/dird/ua_cmds.c:1055 src/dird/ua_cmds.c:1071
-#: src/dird/ua_cmds.c:1115 src/dird/ua_output.c:272 src/dird/ua_output.c:296
-#: src/dird/ua_output.c:315 src/dird/ua_output.c:346 src/dird/ua_select.c:618
-#: src/dird/ua_select.c:793
+#: src/dird/ua_cmds.c:368 src/dird/ua_cmds.c:1055 src/dird/ua_cmds.c:1115
+#: src/dird/ua_output.c:272 src/dird/ua_output.c:296 src/dird/ua_output.c:315
+#: src/dird/ua_output.c:346 src/dird/ua_select.c:618 src/dird/ua_select.c:793
msgid "jobid"
msgstr ""
msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n"
msgstr ""
-#: src/dird/ua_cmds.c:379 src/dird/ua_cmds.c:919 src/dird/ua_output.c:282
-#: src/dird/ua_output.c:291 src/dird/ua_output.c:310 src/dird/ua_output.c:341
-#: src/dird/ua_select.c:615 src/dird/ua_select.c:807
+#: src/dird/ua_cmds.c:379 src/dird/ua_output.c:282 src/dird/ua_output.c:291
+#: src/dird/ua_output.c:310 src/dird/ua_output.c:341 src/dird/ua_select.c:615
+#: src/dird/ua_select.c:807
msgid "job"
msgstr ""
msgid "Warning Job %s is not running. Continuing anyway ...\n"
msgstr ""
-#: src/dird/ua_cmds.c:407 src/filed/status.c:193 src/stored/status.c:311
+#: src/dird/ua_cmds.c:407 src/filed/status.c:193 src/stored/status.c:315
msgid "No Jobs running.\n"
msgstr ""
msgid "Select Job:\n"
msgstr ""
+#: src/dird/ua_cmds.c:417
+#, c-format
+msgid "JobId=%s Job=%s"
+msgstr ""
+
#: src/dird/ua_cmds.c:422
msgid "Choose Job to cancel"
msgstr ""
msgid "Client \"%s\" address set to %s\n"
msgstr ""
-#: src/dird/ua_cmds.c:616 src/dird/ua_status.c:281
+#: src/dird/ua_cmds.c:616 src/dird/ua_status.c:286
#, c-format
msgid "Connecting to Storage daemon %s at %s:%d\n"
msgstr ""
-#: src/dird/ua_cmds.c:622 src/dird/ua_status.c:292
+#: src/dird/ua_cmds.c:622 src/dird/ua_status.c:297
msgid "Connected to storage daemon\n"
msgstr ""
-#: src/dird/ua_cmds.c:642 src/dird/ua_cmds.c:982 src/dird/ua_status.c:319
+#: src/dird/ua_cmds.c:642 src/dird/ua_cmds.c:982 src/dird/ua_status.c:324
#, c-format
msgid "Connecting to Client %s at %s:%d\n"
msgstr ""
msgid "Failed to connect to Client.\n"
msgstr ""
-#: src/dird/ua_cmds.c:756 src/dird/ua_cmds.c:935
-msgid "level"
-msgstr ""
-
#: src/dird/ua_cmds.c:761
msgid "Enter new debug level: "
msgstr ""
-#: src/dird/ua_cmds.c:778 src/dird/ua_output.c:111 src/dird/ua_status.c:101
-msgid "all"
-msgstr ""
-
-#: src/dird/ua_cmds.c:782 src/dird/ua_status.c:104 src/dird/ua_tree.c:59
-msgid "dir"
-msgstr ""
-
-#: src/dird/ua_cmds.c:783 src/dird/ua_status.c:105
-msgid "director"
-msgstr ""
-
-#: src/dird/ua_cmds.c:788 src/dird/ua_cmds.c:912 src/dird/ua_restore.c:272
-#: src/dird/ua_select.c:288 src/dird/ua_select.c:325 src/dird/ua_status.c:108
-#: src/lib/bnet_server.c:291
-msgid "client"
-msgstr ""
-
-#: src/dird/ua_cmds.c:789 src/dird/ua_cmds.c:913 src/dird/ua_select.c:289
-#: src/dird/ua_select.c:326
-msgid "fd"
-msgstr ""
-
-#: src/dird/ua_cmds.c:805
-msgid "store"
-msgstr ""
-
-#: src/dird/ua_cmds.c:806 src/dird/ua_select.c:788
-msgid "storage"
-msgstr ""
-
-#: src/dird/ua_cmds.c:807 src/dird/ua_select.c:789
-msgid "sd"
-msgstr ""
-
#: src/dird/ua_cmds.c:827
msgid "Available daemons are: \n"
msgstr ""
-#: src/dird/ua_cmds.c:828 src/dird/ua_status.c:127
-msgid "Director"
-msgstr ""
-
-#: src/dird/ua_cmds.c:831 src/dird/ua_status.c:130
-msgid "All"
-msgstr ""
-
#: src/dird/ua_cmds.c:832
msgid "Select daemon type to set debug level"
msgstr ""
-#: src/dird/ua_cmds.c:925
-msgid "fileset"
-msgstr ""
-
-#: src/dird/ua_cmds.c:931
-msgid "listing"
-msgstr ""
-
#: src/dird/ua_cmds.c:937 src/dird/ua_run.c:478
#, c-format
msgid "Level %s not valid.\n"
msgid "Using Catalog name=%s DB=%s\n"
msgstr ""
-#: src/dird/ua_cmds.c:1369 src/dird/ua_tree.c:590 src/stored/btape.c:2531
+#: src/dird/ua_cmds.c:1369 src/dird/ua_tree.c:594 src/stored/btape.c:2580
#, c-format
msgid ""
" Command Description\n"
" ======= ===========\n"
msgstr ""
-#: src/dird/ua_cmds.c:1371 src/dird/ua_tree.c:592
+#: src/dird/ua_cmds.c:1371
#, c-format
msgid " %-10s %s\n"
msgstr ""
"\n"
msgstr ""
-#: src/dird/ua_cmds.c:1382
+#: src/dird/ua_cmds.c:1389
#, c-format
-msgid "%s %s\n"
+msgid "%s Version: %s (%s)\n"
msgstr ""
#: src/dird/ua_cmds.c:1408
msgid ".exit"
msgstr ""
-#: src/dird/ua_dotcmds.c:221 src/dird/ua_restore.c:739
-#: src/dird/ua_restore.c:777
+#: src/dird/ua_dotcmds.c:121
+msgid "The Director will segment fault.\n"
+msgstr ""
+
+#: src/dird/ua_dotcmds.c:221 src/dird/ua_restore.c:747
+#: src/dird/ua_restore.c:785
#, c-format
msgid "Query failed: %s. ERR=%s\n"
msgstr ""
-#: src/dird/ua_input.c:120 src/dird/ua_restore.c:228 src/dird/ua_run.c:487
+#: src/dird/ua_input.c:82
+msgid "Enter slot"
+msgstr ""
+
+#: src/dird/ua_input.c:86 src/dird/ua_input.c:92
+#, c-format
+msgid "Expected a positive integer, got: %s\n"
+msgstr ""
+
+#: src/dird/ua_input.c:120 src/dird/ua_restore.c:232 src/dird/ua_run.c:487
#: src/dird/ua_run.c:860 src/dird/ua_select.c:54 src/dird/ua_update.c:232
#: src/dird/ua_update.c:247 src/dird/ua_update.c:495
+#: src/stored/parse_bsr.c:741 src/tools/dbcheck.c:1098
msgid "yes"
msgstr ""
#: src/dird/ua_input.c:124 src/dird/ua_select.c:57 src/dird/ua_update.c:234
#: src/dird/ua_update.c:247 src/dird/ua_update.c:495
+#: src/stored/parse_bsr.c:741
msgid "no"
msgstr ""
msgid "Slot too large.\n"
msgstr ""
-#: src/dird/ua_label.c:170
+#: src/dird/ua_label.c:170 src/stored/btape.c:2541
msgid "scan"
msgstr ""
"==============\n"
msgstr ""
-#: src/dird/ua_label.c:484
+#: src/dird/ua_label.c:484 src/stored/btape.c:608
msgid "Do you want to continue? (y/n): "
msgstr ""
msgid "Media record for Slot %d Volume \"%s\" already exists.\n"
msgstr ""
+#: src/dird/ua_label.c:511
+#, c-format
+msgid "Error setting InChanger: ERR=%s"
+msgstr ""
+
#: src/dird/ua_label.c:536
#, c-format
msgid "Catalog record for cleaning tape \"%s\" successfully created.\n"
msgstr ""
+#: src/dird/ua_label.c:543
+#, c-format
+msgid "Catalog error on cleaning tape: %s"
+msgstr ""
+
#: src/dird/ua_label.c:579
#, c-format
msgid "Illegal character \"%c\" in a volume name.\n"
msgid "pools"
msgstr ""
+#: src/dird/ua_output.c:111 src/dird/ua_status.c:101
+msgid "all"
+msgstr ""
+
#: src/dird/ua_output.c:178
msgid "Keywords for the show command are:\n"
msgstr ""
msgstr ""
#: src/dird/ua_prune.c:163 src/dird/ua_purge.c:174 src/dird/ua_purge.c:179
-#: src/stored/label.c:957
+#: src/stored/label.c:956
msgid "Volume"
msgstr ""
msgid "Pruned %d %s for client %s from catalog.\n"
msgstr ""
+#: src/dird/ua_prune.c:502
+#, c-format
+msgid "There are no Jobs associated with Volume \"%s\". Prune not needed.\n"
+msgstr ""
+
+#: src/dird/ua_prune.c:509 src/dird/ua_purge.c:488
+#, c-format
+msgid "There are no Jobs associated with Volume \"%s\". Marking it purged.\n"
+msgstr ""
+
#: src/dird/ua_prune.c:567
#, c-format
msgid "Pruned %d %s on Volume \"%s\" from catalog.\n"
msgid "%d File%s on Volume \"%s\" purged from catalog.\n"
msgstr ""
+#: src/dird/ua_purge.c:555
+#, c-format
+msgid ""
+"There are no more Jobs associated with Volume \"%s\". Marking it purged.\n"
+msgstr ""
+
#: src/dird/ua_purge.c:584
#, c-format
msgid "Cannot purge Volume with VolStatus=%s\n"
msgstr ""
+#: src/dird/ua_query.c:59 src/findlib/create_file.c:276
+#: src/findlib/create_file.c:333
+#, c-format
+msgid "Could not open %s: ERR=%s\n"
+msgstr ""
+
#: src/dird/ua_query.c:64
msgid "Available queries:\n"
msgstr ""
"Terminate query mode with a blank line.\n"
msgstr ""
-#: src/dird/ua_query.c:272
+#: src/dird/ua_query.c:255 src/dird/ua_query.c:272
msgid "Enter SQL query: "
msgstr ""
msgid "Unable to construct a valid BSR. Cannot continue.\n"
msgstr ""
-#: src/dird/ua_restore.c:182 src/dird/ua_restore.c:192
+#: src/dird/ua_restore.c:182 src/dird/ua_restore.c:196
msgid "No files selected to be restored.\n"
msgstr ""
-#: src/dird/ua_restore.c:189
+#: src/dird/ua_restore.c:190
+msgid ""
+"\n"
+"1 file selected to be restored.\n"
+"\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:193
#, c-format
msgid ""
"\n"
-"%u file%s selected to be restored.\n"
+"%u files selected to be restored.\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:207
+#: src/dird/ua_restore.c:211
msgid "No Restore Job resource found!\n"
msgstr ""
-#: src/dird/ua_restore.c:352
+#: src/dird/ua_restore.c:276 src/dird/ua_select.c:288 src/dird/ua_select.c:325
+#: src/dird/ua_status.c:108 src/lib/bnet_server.c:291
+#: src/lib/bnet_server.c:385
+msgid "client"
+msgstr ""
+
+#: src/dird/ua_restore.c:309
+msgid "List last 20 Jobs run"
+msgstr ""
+
+#: src/dird/ua_restore.c:310
+msgid "List Jobs where a given File is saved"
+msgstr ""
+
+#: src/dird/ua_restore.c:311
+msgid "Enter list of comma separated JobIds to select"
+msgstr ""
+
+#: src/dird/ua_restore.c:312
+msgid "Enter SQL list command"
+msgstr ""
+
+#: src/dird/ua_restore.c:313
+msgid "Select the most recent backup for a client"
+msgstr ""
+
+#: src/dird/ua_restore.c:314
+msgid "Select backup for a client before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:315
+msgid "Enter a list of files to restore"
+msgstr ""
+
+#: src/dird/ua_restore.c:316
+msgid "Enter a list of files to restore before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:317
+msgid "Find the JobIds of the most recent backup for a client"
+msgstr ""
+
+#: src/dird/ua_restore.c:318
+msgid "Find the JobIds for a backup for a client before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:319
+msgid "Enter a list of directories to restore for found JobIds"
+msgstr ""
+
+#: src/dird/ua_restore.c:320 src/dird/ua_status.c:702 src/filed/status.c:249
+#: src/stored/status.c:367 src/wx-console/wxbconfigpanel.cpp:191
+msgid "Cancel"
+msgstr ""
+
+#: src/dird/ua_restore.c:356
#, c-format
msgid "Unknown keyword: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:370
+#: src/dird/ua_restore.c:374
#, c-format
msgid "Improper date format: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:404 src/dird/ua_select.c:576
+#: src/dird/ua_restore.c:408 src/dird/ua_select.c:576
#, c-format
msgid "Error: Pool resource \"%s\" does not exist.\n"
msgstr ""
-#: src/dird/ua_restore.c:409
+#: src/dird/ua_restore.c:413
#, c-format
msgid "Error: Pool resource \"%s\" access not allowed.\n"
msgstr ""
-#: src/dird/ua_restore.c:428
+#: src/dird/ua_restore.c:432
msgid ""
"\n"
"First you select one or more JobIds that contain files\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:440
+#: src/dird/ua_restore.c:444
msgid "To select the JobIds, you have the following choices:\n"
msgstr ""
-#: src/dird/ua_restore.c:445
+#: src/dird/ua_restore.c:449
msgid "Select item: "
msgstr ""
-#: src/dird/ua_restore.c:459
+#: src/dird/ua_restore.c:463
msgid "Enter Filename (no path):"
msgstr ""
-#: src/dird/ua_restore.c:474 src/dird/ua_restore.c:574
+#: src/dird/ua_restore.c:478 src/dird/ua_restore.c:578
msgid "Enter JobId(s), comma separated, to restore: "
msgstr ""
-#: src/dird/ua_restore.c:480
+#: src/dird/ua_restore.c:484
msgid "Enter SQL list command: "
msgstr ""
-#: src/dird/ua_restore.c:508 src/dird/ua_restore.c:533
+#: src/dird/ua_restore.c:512 src/dird/ua_restore.c:537
msgid ""
"Enter file names with paths, or < to enter a filename\n"
"containg a list of file names with paths, and terminate\n"
"them with a blank line.\n"
msgstr ""
-#: src/dird/ua_restore.c:512 src/dird/ua_restore.c:537
+#: src/dird/ua_restore.c:516 src/dird/ua_restore.c:541
msgid "Enter full filename: "
msgstr ""
-#: src/dird/ua_restore.c:572
+#: src/dird/ua_restore.c:576
#, c-format
msgid "You have already seleted the following JobIds: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:587
+#: src/dird/ua_restore.c:591
msgid ""
"Enter full directory names or start the name\n"
"with a < to indicate it is a filename containg a list\n"
"of directories and terminate them with a blank line.\n"
msgstr ""
-#: src/dird/ua_restore.c:591
+#: src/dird/ua_restore.c:595
msgid "Enter directory name: "
msgstr ""
-#: src/dird/ua_restore.c:616
+#: src/dird/ua_restore.c:620
msgid "No Jobs selected.\n"
msgstr ""
-#: src/dird/ua_restore.c:619
+#: src/dird/ua_restore.c:624
+#, c-format
+msgid "You have selected the following JobIds: %s\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:627
#, c-format
-msgid "You have selected the following JobId%s: %s\n"
+msgid "You have selected the following JobId: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:628
+#: src/dird/ua_restore.c:636
msgid "Invalid JobId in list.\n"
msgstr ""
-#: src/dird/ua_restore.c:640
+#: src/dird/ua_restore.c:648
#, c-format
msgid "Unable to get Job record for JobId=%s: ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:645
+#: src/dird/ua_restore.c:653
#, c-format
msgid "No authorization. Job \"%s\" not selected.\n"
msgstr ""
-#: src/dird/ua_restore.c:659
+#: src/dird/ua_restore.c:667
msgid ""
"The restored files will the most current backup\n"
"BEFORE the date you specify below.\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:662
+#: src/dird/ua_restore.c:670
msgid "Enter date as YYYY-MM-DD HH:MM:SS :"
msgstr ""
-#: src/dird/ua_restore.c:668
+#: src/dird/ua_restore.c:676
msgid "Improper date format.\n"
msgstr ""
-#: src/dird/ua_restore.c:689
+#: src/dird/ua_restore.c:697
#, c-format
msgid "Cannot open file %s: ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:697 src/dird/ua_restore.c:701
+#: src/dird/ua_restore.c:705 src/dird/ua_restore.c:709
#, c-format
msgid "Error occurred on line %d of %s\n"
msgstr ""
-#: src/dird/ua_restore.c:743 src/dird/ua_restore.c:781
+#: src/dird/ua_restore.c:751 src/dird/ua_restore.c:789
#, c-format
msgid "No database record found for: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:768
+#: src/dird/ua_restore.c:776
msgid "No JobId specified cannot continue.\n"
msgstr ""
-#: src/dird/ua_restore.c:887
+#: src/dird/ua_restore.c:895
#, c-format
msgid ""
"\n"
"Building directory tree for JobId %s ... "
msgstr ""
-#: src/dird/ua_restore.c:908
+#: src/dird/ua_restore.c:914
+msgid ""
+"\n"
+"There were no files inserted into the tree, so file selection\n"
+"is not possible.Most likely your retention policy pruned the files\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:916
msgid ""
"\n"
"Do you want to restore all the files? (yes|no): "
msgstr ""
-#: src/dird/ua_restore.c:929 src/dird/ua_tree.c:60
+#: src/dird/ua_restore.c:932
+#, c-format
+msgid ""
+"\n"
+"1 Job, %s files inserted into the tree and marked for extraction.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:936
+#, c-format
+msgid ""
+"\n"
+"1 Job, %s files inserted into the tree.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:942
+#, c-format
+msgid ""
+"\n"
+"%d Jobs, %s files inserted into the tree and marked for extraction.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:946
+#, c-format
+msgid ""
+"\n"
+"%d Jobs, %s files inserted into the tree.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:954 src/dird/ua_tree.c:60
msgid "done"
msgstr ""
-#: src/dird/ua_restore.c:998
+#: src/dird/ua_restore.c:1023
#, c-format
msgid "Error getting FileSet \"%s\": ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:1006 src/dird/ua_select.c:165
+#: src/dird/ua_restore.c:1031 src/dird/ua_select.c:165
msgid "The defined FileSet resources are:\n"
msgstr ""
-#: src/dird/ua_restore.c:1010 src/dird/ua_select.c:173
+#: src/dird/ua_restore.c:1035 src/dird/ua_select.c:173
msgid "Select FileSet resource"
msgstr ""
-#: src/dird/ua_restore.c:1017
+#: src/dird/ua_restore.c:1042
#, c-format
msgid "Error getting FileSet record: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:1018
+#: src/dird/ua_restore.c:1043
msgid ""
"This probably means you modified the FileSet.\n"
"Continuing anyway.\n"
msgstr ""
-#: src/dird/ua_restore.c:1033
+#: src/dird/ua_restore.c:1058
#, c-format
msgid "Pool \"%s\" not found, using any pool.\n"
msgstr ""
-#: src/dird/ua_restore.c:1059 src/dird/ua_restore.c:1075
+#: src/dird/ua_restore.c:1084 src/dird/ua_restore.c:1100
#, c-format
msgid "No Full backup before %s found.\n"
msgstr ""
-#: src/dird/ua_restore.c:1098
+#: src/dird/ua_restore.c:1123
msgid "No jobs found.\n"
msgstr ""
-#: src/dird/ua_restore.c:1264
+#: src/dird/ua_restore.c:1289
msgid ""
"Warning, the JobIds that you selected refer to more than one MediaType.\n"
"Restore is not possible. The MediaTypes used are:\n"
msgstr ""
-#: src/dird/ua_restore.c:1272
+#: src/dird/ua_restore.c:1297
msgid "No MediaType found for your JobIds.\n"
msgstr ""
-#: src/dird/ua_restore.c:1304
+#: src/dird/ua_restore.c:1329
#, c-format
msgid "Warning default storage overridden by %s on command line.\n"
msgstr ""
-#: src/dird/ua_restore.c:1315
+#: src/dird/ua_restore.c:1340
#, c-format
msgid ""
"\n"
msgid "Parameters to modify:\n"
msgstr ""
-#: src/dird/ua_run.c:646
+#: src/dird/ua_run.c:646 src/wx-console/wxbrestorepanel.cpp:380
+#: src/wx-console/wxbrestorepanel.cpp:808
+#: src/wx-console/wxbrestorepanel.cpp:1833
msgid "When"
msgstr ""
#: src/dird/ua_run.c:647 src/dird/pythondir.c:73 src/dird/pythondir.c:83
+#: src/wx-console/wxbrestorepanel.cpp:381
+#: src/wx-console/wxbrestorepanel.cpp:1079
+#: src/wx-console/wxbrestorepanel.cpp:1835
msgid "Priority"
msgstr ""
msgid "Verify Job"
msgstr ""
-#: src/dird/ua_run.c:655
+#: src/dird/ua_run.c:655 src/wx-console/wxbrestorepanel.cpp:373
+#: src/wx-console/wxbrestorepanel.cpp:1814
msgid "Bootstrap"
msgstr ""
-#: src/dird/ua_run.c:656
+#: src/dird/ua_run.c:656 src/wx-console/wxbrestorepanel.cpp:374
+#: src/wx-console/wxbrestorepanel.cpp:1055
+#: src/wx-console/wxbrestorepanel.cpp:1816
msgid "Where"
msgstr ""
-#: src/dird/ua_run.c:657
+#: src/dird/ua_run.c:657 src/wx-console/wxbrestorepanel.cpp:376
+#: src/wx-console/wxbrestorepanel.cpp:1063
+#: src/wx-console/wxbrestorepanel.cpp:1820
+#: src/wx-console/wxbrestorepanel.cpp:1821
+#: src/wx-console/wxbrestorepanel.cpp:1822
+#: src/wx-console/wxbrestorepanel.cpp:1823
+#: src/wx-console/wxbrestorepanel.cpp:1824
msgid "Replace"
msgstr ""
msgstr ""
#: src/dird/ua_run.c:665 src/filed/status.c:368 src/lib/util.c:319
-#: src/stored/status.c:402
+#: src/stored/status.c:406
msgid "Base"
msgstr ""
-#: src/dird/ua_run.c:666 src/filed/status.c:370 src/lib/util.c:321
-#: src/stored/status.c:404
+#: src/dird/ua_run.c:666 src/dird/ua_update.c:106 src/dird/ua_update.c:438
+#: src/filed/status.c:370 src/lib/util.c:321 src/stored/status.c:408
msgid "Full"
msgstr ""
#: src/dird/ua_run.c:667 src/filed/status.c:373 src/lib/util.c:324
-#: src/stored/status.c:407
+#: src/stored/status.c:411
msgid "Incremental"
msgstr ""
#: src/dird/ua_run.c:668 src/filed/status.c:376 src/lib/util.c:327
-#: src/stored/status.c:410
+#: src/stored/status.c:414
msgid "Differential"
msgstr ""
#: src/dird/ua_run.c:669 src/filed/status.c:379 src/lib/util.c:330
-#: src/stored/status.c:413
+#: src/stored/status.c:417
msgid "Since"
msgstr ""
msgstr ""
#: src/dird/ua_run.c:693 src/filed/status.c:382 src/lib/util.c:333
-#: src/stored/status.c:416
+#: src/stored/status.c:420
msgid "Verify Catalog"
msgstr ""
msgid "Select Client (File daemon) resource"
msgstr ""
+#: src/dird/ua_select.c:289 src/dird/ua_select.c:326
+msgid "fd"
+msgstr ""
+
#: src/dird/ua_select.c:297
#, c-format
msgid "Error: Client resource %s does not exist.\n"
msgid "Storage name given twice.\n"
msgstr ""
+#: src/dird/ua_select.c:788
+msgid "storage"
+msgstr ""
+
+#: src/dird/ua_select.c:789
+msgid "sd"
+msgstr ""
+
#: src/dird/ua_select.c:796
#, c-format
msgid "Expecting jobid=nn command, got: %s\n"
msgid "Job \"%s\" is not running.\n"
msgstr ""
+#: src/dird/ua_select.c:829
+#, c-format
+msgid "Storage resource \"%s\": not found\n"
+msgstr ""
+
#: src/dird/ua_select.c:862
msgid "Media Types defined in conf file:\n"
msgstr ""
msgid "You have messages.\n"
msgstr ""
+#: src/dird/ua_status.c:104 src/dird/ua_tree.c:59
+msgid "dir"
+msgstr ""
+
+#: src/dird/ua_status.c:105
+msgid "director"
+msgstr ""
+
#: src/dird/ua_status.c:126
msgid "Status available for:\n"
msgstr ""
+#: src/dird/ua_status.c:127
+msgid "Director"
+msgstr ""
+
+#: src/dird/ua_status.c:130
+msgid "All"
+msgstr ""
+
#: src/dird/ua_status.c:132
msgid "Select daemon type for status"
msgstr ""
-#: src/dird/ua_status.c:248 src/filed/status.c:71 src/stored/status.c:69
+#: src/dird/ua_status.c:245
#, c-format
-msgid "Daemon started %s, %d Job%s run since started.\n"
+msgid "%s Version: %s (%s) %s %s %s\n"
+msgstr ""
+
+#: src/dird/ua_status.c:249 src/stored/status.c:70
+#, c-format
+msgid "Daemon started %s, 1 Job run since started.\n"
+msgstr ""
+
+#: src/dird/ua_status.c:252 src/stored/status.c:73
+#, c-format
+msgid "Daemon started %s, %d Jobs run since started.\n"
msgstr ""
-#: src/dird/ua_status.c:252 src/filed/status.c:119 src/stored/status.c:73
+#: src/dird/ua_status.c:257 src/filed/status.c:119 src/stored/status.c:77
#, c-format
msgid " Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"
msgstr ""
-#: src/dird/ua_status.c:284
+#: src/dird/ua_status.c:277 src/dird/ua_status.c:482 src/dird/ua_status.c:644
+#: src/filed/status.c:196 src/filed/status.c:275 src/stored/status.c:317
+#: src/stored/status.c:393
+msgid "====\n"
+msgstr ""
+
+#: src/dird/ua_status.c:289
#, c-format
msgid ""
"\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:322
+#: src/dird/ua_status.c:327
#, c-format
msgid ""
"Failed to connect to Client %s.\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:330
+#: src/dird/ua_status.c:335
msgid "Connected to file daemon\n"
msgstr ""
-#: src/dird/ua_status.c:345
+#: src/dird/ua_status.c:350
msgid ""
"\n"
"Scheduled Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:346
+#: src/dird/ua_status.c:351
msgid ""
"Level Type Pri Scheduled Name Volume\n"
msgstr ""
-#: src/dird/ua_status.c:347
+#: src/dird/ua_status.c:352
msgid "===================================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:394
+#: src/dird/ua_status.c:399
#, c-format
msgid "%-14s %-8s %3d %-18s %-18s %s\n"
msgstr ""
-#: src/dird/ua_status.c:475
+#: src/dird/ua_status.c:480
msgid "No Scheduled Jobs.\n"
msgstr ""
-#: src/dird/ua_status.c:492 src/stored/status.c:265
+#: src/dird/ua_status.c:497 src/stored/status.c:269
msgid ""
"\n"
"Running Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:501
+#: src/dird/ua_status.c:506
#, c-format
msgid "Console connected at %s\n"
msgstr ""
-#: src/dird/ua_status.c:509
+#: src/dird/ua_status.c:514
msgid ""
"No Jobs running.\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:514
+#: src/dird/ua_status.c:519
msgid " JobId Level Name Status\n"
msgstr ""
-#: src/dird/ua_status.c:515 src/filed/status.c:219 src/stored/status.c:333
+#: src/dird/ua_status.c:520 src/filed/status.c:219 src/stored/status.c:337
msgid "======================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:524
+#: src/dird/ua_status.c:529
msgid "is waiting execution"
msgstr ""
-#: src/dird/ua_status.c:527
+#: src/dird/ua_status.c:532
msgid "is running"
msgstr ""
-#: src/dird/ua_status.c:530
+#: src/dird/ua_status.c:535
msgid "is blocked"
msgstr ""
-#: src/dird/ua_status.c:533
+#: src/dird/ua_status.c:538
msgid "has terminated"
msgstr ""
-#: src/dird/ua_status.c:536
+#: src/dird/ua_status.c:541
msgid "has erred"
msgstr ""
-#: src/dird/ua_status.c:539
+#: src/dird/ua_status.c:544
msgid "has errors"
msgstr ""
-#: src/dird/ua_status.c:542
+#: src/dird/ua_status.c:547
msgid "has a fatal error"
msgstr ""
-#: src/dird/ua_status.c:545
+#: src/dird/ua_status.c:550
msgid "has verify differences"
msgstr ""
-#: src/dird/ua_status.c:548
+#: src/dird/ua_status.c:553
msgid "has been canceled"
msgstr ""
-#: src/dird/ua_status.c:552
+#: src/dird/ua_status.c:557
#, c-format
msgid "is waiting on Client %s"
msgstr ""
-#: src/dird/ua_status.c:558
+#: src/dird/ua_status.c:563
#, c-format
msgid "is waiting on Storage %s"
msgstr ""
-#: src/dird/ua_status.c:563
+#: src/dird/ua_status.c:568
msgid "is waiting on max Storage jobs"
msgstr ""
-#: src/dird/ua_status.c:566
+#: src/dird/ua_status.c:571
msgid "is waiting on max Client jobs"
msgstr ""
-#: src/dird/ua_status.c:569
+#: src/dird/ua_status.c:574
msgid "is waiting on max Job jobs"
msgstr ""
-#: src/dird/ua_status.c:572
+#: src/dird/ua_status.c:577
msgid "is waiting on max total jobs"
msgstr ""
-#: src/dird/ua_status.c:575
+#: src/dird/ua_status.c:580
msgid "is waiting for its start time"
msgstr ""
-#: src/dird/ua_status.c:578
+#: src/dird/ua_status.c:583
msgid "is waiting for higher priority jobs to finish"
msgstr ""
-#: src/dird/ua_status.c:583
+#: src/dird/ua_status.c:588
#, c-format
msgid "is in unknown state %c"
msgstr ""
-#: src/dird/ua_status.c:597
+#: src/dird/ua_status.c:602
msgid "is waiting for a mount request"
msgstr ""
-#: src/dird/ua_status.c:604
+#: src/dird/ua_status.c:609
msgid "is waiting for an appendable Volume"
msgstr ""
-#: src/dird/ua_status.c:611
+#: src/dird/ua_status.c:616
#, c-format
msgid "is waiting for Client %s to connect to Storage %s"
msgstr ""
-#: src/dird/ua_status.c:627
+#: src/dird/ua_status.c:632
#, c-format
msgid "%6d %-6s %-20s %s\n"
msgstr ""
-#: src/dird/ua_status.c:649 src/filed/status.c:209 src/stored/status.c:324
+#: src/dird/ua_status.c:654 src/filed/status.c:209 src/stored/status.c:328
msgid "No Terminated Jobs.\n"
msgstr ""
-#: src/dird/ua_status.c:654 src/stored/status.c:329
+#: src/dird/ua_status.c:659 src/stored/status.c:333
msgid ""
"\n"
"Terminated Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:655
+#: src/dird/ua_status.c:660
msgid " JobId Level Files Bytes Status Finished Name \n"
msgstr ""
-#: src/dird/ua_status.c:656
+#: src/dird/ua_status.c:661
msgid "========================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:706 src/filed/status.c:266 src/stored/status.c:380
+#: src/dird/ua_status.c:692 src/filed/status.c:239 src/lib/util.c:184
+#: src/stored/status.c:357
+msgid "Created"
+msgstr ""
+
+#: src/dird/ua_status.c:696 src/filed/status.c:243 src/lib/util.c:197
+#: src/lib/util.c:264 src/stored/status.c:361
+msgid "Error"
+msgstr ""
+
+#: src/dird/ua_status.c:699 src/filed/status.c:246 src/stored/status.c:364
+msgid "Diffs"
+msgstr ""
+
+#: src/dird/ua_status.c:705 src/filed/status.c:252 src/lib/util.c:193
+#: src/lib/util.c:260 src/stored/btape.c:1160 src/stored/status.c:370
+#: src/wx-console/wxbconfigpanel.cpp:180
+msgid "OK"
+msgstr ""
+
+#: src/dird/ua_status.c:708 src/filed/status.c:255 src/stored/status.c:373
+msgid "Other"
+msgstr ""
+
+#: src/dird/ua_status.c:711 src/filed/status.c:266 src/stored/status.c:384
#, c-format
msgid "%6d %-6s %8s %14s %-7s %-8s %s\n"
msgstr ""
+#: src/dird/ua_status.c:719 src/stored/btape.c:180
+msgid "\n"
+msgstr ""
+
#: src/dird/ua_tree.c:57
msgid "cd"
msgstr ""
"\n"
msgstr ""
-#: src/dird/ua_tree.c:102 src/dird/ua_tree.c:629 src/dird/ua_tree.c:637
+#: src/dird/ua_tree.c:102 src/dird/ua_tree.c:633 src/dird/ua_tree.c:641
#, c-format
msgid "cwd is: %s\n"
msgstr ""
msgid "Illegal command. Enter \"done\" to exit.\n"
msgstr ""
-#: src/dird/ua_tree.c:296 src/dird/ua_tree.c:307 src/dird/ua_tree.c:322
+#: src/dird/ua_tree.c:296 src/dird/ua_tree.c:307 src/dird/ua_tree.c:324
msgid "No files marked.\n"
msgstr ""
#: src/dird/ua_tree.c:309
+msgid "1 file marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:311
#, c-format
-msgid "%s file%s marked.\n"
+msgid "%s files marked.\n"
msgstr ""
-#: src/dird/ua_tree.c:336
+#: src/dird/ua_tree.c:338
msgid "No directories marked.\n"
msgstr ""
-#: src/dird/ua_tree.c:338
+#: src/dird/ua_tree.c:340
+msgid "1 directory marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:342
+#, c-format
+msgid "%s directories marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:363
#, c-format
-msgid "%s director%s marked.\n"
+msgid "%s total files/dirs. %s marked to be restored.\n"
msgstr ""
-#: src/dird/ua_tree.c:370
+#: src/dird/ua_tree.c:374
msgid "No file specification given.\n"
msgstr ""
-#: src/dird/ua_tree.c:621
+#: src/dird/ua_tree.c:502
+#, c-format
+msgid "Node %s has no children.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:583
+#, c-format
+msgid "%d total files; %d marked to be restored; %s bytes.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:625
msgid "Invalid path given.\n"
msgstr ""
-#: src/dird/ua_tree.c:648 src/dird/ua_tree.c:659
+#: src/dird/ua_tree.c:652 src/dird/ua_tree.c:663
msgid "No files unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:661
+#: src/dird/ua_tree.c:665
+msgid "1 file unmarked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:667
#, c-format
-msgid "%d file%s unmarked.\n"
+msgid "%d files unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:672 src/dird/ua_tree.c:688
+#: src/dird/ua_tree.c:678 src/dird/ua_tree.c:694
msgid "No directories unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:690
+#: src/dird/ua_tree.c:696
+msgid "1 directory unmarked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:698
#, c-format
-msgid "%d director%s unmarked.\n"
+msgid "%d directories unmarked.\n"
msgstr ""
#: src/dird/verify.c:87
#: src/dird/verify.c:415
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" FileSet: %s\n"
"\n"
msgstr ""
-#: src/dird/verify.c:448
+#: src/dird/verify.c:450
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" FileSet: %s\n"
"\n"
msgstr ""
-#: src/dird/verify.c:522
+#: src/dird/verify.c:526
#, c-format
msgid ""
"bird<filed: bad attributes, expected 3 fields got %d\n"
" mslen=%d msg=%s\n"
msgstr ""
-#: src/dird/verify.c:566
+#: src/dird/verify.c:570
#, c-format
msgid "New file: %s\n"
msgstr ""
-#: src/dird/verify.c:567
+#: src/dird/verify.c:571
#, c-format
msgid "File not in catalog: %s\n"
msgstr ""
-#: src/dird/verify.c:591
+#: src/dird/verify.c:595
#, c-format
msgid " st_ino differ. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:600
+#: src/dird/verify.c:604
#, c-format
msgid " st_mode differ. Cat: %x File: %x\n"
msgstr ""
-#: src/dird/verify.c:608
+#: src/dird/verify.c:612
#, c-format
msgid " st_nlink differ. Cat: %d File: %d\n"
msgstr ""
-#: src/dird/verify.c:616
+#: src/dird/verify.c:620
#, c-format
msgid " st_uid differ. Cat: %u File: %u\n"
msgstr ""
-#: src/dird/verify.c:624
+#: src/dird/verify.c:628
#, c-format
msgid " st_gid differ. Cat: %u File: %u\n"
msgstr ""
-#: src/dird/verify.c:632
+#: src/dird/verify.c:636
#, c-format
msgid " st_size differ. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:641
+#: src/dird/verify.c:645
msgid " st_atime differs\n"
msgstr ""
-#: src/dird/verify.c:648
+#: src/dird/verify.c:652
msgid " st_mtime differs\n"
msgstr ""
-#: src/dird/verify.c:655
+#: src/dird/verify.c:659
msgid " st_ctime differs\n"
msgstr ""
-#: src/dird/verify.c:662
+#: src/dird/verify.c:666
#, c-format
msgid " st_size decrease. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:701
+#: src/dird/verify.c:705
#, c-format
msgid " %s not same. File=%s Cat=%s\n"
msgstr ""
-#: src/dird/verify.c:704
+#: src/dird/verify.c:708
#, c-format
msgid " %s differs.\n"
msgstr ""
-#: src/dird/verify.c:716
+#: src/dird/verify.c:720
#, c-format
msgid "bdird<filed: bad attributes from filed n=%d : %s\n"
msgstr ""
-#: src/dird/verify.c:753
+#: src/dird/verify.c:757
msgid "The following files are missing:\n"
msgstr ""
-#: src/dird/verify.c:767
+#: src/dird/verify.c:771 src/tools/testfind.c:338
#, c-format
msgid "File: %s\n"
msgstr ""
msgid "Choose catalog item to update"
msgstr ""
+#: src/dird/ua_update.c:103 src/dird/ua_update.c:435
+msgid "Append"
+msgstr ""
+
+#: src/dird/ua_update.c:104 src/dird/ua_update.c:436
+msgid "Archive"
+msgstr ""
+
+#: src/dird/ua_update.c:105 src/dird/ua_update.c:437
+msgid "Disabled"
+msgstr ""
+
+#: src/dird/ua_update.c:107 src/dird/ua_update.c:439
+msgid "Used"
+msgstr ""
+
+#: src/dird/ua_update.c:108 src/dird/ua_update.c:440
+msgid "Cleaning"
+msgstr ""
+
+#: src/dird/ua_update.c:109 src/dird/ua_update.c:355 src/dird/ua_update.c:442
+msgid "Recycle"
+msgstr ""
+
+#: src/dird/ua_update.c:110 src/dird/ua_update.c:444
+msgid "Read-Only"
+msgstr ""
+
#: src/dird/ua_update.c:122
#, c-format
msgid "Invalid VolStatus specified: %s\n"
msgid "MaxVolBytes"
msgstr ""
-#: src/dird/ua_update.c:355
-msgid "Recycle"
-msgstr ""
-
#: src/dird/ua_update.c:357
msgid "FromPool"
msgstr ""
msgid "Possible Values are:\n"
msgstr ""
+#: src/dird/ua_update.c:441
+msgid "Purged"
+msgstr ""
+
#: src/dird/ua_update.c:445
msgid "Choose new Volume Status"
msgstr ""
msgid "Enter new Pool name: "
msgstr ""
+#: src/dird/ua_update.c:598
+msgid "Selection done.\n"
+msgstr ""
+
#: src/dird/ua_update.c:631
#, c-format
msgid "db_update_pool_record returned %d. ERR=%s\n"
msgid "VolumeName"
msgstr ""
-#: src/filed/authenticate.c:49 src/filed/authenticate.c:50
+#: src/dird/pythondir.c:104 src/filed/pythonfd.c:102 src/filed/pythonfd.c:156
+#: src/filed/pythonfd.c:220 src/stored/pythonsd.c:95 src/stored/pythonsd.c:160
+msgid "Job pointer not found."
+msgstr ""
+
+#: src/dird/pythondir.c:136
+msgid "Pool record not found."
+msgstr ""
+
+#: src/dird/pythondir.c:163 src/filed/pythonfd.c:133 src/stored/pythonsd.c:137
#, c-format
-msgid "I only authenticate directors, not %d\n"
+msgid "Attribute %s not found."
msgstr ""
-#: src/filed/authenticate.c:54 src/filed/authenticate.c:56
-#: src/stored/authenticate.c:57 src/stored/authenticate.c:59
+#: src/dird/pythondir.c:206 src/dird/pythondir.c:212 src/filed/pythonfd.c:175
+#: src/stored/pythonsd.c:177
+msgid "Read-only attribute"
+msgstr ""
+
+#: src/filed/authenticate.c:50
#, c-format
-msgid "Bad Hello command from Director at %s. Len=%d.\n"
+msgid "I only authenticate directors, not %d\n"
msgstr ""
-#: src/filed/authenticate.c:66 src/filed/authenticate.c:68
-#: src/stored/authenticate.c:68 src/stored/authenticate.c:70
+#: src/filed/authenticate.c:56 src/stored/authenticate.c:59
#, c-format
-msgid "Bad Hello command from Director at %s: %s\n"
+msgid "Bad Hello command from Director at %s. Len=%d.\n"
msgstr ""
-#: src/filed/authenticate.c:80 src/stored/authenticate.c:83
+#: src/filed/authenticate.c:68 src/stored/authenticate.c:70
#, c-format
-msgid "Connection from unknown Director %s at %s rejected.\n"
+msgid "Bad Hello command from Director at %s: %s\n"
msgstr ""
#: src/filed/authenticate.c:82 src/stored/authenticate.c:85
msgid " Cannot open %s: ERR=%s.\n"
msgstr ""
-#: src/filed/backup.c:293
+#: src/filed/backup.c:293 src/filed/verify.c:229
#, c-format
msgid " Cannot open resource fork for %s: ERR=%s.\n"
msgstr ""
msgid "Too many errors.\n"
msgstr ""
-#: src/filed/filed.c:63
+#: src/filed/backup.c:535
+#, c-format
+msgid "Error reading ACL of %s\n"
+msgstr ""
+
+#: src/filed/filed.c:62
+#, c-format
msgid ""
-")\n"
+"Copyright (C) 2000-2005 Kern Sibbald\n"
+"\n"
+"Version: %s (%s)\n"
"\n"
"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n"
" -c <file> use <file> as configuration file\n"
"\n"
msgstr ""
-#: src/filed/filed.c:279
+#: src/filed/filed.c:282
#, c-format
msgid ""
"No File daemon resource defined in %s\n"
"Without that I don't know who I am :-(\n"
msgstr ""
-#: src/filed/filed.c:284
+#: src/filed/filed.c:287
#, c-format
msgid "Only one Client resource permitted in %s\n"
msgstr ""
-#: src/filed/filed.c:307
+#: src/filed/filed.c:310
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"File daemon in %s.\n"
msgstr ""
-#: src/filed/filed.c:336
+#: src/filed/filed.c:339
#, c-format
msgid "No Director resource defined in %s\n"
msgstr ""
-#: src/filed/filed_conf.c:296
-#, c-format
-msgid "%s item is required in %s resource, but not found.\n"
-msgstr ""
-
-#: src/filed/filed_conf.c:327 src/filed/filed_conf.c:357
+#: src/filed/job.c:323
#, c-format
-msgid "Unknown resource type %d\n"
+msgid "2901 Job %s not found.\n"
msgstr ""
#: src/filed/job.c:339
msgid "2902 Error scanning cancel command.\n"
msgstr ""
+#: src/filed/job.c:361
+#, c-format
+msgid "2991 Bad setdebug command: %s\n"
+msgstr ""
+
#: src/filed/job.c:377
#, c-format
msgid "Bad estimate command: %s"
msgstr ""
+#: src/filed/job.c:378
+msgid "2992 Bad estimate command.\n"
+msgstr ""
+
#: src/filed/job.c:401
#, c-format
msgid "Bad Job Command: %s"
msgid "Bad RunBeforeJob command: %s\n"
msgstr ""
+#: src/filed/job.c:422 src/filed/job.c:435
+msgid "2905 Bad RunBeforeJob command.\n"
+msgstr ""
+
#: src/filed/job.c:448
#, c-format
msgid "Bad RunAfter command: %s\n"
msgstr ""
+#: src/filed/job.c:449
+msgid "2905 Bad RunAfterJob command.\n"
+msgstr ""
+
#: src/filed/job.c:475
#, c-format
msgid "%s could not execute. ERR=%s\n"
msgid "Cannot open FileSet input file: %s. ERR=%s\n"
msgstr ""
+#: src/filed/job.c:678
+#, c-format
+msgid "REGEX %s compile error. ERR=%s\n"
+msgstr ""
+
+#: src/filed/job.c:732
+#, c-format
+msgid "Invalid FileSet command: %s\n"
+msgstr ""
+
+#: src/filed/job.c:901 src/findlib/match.c:184
+#, c-format
+msgid "Unknown include/exclude option: %c\n"
+msgstr ""
+
#: src/filed/job.c:961 src/stored/fd_cmds.c:329
#, c-format
msgid "Could not create bootstrap file %s: ERR=%s\n"
msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n"
msgstr ""
+#: src/filed/job.c:1068
+#, c-format
+msgid "Unknown backup level: %s\n"
+msgstr ""
+
#: src/filed/job.c:1080
#, c-format
msgid "Bad level command: %s\n"
msgstr ""
+#: src/filed/job.c:1101
+#, c-format
+msgid "Bad session command: %s"
+msgstr ""
+
#: src/filed/job.c:1122
#, c-format
msgid "Bad storage command: %s"
msgid "Bad status %d returned from Storage Daemon.\n"
msgstr ""
+#: src/filed/job.c:1331
+#, c-format
+msgid "2994 Bad verify command: %s\n"
+msgstr ""
+
+#: src/filed/job.c:1346 src/filed/job.c:1385
+#, c-format
+msgid "2994 Bad verify level: %s\n"
+msgstr ""
+
#: src/filed/job.c:1425
#, c-format
msgid "Bad replace command. CMD=%s\n"
msgstr ""
#: src/filed/restore.c:218 src/filed/verify_vol.c:142
-#: src/stored/bextract.c:285 src/stored/bls.c:368 src/stored/bscan.c:640
+#: src/stored/bextract.c:289 src/stored/bls.c:372 src/stored/bscan.c:649
#, c-format
msgid "Record header file index %ld not equal record index %ld\n"
msgstr ""
-#: src/filed/restore.c:231 src/stored/bextract.c:294
+#: src/filed/restore.c:231 src/stored/bextract.c:298
#, c-format
msgid "%s stream not supported on this Client.\n"
msgstr ""
#: src/filed/restore.c:308
#, c-format
-msgid " Cannot open resource fork for %s\n"
+msgid " Cannot open resource fork for %s.\n"
msgstr ""
#: src/filed/restore.c:331
msgid " Could not set Finder Info on %s\n"
msgstr ""
-#: src/filed/restore.c:391 src/stored/bextract.c:445
+#: src/filed/restore.c:347
+#, c-format
+msgid "Can't restore ACL of %s\n"
+msgstr ""
+
+#: src/filed/restore.c:359
+#, c-format
+msgid "Can't restore default ACL of %s\n"
+msgstr ""
+
+#: src/filed/restore.c:391 src/stored/bextract.c:449
#, c-format
msgid "Unknown stream=%d ignored. This shouldn't happen!\n"
msgstr ""
msgid "%d non-supported acl streams ignored.\n"
msgstr ""
-#: src/filed/restore.c:498 src/stored/bextract.c:383
+#: src/filed/restore.c:450
+msgid "None"
+msgstr ""
+
+#: src/filed/restore.c:454
+msgid "Zlib errno"
+msgstr ""
+
+#: src/filed/restore.c:456
+msgid "Zlib stream error"
+msgstr ""
+
+#: src/filed/restore.c:458
+msgid "Zlib data error"
+msgstr ""
+
+#: src/filed/restore.c:460
+msgid "Zlib memory error"
+msgstr ""
+
+#: src/filed/restore.c:462
+msgid "Zlib buffer error"
+msgstr ""
+
+#: src/filed/restore.c:464
+msgid "Zlib version error"
+msgstr ""
+
+#: src/filed/restore.c:466 src/lib/util.c:546 src/lib/util.c:556
+#: src/lib/util.c:564 src/lib/util.c:571 src/lib/util.c:578 src/lib/util.c:592
+#: src/lib/util.c:602 src/lib/util.c:609 src/lib/util.c:620
+msgid "*none*"
+msgstr ""
+
+#: src/filed/restore.c:498 src/stored/bextract.c:387
#, c-format
msgid "Seek to %s error on %s: ERR=%s\n"
msgstr ""
msgid "Uncompression error on file %s. ERR=%s\n"
msgstr ""
-#: src/filed/restore.c:530
+#: src/filed/restore.c:530 src/stored/bextract.c:421
msgid "GZIP data stream found, but GZIP not configured!\n"
msgstr ""
-#: src/filed/restore.c:539 src/stored/bextract.c:355 src/stored/bextract.c:405
+#: src/filed/restore.c:539 src/stored/bextract.c:359 src/stored/bextract.c:409
#, c-format
msgid "Write error on %s: %s\n"
msgstr ""
+#: src/filed/status.c:67
+#, c-format
+msgid "%s Version: %s (%s) %s %s %s %s\n"
+msgstr ""
+
+#: src/filed/status.c:71
+#, c-format
+msgid "Daemon started %s, %d Job%s run since started.\n"
+msgstr ""
+
#: src/filed/status.c:125
#, c-format
msgid " Sizeof: off_t=%d size_t=%d debug=%d trace=%d\n"
msgid " %s%s Job started: %s\n"
msgstr ""
-#: src/filed/status.c:165 src/stored/status.c:292
+#: src/filed/status.c:165 src/stored/status.c:296
#, c-format
msgid " Files=%s Bytes=%s Bytes/sec=%s\n"
msgstr ""
msgid " SDSocket closed.\n"
msgstr ""
-#: src/filed/status.c:196
-msgid "====\n"
-msgstr ""
-
#: src/filed/status.c:215
msgid "Terminated Jobs:\n"
msgstr ""
msgid " JobId Level Files Bytes Status Finished Name \n"
msgstr ""
-#: src/filed/status.c:321 src/filed/status.c:347 src/stored/status.c:464
-#: src/stored/status.c:489
+#: src/filed/status.c:321 src/filed/status.c:347 src/stored/status.c:468
+#: src/stored/status.c:493
#, c-format
msgid "Bad .status command: %s\n"
msgstr ""
-#: src/filed/status.c:385 src/stored/status.c:419
+#: src/filed/status.c:322
+msgid "2900 Bad .status command, missing argument.\n"
+msgstr ""
+
+#: src/filed/status.c:348
+msgid "2900 Bad .status command, wrong argument.\n"
+msgstr ""
+
+#: src/filed/status.c:385 src/stored/status.c:423
msgid "Init Catalog"
msgstr ""
-#: src/filed/status.c:388 src/stored/status.c:422
+#: src/filed/status.c:388 src/stored/status.c:426
msgid "Volume to Catalog"
msgstr ""
-#: src/filed/status.c:391 src/stored/status.c:425
+#: src/filed/status.c:391 src/stored/status.c:429
msgid "Disk to Catalog"
msgstr ""
-#: src/filed/status.c:394 src/stored/status.c:428
+#: src/filed/status.c:394 src/stored/status.c:432
msgid "Data"
msgstr ""
-#: src/filed/status.c:400 src/lib/util.c:351 src/stored/status.c:434
+#: src/filed/status.c:400 src/lib/util.c:351 src/stored/status.c:438
msgid "Unknown Job Level"
msgstr ""
msgid "Network error in send to Director: ERR=%s\n"
msgstr ""
-#: src/filed/verify.c:229
-#, c-format
-msgid " Cannot open resource fork for %s: ERR=%s\n"
-msgstr ""
-
#: src/filed/verify.c:284
#, c-format
msgid "Error reading file %s: ERR=%s\n"
msgid "FDName"
msgstr ""
+#: src/filed/pythonfd.c:150 src/stored/pythonsd.c:154
+#, c-format
+msgid "Cannot delete attribute %s"
+msgstr ""
+
+#: src/filed/pythonfd.c:168 src/filed/pythonfd.c:184 src/stored/pythonsd.c:187
+#, c-format
+msgid "Cannot find attribute %s"
+msgstr ""
+
#: src/findlib/attribs.c:340
#, c-format
msgid "File size of restored file %s not correct. Original %s, restored %s.\n"
msgid "Error in %s: ERR=%s\n"
msgstr ""
+#: src/findlib/bfile.c:67
+msgid "GZIP data"
+msgstr ""
+
+#: src/findlib/bfile.c:69
+msgid "GZIP sparse data"
+msgstr ""
+
+#: src/findlib/bfile.c:71
+msgid "Win32 data"
+msgstr ""
+
+#: src/findlib/bfile.c:73
+msgid "Win32 GZIP data"
+msgstr ""
+
+#: src/findlib/bfile.c:75
+msgid "File attributes"
+msgstr ""
+
+#: src/findlib/bfile.c:77
+msgid "File data"
+msgstr ""
+
+#: src/findlib/bfile.c:79
+msgid "MD5 signature"
+msgstr ""
+
+#: src/findlib/bfile.c:81
+msgid "Extended attributes"
+msgstr ""
+
+#: src/findlib/bfile.c:83
+msgid "Sparse data"
+msgstr ""
+
+#: src/findlib/bfile.c:85
+msgid "Program names"
+msgstr ""
+
+#: src/findlib/bfile.c:87
+msgid "Program data"
+msgstr ""
+
+#: src/findlib/bfile.c:89
+msgid "SHA1 signature"
+msgstr ""
+
+#: src/findlib/bfile.c:91
+msgid "HFS+ resource fork"
+msgstr ""
+
+#: src/findlib/bfile.c:93
+msgid "HFS+ Finder Info"
+msgstr ""
+
#: src/findlib/create_file.c:86
#, c-format
msgid "File skipped. Not newer: %s\n"
msgid "File %s already exists and could not be replaced. ERR=%s.\n"
msgstr ""
+#: src/findlib/create_file.c:170 src/findlib/create_file.c:271
+#: src/findlib/create_file.c:322
+#, c-format
+msgid "bpkt already open fid=%d\n"
+msgstr ""
+
#: src/findlib/create_file.c:192
msgid "Could not save_dirn"
msgstr ""
msgid "Cannot make node %s: ERR=%s\n"
msgstr ""
-#: src/findlib/create_file.c:276 src/findlib/create_file.c:333
-#, c-format
-msgid "Could not open %s: ERR=%s\n"
-msgstr ""
-
#: src/findlib/create_file.c:291
#, c-format
msgid "Could not symlink %s -> %s: ERR=%s\n"
msgid "Zero length filename: %s\n"
msgstr ""
+#: src/findlib/enable_priv.c:85
+msgid "AdjustTokenPrivileges set "
+msgstr ""
+
#: src/findlib/find_one.c:168
#, c-format
msgid "Top level directory \"%s\" has an unlisted fstype\n"
msgid "Cannot change permissions of %s: ERR=%s\n"
msgstr ""
+#: src/findlib/save-cwd.c:48
+#, c-format
+msgid "Cannot open current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:62
+#, c-format
+msgid "Current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:84
+#, c-format
+msgid "Cannot get current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:105
+#, c-format
+msgid "Cannot return to %s from %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:109
+#, c-format
+msgid "Cannot return to saved working directory from %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:115
+#, c-format
+msgid "Cannot return to %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:119
+#, c-format
+msgid "Cannot return to saved working directory: %s\n"
+msgstr ""
+
#: src/gnome2-console/authenticate.c:74
#, c-format
msgid "%s: Director authorization problem.\n"
msgid ""
"Copyright (C) 2002-2005 Kern Sibbald\n"
"\n"
-"Version: "
-msgstr ""
-
-#: src/gnome2-console/console.c:89
-#, c-format
-msgid ""
-") %s %s %s\n"
+"Version: %s (%s) %s %s %s\n"
"\n"
"Usage: gnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n"
" -c <file> set configuration file to file\n"
"\n"
msgstr ""
-#: src/gnome2-console/console.c:215
+#: src/gnome2-console/console.c:219
#, c-format
msgid "Pthread cond init error = %s\n"
msgstr ""
-#: src/gnome2-console/console.c:357
+#: src/gnome2-console/console.c:361
msgid " Not Connected"
msgstr ""
-#: src/gnome2-console/console.c:478
+#: src/gnome2-console/console.c:482
#, c-format
msgid " Connecting to Director %s:%d"
msgstr ""
-#: src/gnome2-console/console.c:479
+#: src/gnome2-console/console.c:483
#, c-format
msgid ""
"Connecting to Director %s:%d\n"
"\n"
msgstr ""
-#: src/gnome2-console/console.c:591
+#: src/gnome2-console/console.c:498 src/wx-console/console_thread.cpp:354
+#, c-format
+msgid "Passphrase for Console \"%s\" TLS private key: "
+msgstr ""
+
+#: src/gnome2-console/console.c:520 src/wx-console/console_thread.cpp:375
+#, c-format
+msgid "Passphrase for Director \"%s\" TLS private key: "
+msgstr ""
+
+#: src/gnome2-console/console.c:539 src/tray-monitor/tray-monitor.c:860
+#: src/wx-console/console_thread.cpp:393
+msgid "Director daemon"
+msgstr ""
+
+#: src/gnome2-console/console.c:551
+msgid " Initializing ..."
+msgstr ""
+
+#: src/gnome2-console/console.c:587
+msgid " Connected"
+msgstr ""
+
+#: src/gnome2-console/console.c:595
msgid " Processing command ..."
msgstr ""
-#: src/gnome2-console/console.c:626
+#: src/gnome2-console/console.c:630
msgid " At prompt waiting for input ..."
msgstr ""
+#: src/gnome2-console/console.c:750
+msgid " Ready"
+msgstr ""
+
+#: src/gnome2-console/console_conf.c:135
+#, c-format
+msgid "Console: name=%s\n"
+msgstr ""
+
+#: src/gnome2-console/console_conf.c:138
+#, c-format
+msgid "ConsoleFont: name=%s font face=%s\n"
+msgstr ""
+
#: src/gnome2-console/interface.c:32
msgid "_Connect"
msgstr ""
msgid "Bacula Console"
msgstr ""
-#: src/gnome2-console/interface.c:231
+#: src/gnome2-console/interface.c:231 src/wx-console/wxbmainframe.cpp:229
+#: src/wx-console/wxbmainframe.cpp:589
msgid "Connect"
msgstr ""
msgstr ""
#: src/gnome2-console/interface.c:261 src/lib/util.c:298
+#: src/wx-console/wxbrestorepanel.cpp:426
+#: src/wx-console/wxbrestorepanel.cpp:1915
msgid "Restore"
msgstr ""
msgid " Status: "
msgstr ""
-#: src/gnome2-console/interface.c:326 src/gnome2-console/interface.c:1692
+#: src/gnome2-console/interface.c:326
msgid " "
msgstr ""
msgid "Select Director"
msgstr ""
-#: src/gnome2-console/interface.c:565
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:708 src/gnome2-console/interface.c:1616
msgid "Job:"
msgstr ""
msgid " Type:"
msgstr ""
-#: src/gnome2-console/interface.c:747 src/gnome2-console/interface.c:777
-#: src/gnome2-console/interface.c:1273 src/gnome2-console/interface.c:1664
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:757 src/gnome2-console/interface.c:1644
+#: src/wx-console/wxbrestorepanel.cpp:1828
msgid "Client:"
msgstr ""
msgid "FileSet: "
msgstr ""
-#: src/gnome2-console/interface.c:813
+#: src/gnome2-console/interface.c:813 src/wx-console/wxbrestorepanel.cpp:1834
msgid "Priority:"
msgstr ""
msgid "Level:"
msgstr ""
-#: src/gnome2-console/interface.c:857
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:866 src/gnome2-console/interface.c:1418
#: src/gnome2-console/interface.c:1700
msgid "Pool:"
msgstr ""
-#: src/gnome2-console/interface.c:886 src/gnome2-console/interface.c:915
-#: src/gnome2-console/interface.c:943 src/gnome2-console/interface.c:961
-#: src/gnome2-console/interface.c:979 src/gnome2-console/interface.c:997
-#: src/gnome2-console/interface.c:1001 src/gnome2-console/interface.c:1471
-#: src/gnome2-console/interface.c:1720 src/gnome2-console/interface.c:1748
-#: src/gnome2-console/interface.c:1765 src/gnome2-console/interface.c:1769
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:895 src/gnome2-console/interface.c:1393
-#: src/gnome2-console/interface.c:1728
+#: src/gnome2-console/interface.c:1728 src/wx-console/wxbrestorepanel.cpp:1830
msgid "Storage:"
msgstr ""
msgid "Where: "
msgstr ""
-#: src/gnome2-console/interface.c:970
+#: src/gnome2-console/interface.c:970 src/wx-console/wxbrestorepanel.cpp:1832
msgid "When:"
msgstr ""
-#: src/gnome2-console/interface.c:988
+#: src/gnome2-console/interface.c:988 src/wx-console/wxbrestorepanel.cpp:1813
msgid "Bootstrap:"
msgstr ""
msgid "Progress"
msgstr ""
-#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85
-#, c-format
-msgid "Couldn't find pixmap file: %s"
+#: src/gnome2-console/restore.c:121
+msgid "Mark"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121
+msgid "Mode"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:330
+msgid "User"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:334
+msgid "Group"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:318
+msgid "Size"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:322
+msgid "Date"
+msgstr ""
+
+#: src/gnome2-console/support.c:41
+#, c-format
+msgid "Widget not found: %s"
+msgstr ""
+
+#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85
+#, c-format
+msgid "Couldn't find pixmap file: %s"
+msgstr ""
+
+#: src/gnome2-console/support.c:92
+#, c-format
+msgid "Failed to load pixbuf file: %s: %s\n"
msgstr ""
#: src/lib/address_conf.c:55
msgid "Can't add default address (%s)\n"
msgstr ""
+#: src/lib/address_conf.c:285
+msgid "the old style addresses cannot be mixed with new style"
+msgstr ""
+
+#: src/lib/address_conf.c:308
+#, c-format
+msgid "can't resolve service(%s)"
+msgstr ""
+
+#: src/lib/address_conf.c:318
+#, c-format
+msgid "can't resolve hostname(%s) %s"
+msgstr ""
+
#: src/lib/address_conf.c:407
#, c-format
msgid "Expected a block begin { , got: %s"
msgid "Error scanning attributes: %s\n"
msgstr ""
+#: src/lib/berrno.c:66
+msgid "Child exited normally."
+msgstr ""
+
+#: src/lib/berrno.c:73
+msgid "Unknown error during program execvp"
+msgstr ""
+
+#: src/lib/berrno.c:76
+#, c-format
+msgid "Child exited with code %d"
+msgstr ""
+
+#: src/lib/berrno.c:84
+#, c-format
+msgid "Child died from signal %d: %s"
+msgstr ""
+
#: src/lib/berrno.c:90
msgid "Invalid errno. No error message possible."
msgstr ""
+#: src/lib/bget_msg.c:91
+msgid "Status OK\n"
+msgstr ""
+
+#: src/lib/bget_msg.c:95
+#, c-format
+msgid "bget_msg: unknown signal %d\n"
+msgstr ""
+
#: src/lib/bnet.c:102
#, c-format
msgid "Attr spool write error. ERR=%s\n"
msgid "TLS not configured.\n"
msgstr ""
+#: src/lib/bnet.c:607
+msgid "No problem."
+msgstr ""
+
+#: src/lib/bnet.c:610
+msgid "Authoritative answer for host not found."
+msgstr ""
+
+#: src/lib/bnet.c:613
+msgid "Non-authoritative for host not found, or ServerFail."
+msgstr ""
+
+#: src/lib/bnet.c:616
+msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP."
+msgstr ""
+
+#: src/lib/bnet.c:619
+msgid "Valid name, no data record of resquested type."
+msgstr ""
+
+#: src/lib/bnet.c:622
+msgid "Unknown error."
+msgstr ""
+
+#: src/lib/bnet.c:757
+#, c-format
+msgid "gethostbyname() for host \"%s\" failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:777
+#, c-format
+msgid "Socket open error. proto=%d port=%d. ERR=%s\n"
+msgstr ""
+
#: src/lib/bnet.c:786 src/lib/bnet.c:811 src/lib/bnet_server.c:200
#: src/lib/bnet_server.c:358
#, c-format
msgid "Cannot set SO_KEEPALIVE on socket: %s\n"
msgstr ""
-#: src/lib/bnet.c:847
+#: src/lib/bnet.c:842
+#, c-format
+msgid ""
+"Could not connect to %s on %s:%d. ERR=%s\n"
+"Retrying ...\n"
+msgstr ""
+
+#: src/lib/bnet.c:848
#, c-format
msgid "Unable to connect to %s on %s:%d. ERR=%s\n"
msgstr ""
-#: src/lib/bnet.c:925
+#: src/lib/bnet.c:926
msgid "Could not malloc BSOCK data buffer\n"
msgstr ""
-#: src/lib/bnet.c:932 src/lib/bnet.c:956
+#: src/lib/bnet.c:933 src/lib/bnet.c:957
#, c-format
msgid "sockopt error: %s\n"
msgstr ""
-#: src/lib/bnet.c:938 src/lib/bnet.c:962
+#: src/lib/bnet.c:939 src/lib/bnet.c:963
#, c-format
msgid "Warning network buffer = %d bytes not max size.\n"
msgstr ""
-#: src/lib/bnet.c:942 src/lib/bnet.c:966
+#: src/lib/bnet.c:943 src/lib/bnet.c:967
#, c-format
msgid "Network buffer size %d not multiple of tape block size.\n"
msgstr ""
+#: src/lib/bnet.c:987 src/lib/bnet.c:1020
+#, c-format
+msgid "fcntl F_GETFL error. ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:993 src/lib/bnet.c:1026 src/lib/bnet.c:1050
+#, c-format
+msgid "fcntl F_SETFL error. ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:1104
+#, c-format
+msgid "Unknown sig %d"
+msgstr ""
+
#: src/lib/bnet_pkt.c:89 src/lib/bnet_pkt.c:147
#, c-format
msgid "Unknown BPKT type: %d\n"
#: src/lib/bnet_server.c:124
#, c-format
-msgid "Cannot bind port %d: ERR=%s. Retrying ...\n"
+msgid "Cannot bind port %d: ERR=%s: Retrying ...\n"
msgstr ""
#: src/lib/bnet_server.c:129
msgid "Socket accept error for %s. ERR=%s\n"
msgstr ""
+#: src/lib/bpipe.c:282 src/lib/bpipe.c:357
+msgid "Program killed by Bacula watchdog (timeout)\n"
+msgstr ""
+
+#: src/lib/bshm.c:69
+#, c-format
+msgid "shmget failure key = %x\n"
+msgstr ""
+
+#: src/lib/bshm.c:77
+#, c-format
+msgid "Could not get %d bytes of shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:102
+#, c-format
+msgid "Could not attach shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:123
+#, c-format
+msgid "Error detaching shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:139
+#, c-format
+msgid "Could not destroy shared memory: %s\n"
+msgstr ""
+
#: src/lib/bsys.c:176 src/lib/bsys.c:192 src/lib/bsys.c:202 src/lib/bsys.c:214
#, c-format
msgid "Out of memory: ERR=%s\n"
msgid "Mutex unlock failure. ERR=%s\n"
msgstr ""
+#: src/lib/bsys.c:396
+#, c-format
+msgid "Memset for %d bytes at %s:%d\n"
+msgstr ""
+
#: src/lib/bsys.c:425
#, c-format
msgid "Cannot open pid file. %s ERR=%s\n"
msgid "Could not open pid file. %s ERR=%s\n"
msgstr ""
-#: src/lib/bsys.c:535 src/lib/bsys.c:536
+#: src/lib/bsys.c:536
#, c-format
msgid "Could not create state file. %s ERR=%s\n"
msgstr ""
+#: src/lib/bsys.c:552
+#, c-format
+msgid "Write final hdr error: ERR=%s\n"
+msgstr ""
+
#: src/lib/bsys.c:574
#, c-format
msgid "Could not find specified group: %s\n"
msgid "Could not set specified userid: %s\n"
msgstr ""
+#: src/lib/btimers.c:239
+msgid "stop_btimer called with NULL btimer_id\n"
+msgstr ""
+
+#: src/lib/cram-md5.c:80 src/lib/cram-md5.c:105
+msgid "1999 Authorization failed.\n"
+msgstr ""
+
+#: src/lib/daemon.c:58
+#, c-format
+msgid "Cannot fork to become daemon: %s\n"
+msgstr ""
+
#: src/lib/edit.c:400
#, c-format
msgid "Illegal character \"%c\" in name.\n"
msgid "Name too long.\n"
msgstr ""
+#: src/lib/events.c:161
+msgid "Events not available"
+msgstr ""
+
+#: src/lib/jcr.c:277
+msgid "NULL jcr.\n"
+msgstr ""
+
#: src/lib/jcr.c:396
#, c-format
msgid "JCR use_count=%d JobId=%d\n"
"Watchdog sending kill after %d secs to thread stalled reading Director.\n"
msgstr ""
-#: src/lib/lex.c:79 src/wx-console/console_thread.cpp:190
+#: src/lib/lex.c:79 src/wx-console/console_thread.cpp:189
#, c-format
msgid "Problem probably begins at line %d.\n"
msgstr ""
-#: src/lib/lex.c:84
+#: src/lib/lex.c:84 src/wx-console/console_thread.cpp:194
#, c-format
msgid ""
"Config error: %s\n"
msgid "Config error: %s\n"
msgstr ""
+#: src/lib/lex.c:108
+msgid "Close of NULL file\n"
+msgstr ""
+
+#: src/lib/lex.c:181
+msgid "get_char: called after EOF\n"
+msgstr ""
+
#: src/lib/lex.c:220
#, c-format
msgid "Config token too long, file: %s, line %d, begins at line %d\n"
msgstr ""
+#: src/lib/lex.c:244
+msgid "none"
+msgstr ""
+
+#: src/lib/lex.c:245
+msgid "comment"
+msgstr ""
+
+#: src/lib/lex.c:246
+msgid "number"
+msgstr ""
+
+#: src/lib/lex.c:247
+msgid "ip_addr"
+msgstr ""
+
+#: src/lib/lex.c:248
+msgid "identifier"
+msgstr ""
+
+#: src/lib/lex.c:249
+msgid "string"
+msgstr ""
+
+#: src/lib/lex.c:250
+msgid "quoted_string"
+msgstr ""
+
#: src/lib/lex.c:286
#, c-format
msgid "expected a positive integer number, got: %s"
msgid "expected a string, got %s: %s"
msgstr ""
+#: src/lib/mem_pool.c:100
+#, c-format
+msgid "MemPool index %d larger than max %d\n"
+msgstr ""
+
+#: src/lib/mem_pool.c:118 src/lib/mem_pool.c:138 src/lib/mem_pool.c:173
+#: src/lib/mem_pool.c:244 src/lib/mem_pool.c:264 src/lib/mem_pool.c:302
+#: src/lib/mem_pool.c:521
+#, c-format
+msgid "Out of memory requesting %d bytes\n"
+msgstr ""
+
#: src/lib/message.c:253 src/lib/message.c:263
#, c-format
msgid "Could not open console message file %s: ERR=%s\n"
msgid "Could not get con mutex: ERR=%s\n"
msgstr ""
+#: src/lib/message.c:372
+#, c-format
+msgid "open mail pipe %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/message.c:378
+msgid "Bacula Message"
+msgstr ""
+
+#: src/lib/message.c:431
+msgid "open mail pipe failed.\n"
+msgstr ""
+
+#: src/lib/message.c:443
+#, c-format
+msgid "close error: ERR=%s\n"
+msgstr ""
+
#: src/lib/message.c:454
#, c-format
msgid "Mail prog: %s"
"ERR=%s\n"
msgstr ""
+#: src/lib/message.c:667 src/lib/message.c:689 src/lib/message.c:705
+#, c-format
+msgid "fopen %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/message.c:933
+#, c-format
+msgid "%s: ABORTING due to ERROR in %s:%d\n"
+msgstr ""
+
+#: src/lib/message.c:937
+#, c-format
+msgid "%s: ERROR TERMINATION at %s:%d\n"
+msgstr ""
+
+#: src/lib/message.c:942
+#, c-format
+msgid "%s: Fatal Error because: "
+msgstr ""
+
+#: src/lib/message.c:944
+#, c-format
+msgid "%s: Fatal Error at %s:%d because:\n"
+msgstr ""
+
+#: src/lib/message.c:948
+#, c-format
+msgid "%s: ERROR: "
+msgstr ""
+
+#: src/lib/message.c:950
+#, c-format
+msgid "%s: ERROR in %s:%d "
+msgstr ""
+
+#: src/lib/message.c:953
+#, c-format
+msgid "%s: Warning: "
+msgstr ""
+
+#: src/lib/message.c:956
+#, c-format
+msgid "%s: Security violation: "
+msgstr ""
+
+#: src/lib/message.c:1032
+#, c-format
+msgid "%s ABORTING due to ERROR\n"
+msgstr ""
+
+#: src/lib/message.c:1035
+#, c-format
+msgid "%s ERROR TERMINATION\n"
+msgstr ""
+
+#: src/lib/message.c:1038
+#, c-format
+msgid "%s: %s Fatal error: "
+msgstr ""
+
+#: src/lib/message.c:1044
+#, c-format
+msgid "%s: %s Error: "
+msgstr ""
+
+#: src/lib/message.c:1050
+#, c-format
+msgid "%s: %s Warning: "
+msgstr ""
+
+#: src/lib/message.c:1053
+#, c-format
+msgid "%s: %s Security violation: "
+msgstr ""
+
#: src/lib/parse_conf.c:160
msgid "***UNKNOWN***"
msgstr ""
msgid "Unable to initialize resource lock. ERR=%s\n"
msgstr ""
-#: src/lib/parse_conf.c:211
-#, c-format
-msgid "Too many items in %s resource\n"
-msgstr ""
-
#: src/lib/parse_conf.c:262 src/lib/parse_conf.c:281
#, c-format
msgid "expected an =, got: %s"
msgid "expected a time period, got: %s"
msgstr ""
+#: src/lib/parse_conf.c:699
+#, c-format
+msgid "Expect a %s or %s, got: %s"
+msgstr ""
+
+#: src/lib/parse_conf.c:723
+#, c-format
+msgid "Expected a Tape Label keyword, got: %s"
+msgstr ""
+
#: src/lib/parse_conf.c:772
#, c-format
msgid "Cannot open config file \"%s\": %s\n"
msgid "not in resource definition: %s"
msgstr ""
-#: src/lib/parse_conf.c:819
-#, c-format
-msgid "expected an equals, got: %s"
-msgstr ""
-
#: src/lib/parse_conf.c:833
#, c-format
msgid ""
msgid "No previous regular expression"
msgstr ""
-#: src/lib/smartall.c:137 src/lib/smartall.c:228 src/lib/smartall.c:243
-msgid "Out of memory\n"
+#: src/lib/rwlock.c:289
+msgid "rwl_writeunlock called too many times.\n"
msgstr ""
-#: src/lib/util.c:184
-msgid "Created"
+#: src/lib/rwlock.c:293
+msgid "rwl_writeunlock by non-owner.\n"
msgstr ""
-#: src/lib/util.c:187
-msgid "Running"
+#: src/lib/rwlock.c:358 src/lib/semlock.c:248
+#, c-format
+msgid "Write lock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:190
-msgid "Blocked"
+#: src/lib/rwlock.c:365 src/lib/semlock.c:255
+#, c-format
+msgid "Write unlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:193 src/lib/util.c:260
-msgid "OK"
+#: src/lib/rwlock.c:375 src/lib/semlock.c:265
+#, c-format
+msgid "Read lock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:197 src/lib/util.c:264
-msgid "Error"
+#: src/lib/rwlock.c:382 src/lib/semlock.c:272
+#, c-format
+msgid "Read unlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:200
-msgid "Non-fatal error"
+#: src/lib/rwlock.c:391 src/lib/semlock.c:281
+#, c-format
+msgid "Thread %d found unchanged elements %d times\n"
msgstr ""
-#: src/lib/util.c:203 src/lib/util.c:270
-msgid "Canceled"
+#: src/lib/rwlock.c:423 src/lib/semlock.c:313
+#, c-format
+msgid "Init rwlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:206
-msgid "Verify differences"
+#: src/lib/rwlock.c:438 src/lib/semlock.c:328
+#, c-format
+msgid "Create thread failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:209
-msgid "Waiting on FD"
+#: src/lib/rwlock.c:449 src/lib/semlock.c:339
+#, c-format
+msgid "Join thread failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:212
-msgid "Wait on SD"
+#: src/lib/rwlock.c:452 src/lib/semlock.c:342
+#, c-format
+msgid "%02d: interval %d, writes %d, reads %d\n"
msgstr ""
-#: src/lib/util.c:215
-msgid "Wait for new Volume"
+#: src/lib/rwlock.c:462 src/lib/semlock.c:352
+#, c-format
+msgid "data %02d: value %d, %d writes\n"
msgstr ""
-#: src/lib/util.c:218
-msgid "Waiting for mount"
+#: src/lib/rwlock.c:467 src/lib/semlock.c:357
+#, c-format
+msgid "Total: %d thread writes, %d data writes\n"
msgstr ""
-#: src/lib/util.c:221
-msgid "Waiting for Storage resource"
+#: src/lib/rwlock.c:539 src/lib/semlock.c:429
+msgid "Try write lock"
msgstr ""
-#: src/lib/util.c:224
-msgid "Waiting for Job resource"
+#: src/lib/rwlock.c:545 src/lib/semlock.c:435
+msgid "Try read lock"
msgstr ""
-#: src/lib/util.c:227
-msgid "Waiting for Client resource"
+#: src/lib/rwlock.c:600 src/lib/semlock.c:490
+msgid "Create thread"
msgstr ""
-#: src/lib/util.c:230
-msgid "Waiting on Max Jobs"
+#: src/lib/rwlock.c:610 src/lib/semlock.c:500
+msgid "Join thread"
msgstr ""
-#: src/lib/util.c:233
-msgid "Waiting for Start Time"
+#: src/lib/rwlock.c:612 src/lib/semlock.c:502
+#, c-format
+msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n"
msgstr ""
-#: src/lib/util.c:236
-msgid "Waiting on Priority"
+#: src/lib/rwlock.c:624 src/lib/semlock.c:514
+#, c-format
+msgid "data %02d: value %d, %d updates\n"
msgstr ""
-#: src/lib/util.c:243
-#, c-format
-msgid "Unknown Job termination status=%d"
+#: src/lib/semlock.c:185
+msgid "sem_unlock by non-owner.\n"
msgstr ""
-#: src/lib/util.c:267
-msgid "Fatal Error"
+#: src/lib/signal.c:61
+msgid "Invalid signal number"
msgstr ""
-#: src/lib/util.c:273
-msgid "Differences"
-msgstr ""
-
-#: src/lib/util.c:276
-msgid "Unknown term code"
+#: src/lib/signal.c:87
+#, c-format
+msgid "Bacula interrupted by signal %d: %s\n"
msgstr ""
-#: src/lib/util.c:304
-msgid "Unknown Type"
+#: src/lib/signal.c:100
+#, c-format
+msgid "Kaboom! %s, %s got signal %d. Attempting traceback.\n"
msgstr ""
-#: src/lib/util.c:336
-msgid "Verify Init Catalog"
+#: src/lib/signal.c:102
+#, c-format
+msgid "Kaboom! exepath=%s\n"
msgstr ""
-#: src/lib/util.c:345
-msgid "Verify Data"
+#: src/lib/signal.c:136
+#, c-format
+msgid "Fork error: ERR=%s\n"
msgstr ""
-#: src/lib/util.c:647
-msgid "Working directory not defined. Cannot continue.\n"
+#: src/lib/signal.c:143
+#, c-format
+msgid "Calling: %s %s %s\n"
msgstr ""
-#: src/lib/util.c:650
+#: src/lib/signal.c:145
#, c-format
-msgid "Working Directory: \"%s\" not found. Cannot continue.\n"
+msgid "execv: %s failed: ERR=%s\n"
msgstr ""
-#: src/lib/util.c:654
+#: src/lib/signal.c:160
#, c-format
-msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n"
+msgid "Traceback complete, attempting cleanup ...\n"
msgstr ""
-#: src/lib/watchdog.c:74
+#: src/lib/signal.c:168
#, c-format
-msgid "Unable to initialize watchdog lock. ERR=%s\n"
+msgid "It looks like the traceback worked ...\n"
msgstr ""
-#: src/lib/tls.c:108
+#: src/lib/signal.c:197
#, c-format
-msgid ""
-"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n"
+msgid "BA_NSIG too small (%d) should be (%d)\n"
msgstr ""
-#: src/lib/tls.c:155
-msgid "Error initializing SSL context"
+#: src/lib/signal.c:203
+msgid "UNKNOWN SIGNAL"
msgstr ""
-#: src/lib/tls.c:176
-msgid "Error loading certificate verification stores"
+#: src/lib/signal.c:204
+msgid "Hangup"
msgstr ""
-#: src/lib/tls.c:181
-msgid ""
-"Either a certificate file or a directory must be specified as a verification "
-"store\n"
+#: src/lib/signal.c:205
+msgid "Interrupt"
msgstr ""
-#: src/lib/tls.c:192
-msgid "Error loading certificate file"
+#: src/lib/signal.c:206
+msgid "Quit"
msgstr ""
-#: src/lib/tls.c:200
-msgid "Error loading private key"
+#: src/lib/signal.c:207
+msgid "Illegal instruction"
msgstr ""
-#: src/lib/tls.c:208
-msgid "Unable to open DH parameters file"
+#: src/lib/signal.c:208
+msgid "Trace/Breakpoint trap"
msgstr ""
-#: src/lib/tls.c:214
-msgid "Unable to load DH parameters from specified file"
+#: src/lib/signal.c:209
+msgid "Abort"
msgstr ""
-#: src/lib/tls.c:218
-msgid "Failed to set TLS Diffie-Hellman parameters"
+#: src/lib/signal.c:211
+msgid "EMT instruction (Emulation Trap)"
msgstr ""
-#: src/lib/tls.c:227
-msgid "Error setting cipher list, no valid ciphers available\n"
+#: src/lib/signal.c:214
+msgid "IOT trap"
msgstr ""
-#: src/lib/tls.c:275
-msgid "Peer failed to present a TLS certificate\n"
+#: src/lib/signal.c:216
+msgid "BUS error"
msgstr ""
-#: src/lib/tls.c:317
-#, c-format
-msgid "Peer %s failed to present a TLS certificate\n"
+#: src/lib/signal.c:217
+msgid "Floating-point exception"
msgstr ""
-#: src/lib/tls.c:587 src/lib/tls.c:591
-msgid "TLS shutdown failure."
+#: src/lib/signal.c:218
+msgid "Kill, unblockable"
msgstr ""
-#: src/lib/tls.c:642 src/lib/tls.c:658
-msgid "TLS read/write failure."
+#: src/lib/signal.c:219
+msgid "User-defined signal 1"
msgstr ""
-#: src/lib/tls.c:880
-msgid "Failed to seed OpenSSL PRNG\n"
+#: src/lib/signal.c:220
+msgid "Segmentation violation"
msgstr ""
-#: src/lib/tls.c:906
-msgid "Failed to save OpenSSL PRNG\n"
+#: src/lib/signal.c:221
+msgid "User-defined signal 2"
msgstr ""
-#: src/stored/acquire.c:98
-#, c-format
-msgid "Hey! num_writers=%d!!!!\n"
+#: src/lib/signal.c:222
+msgid "Broken pipe"
msgstr ""
-#: src/stored/acquire.c:146
-#, c-format
-msgid "Num_writers=%d not zero. Job %d canceled.\n"
+#: src/lib/signal.c:223
+msgid "Alarm clock"
msgstr ""
-#: src/stored/acquire.c:154
-#, c-format
-msgid "No volumes specified. Job %d canceled.\n"
+#: src/lib/signal.c:224
+msgid "Termination"
msgstr ""
-#: src/stored/acquire.c:182 src/stored/mount.c:72
-#, c-format
-msgid "Job %d canceled.\n"
+#: src/lib/signal.c:226
+msgid "Stack fault"
msgstr ""
-#: src/stored/acquire.c:193
-#, c-format
-msgid "Open device %s Volume \"%s\" failed (EIO): ERR=%s\n"
+#: src/lib/signal.c:228
+msgid "Child status has changed"
msgstr ""
-#: src/stored/acquire.c:208
-#, c-format
-msgid "Open device %s Volume \"%s\" failed: ERR=%s\n"
+#: src/lib/signal.c:229
+msgid "Continue"
msgstr ""
-#: src/stored/acquire.c:273 src/stored/mount.c:66
-#, c-format
-msgid "Too many errors trying to mount device %s.\n"
+#: src/lib/signal.c:230
+msgid "Stop, unblockable"
msgstr ""
-#: src/stored/acquire.c:282
-#, c-format
-msgid "Ready to read from volume \"%s\" on device %s.\n"
+#: src/lib/signal.c:231
+msgid "Keyboard stop"
msgstr ""
-#: src/stored/acquire.c:328 src/stored/reserve.c:617
-#, c-format
-msgid "Device %s is busy reading.\n"
+#: src/lib/signal.c:232
+msgid "Background read from tty"
msgstr ""
-#: src/stored/acquire.c:357
-#, c-format
-msgid "Wanted Volume \"%s\", but device %s is busy writing on \"%s\" .\n"
+#: src/lib/signal.c:233
+msgid "Background write to tty"
msgstr ""
-#: src/stored/acquire.c:374
-#, c-format
-msgid ""
-"Cannot recycle volume \"%s\" on device %s because it is in use by another "
-"job.\n"
+#: src/lib/signal.c:234
+msgid "Urgent condition on socket"
msgstr ""
-#: src/stored/acquire.c:396
-#, c-format
-msgid "Could not ready device %s for append.\n"
+#: src/lib/signal.c:235
+msgid "CPU limit exceeded"
msgstr ""
-#: src/stored/acquire.c:459 src/stored/block.c:353 src/stored/block.c:676
-#: src/stored/block.c:744
-#, c-format
-msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n"
+#: src/lib/signal.c:236
+msgid "File size limit exceeded"
msgstr ""
-#: src/stored/acquire.c:501
-#, c-format
-msgid "Alert: %s"
+#: src/lib/signal.c:237
+msgid "Virtual alarm clock"
msgstr ""
-#: src/stored/acquire.c:509
-#, c-format
-msgid "3997 Bad alert command: %s: ERR=%s.\n"
+#: src/lib/signal.c:238
+msgid "Profiling alarm clock"
msgstr ""
-#: src/stored/append.c:60
-msgid "Unable to set network buffer size.\n"
+#: src/lib/signal.c:239
+msgid "Window size change"
msgstr ""
-#: src/stored/append.c:88 src/stored/btape.c:1810
-#, c-format
-msgid "Write session label failed. ERR=%s\n"
+#: src/lib/signal.c:240
+msgid "I/O now possible"
msgstr ""
-#: src/stored/append.c:100
-#, c-format
-msgid "Network send error to FD. ERR=%s\n"
+#: src/lib/signal.c:242
+msgid "Power failure restart"
msgstr ""
-#: src/stored/append.c:137
-#, c-format
-msgid "Error reading data header from FD. ERR=%s\n"
+#: src/lib/signal.c:245
+msgid "No runnable lwp"
msgstr ""
-#: src/stored/append.c:159
-#, c-format
-msgid "Malformed data header from FD: %s\n"
+#: src/lib/signal.c:248
+msgid "SIGLWP special signal used by thread library"
msgstr ""
-#: src/stored/append.c:169
-msgid "File index from FD not positive or sequential\n"
+#: src/lib/signal.c:251
+msgid "Checkpoint Freeze"
msgstr ""
-#: src/stored/append.c:199 src/stored/append.c:269 src/stored/spool.c:242
-#, c-format
-msgid "Fatal append error on device %s: ERR=%s\n"
+#: src/lib/signal.c:254
+msgid "Checkpoint Thaw"
msgstr ""
-#: src/stored/append.c:224
-#, c-format
-msgid "Error updating file attributes. ERR=%s\n"
+#: src/lib/signal.c:257
+msgid "Thread Cancellation"
msgstr ""
-#: src/stored/append.c:237
-#, c-format
-msgid "Network error on data channel. ERR=%s\n"
+#: src/lib/signal.c:260
+msgid "Resource Lost (e.g. record-lock lost)"
msgstr ""
-#: src/stored/append.c:258 src/stored/btape.c:1926
-#, c-format
-msgid "Error writting end session label. ERR=%s\n"
+#: src/lib/smartall.c:137 src/lib/smartall.c:228 src/lib/smartall.c:243
+msgid "Out of memory\n"
msgstr ""
-#: src/stored/append.c:271
-msgid "Set ok=FALSE after write_block_to_device.\n"
+#: src/lib/smartall.c:165
+#, c-format
+msgid "Attempt to free NULL called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:161
-msgid "Network error on bnet_recv in req_vol_info.\n"
+#: src/lib/smartall.c:181
+#, c-format
+msgid "qp->qnext->qprev != qp called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:178
+#: src/lib/smartall.c:185
#, c-format
-msgid "Error getting Volume info: %s\n"
+msgid "qp->qprev->qnext != qp called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:284
-msgid "NULL Volume name. This shouldn't happen!!!\n"
+#: src/lib/smartall.c:194
+#, c-format
+msgid "Buffer overrun called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:289
-msgid "Attempt to update_volume_info in read mode!!!\n"
+#: src/lib/smartall.c:265
+#, c-format
+msgid "sm_realloc size: %d\n"
msgstr ""
-#: src/stored/askdir.c:349
+#: src/lib/smartall.c:306
#, c-format
-msgid "Error creating JobMedia record: ERR=%s\n"
+msgid "sm_realloc %d at %x from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:356
+#: src/lib/smartall.c:368
#, c-format
-msgid "Error creating JobMedia record: %s\n"
+msgid ""
+"\n"
+"Orphaned buffers exist. Dump terminated following\n"
+" discovery of bad links in chain of orphaned buffers.\n"
+" Buffer address with bad links: %lx\n"
msgstr ""
-#: src/stored/askdir.c:424
+#: src/lib/smartall.c:379
#, c-format
-msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n"
+msgid "Orphaned buffer: %6u bytes allocated at line %d of %s %s\n"
msgstr ""
-#: src/stored/askdir.c:452
+#: src/lib/smartall.c:415
#, c-format
-msgid ""
-"Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
-"Use \"mount\" command to release Job.\n"
+msgid "Damaged buffer found. Called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:462
+#: src/lib/smartall.c:445
#, c-format
msgid ""
-"Job %s waiting. Cannot find any appendable volumes.\n"
-"Please use the \"label\" command to create a new Volume for:\n"
-" Storage: %s\n"
-" Media type: %s\n"
-" Pool: %s\n"
+"\n"
+"Damaged buffers found at %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:486 src/stored/askdir.c:590
+#: src/lib/smartall.c:448
#, c-format
-msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n"
+msgid " discovery of bad prev link.\n"
msgstr ""
-#: src/stored/askdir.c:496 src/stored/askdir.c:503
+#: src/lib/smartall.c:451
#, c-format
-msgid "pthread error in mount_next_volume stat=%d ERR=%s\n"
+msgid " discovery of bad next link.\n"
msgstr ""
-#: src/stored/askdir.c:514
+#: src/lib/smartall.c:454
#, c-format
-msgid ""
-"Someone woke me up, but I cannot find any appendable\n"
-"volumes for Job=%s.\n"
+msgid " discovery of data overrun.\n"
msgstr ""
-#: src/stored/askdir.c:559
-msgid "Cannot request another volume: no volume name given.\n"
+#: src/lib/smartall.c:457
+#, c-format
+msgid " Buffer address: %lx\n"
msgstr ""
-#: src/stored/askdir.c:565
+#: src/lib/smartall.c:464
#, c-format
-msgid "Job %s canceled while waiting for mount on Storage Device %s.\n"
+msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n"
msgstr ""
-#: src/stored/askdir.c:571
-msgid "Please mount"
+#: src/lib/util.c:187
+msgid "Running"
msgstr ""
-#: src/stored/askdir.c:572
-#, c-format
-msgid "%s Volume \"%s\" on Storage Device %s for Job %s\n"
+#: src/lib/util.c:190
+msgid "Blocked"
msgstr ""
-#: src/stored/askdir.c:600
-#, c-format
-msgid "pthread error in mount_volume stat=%d ERR=%s\n"
+#: src/lib/util.c:200
+msgid "Non-fatal error"
msgstr ""
-#: src/stored/askdir.c:607
-#, c-format
-msgid "pthread error in mount_next_volume stat=%d: ERR=%s\n"
+#: src/lib/util.c:203 src/lib/util.c:270
+msgid "Canceled"
msgstr ""
-#: src/stored/authenticate.c:52 src/stored/authenticate.c:53
-#, c-format
-msgid "I only authenticate Directors, not %d\n"
+#: src/lib/util.c:206
+msgid "Verify differences"
msgstr ""
-#: src/stored/authenticate.c:120
-msgid ""
-"Incorrect password given by Director.\n"
-"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
-"help.\n"
+#: src/lib/util.c:209
+msgid "Waiting on FD"
msgstr ""
-#: src/stored/authenticate.c:177 src/stored/authenticate.c:178
-#, c-format
-msgid "Unable to authenticate Director at %s.\n"
+#: src/lib/util.c:212
+msgid "Wait on SD"
msgstr ""
-#: src/stored/authenticate.c:223 src/stored/authenticate.c:259
-#, c-format
-msgid ""
-"Incorrect authorization key from File daemon at %s rejected.\n"
-"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
-"help.\n"
+#: src/lib/util.c:215
+msgid "Wait for new Volume"
msgstr ""
-#: src/stored/autochanger.c:87
-#, c-format
-msgid "3303 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+#: src/lib/util.c:218
+msgid "Waiting for mount"
msgstr ""
-#: src/stored/autochanger.c:96
-#, c-format
-msgid "3992 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:221
+msgid "Waiting for Storage resource"
msgstr ""
-#: src/stored/autochanger.c:109
-#, c-format
-msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n"
+#: src/lib/util.c:224
+msgid "Waiting for Job resource"
msgstr ""
-#: src/stored/autochanger.c:116
-#, c-format
-msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n"
+#: src/lib/util.c:227
+msgid "Waiting for Client resource"
msgstr ""
-#: src/stored/autochanger.c:122
-#, c-format
-msgid "3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:230
+msgid "Waiting on Max Jobs"
msgstr ""
-#: src/stored/autochanger.c:167
-#, c-format
-msgid "3301 Issuing autochanger \"loaded drive %d\" command.\n"
+#: src/lib/util.c:233
+msgid "Waiting for Start Time"
msgstr ""
-#: src/stored/autochanger.c:176
-#, c-format
-msgid "3302 Autochanger \"loaded drive %d\", result is Slot %d.\n"
+#: src/lib/util.c:236
+msgid "Waiting on Priority"
msgstr ""
-#: src/stored/autochanger.c:180
+#: src/lib/util.c:243
#, c-format
-msgid "3302 Autochanger \"loaded drive %d\", result: nothing loaded.\n"
+msgid "Unknown Job termination status=%d"
msgstr ""
-#: src/stored/autochanger.c:187
-#, c-format
-msgid "3991 Bad autochanger \"loaded drive %d\" command: ERR=%s.\n"
+#: src/lib/util.c:267
+msgid "Fatal Error"
msgstr ""
-#: src/stored/autochanger.c:235
-#, c-format
-msgid "3993 Device %s not an autochanger device.\n"
+#: src/lib/util.c:273
+msgid "Differences"
msgstr ""
-#: src/stored/autochanger.c:253
-#, c-format
-msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+#: src/lib/util.c:276
+msgid "Unknown term code"
msgstr ""
-#: src/stored/autochanger.c:265
-#, c-format
-msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:304
+msgid "Unknown Type"
msgstr ""
-#: src/stored/autochanger.c:277
-#, c-format
-msgid "3306 Issuing autochanger \"%s\" command.\n"
+#: src/lib/util.c:336
+msgid "Verify Init Catalog"
msgstr ""
-#: src/stored/autochanger.c:282
-msgid "3996 Open bpipe failed.\n"
+#: src/lib/util.c:345
+msgid "Verify Data"
msgstr ""
-#: src/stored/bcopy.c:58
-#, c-format
-msgid ""
-"Copyright (C) 2002-2005 Kern Sibbald.\n"
-"\n"
-"Version: "
+#: src/lib/util.c:647
+msgid "Working directory not defined. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:59
+#: src/lib/util.c:650
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: bcopy [-d debug_level] <input-archive> <output-archive>\n"
-" -b bootstrap specify a bootstrap file\n"
-" -c <file> specify configuration file\n"
-" -d <nn> set debug level to nn\n"
-" -i specify input Volume names (separated by |)\n"
-" -o specify output Volume names (separated by |)\n"
-" -p proceed inspite of errors\n"
-" -v verbose\n"
-" -w <dir> specify working directory (default /tmp)\n"
-" -? print this message\n"
-"\n"
+msgid "Working Directory: \"%s\" not found. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:133 src/stored/bscan.c:217
-msgid "Wrong number of arguments: \n"
+#: src/lib/util.c:654
+#, c-format
+msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:168 src/stored/btape.c:330 src/stored/device.c:273
-#, c-format
-msgid "dev open failed: %s\n"
+#: src/lib/var.c:2659
+msgid "everything ok"
msgstr ""
-#: src/stored/bcopy.c:181
-msgid "Write of last block failed.\n"
+#: src/lib/var.c:2660
+msgid "incomplete named character"
msgstr ""
-#: src/stored/bcopy.c:184
-#, c-format
-msgid "%u Jobs copied. %u records copied.\n"
+#: src/lib/var.c:2661
+msgid "incomplete hexadecimal value"
msgstr ""
-#: src/stored/bcopy.c:201 src/stored/bscan.c:380
-#, c-format
-msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n"
+#: src/lib/var.c:2662
+msgid "invalid hexadecimal value"
msgstr ""
-#: src/stored/bcopy.c:231 src/stored/bcopy.c:238 src/stored/bcopy.c:261
-#: src/stored/btape.c:2286
-#, c-format
-msgid "Cannot fixup device error. %s\n"
+#: src/lib/var.c:2663
+msgid "octal value too large"
msgstr ""
-#: src/stored/bextract.c:274
-msgid "Logic error output file should be open but is not.\n"
+#: src/lib/var.c:2664
+msgid "invalid octal value"
msgstr ""
-#: src/stored/bextract.c:281 src/stored/bls.c:361 src/stored/bscan.c:636
-msgid "Cannot continue.\n"
+#: src/lib/var.c:2665
+msgid "incomplete octal value"
msgstr ""
-#: src/stored/bextract.c:343
-#, c-format
-msgid "Seek error on %s: %s\n"
+#: src/lib/var.c:2666
+msgid "incomplete grouped hexadecimal value"
msgstr ""
-#: src/stored/bextract.c:396
-#, c-format
-msgid "Uncompression error. ERR=%d\n"
+#: src/lib/var.c:2667
+msgid "incorrect character class specification"
msgstr ""
-#: src/stored/block.c:147
-#, c-format
-msgid "%d block read errors not printed.\n"
+#: src/lib/var.c:2668
+msgid "invalid expansion configuration"
msgstr ""
-#: src/stored/block.c:235 src/stored/block.c:251 src/stored/block.c:261
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer "
-"discarded.\n"
+#: src/lib/var.c:2669
+msgid "out of memory"
msgstr ""
-#: src/stored/block.c:275
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Block length %u is insane (too large), probably "
-"due to a bad archive.\n"
+#: src/lib/var.c:2670
+msgid "incomplete variable specification"
msgstr ""
-#: src/stored/block.c:301
-#, c-format
-msgid ""
-"Volume data error at %u:%u!\n"
-"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n"
+#: src/lib/var.c:2671
+msgid "undefined variable"
msgstr ""
-#: src/stored/block.c:409
-msgid "Cannot write block. Device at EOM.\n"
+#: src/lib/var.c:2672
+msgid "input is neither text nor variable"
msgstr ""
-#: src/stored/block.c:414
-msgid "Attempt to write on read-only Volume.\n"
+#: src/lib/var.c:2673
+msgid "unknown command character in variable"
msgstr ""
-#: src/stored/block.c:466
-#, c-format
-msgid "User defined maximum volume capacity %s exceeded on device %s.\n"
+#: src/lib/var.c:2674
+msgid "malformatted search and replace operation"
msgstr ""
-#: src/stored/block.c:481
-#, c-format
-msgid "Unable to write EOF. ERR=%s\n"
+#: src/lib/var.c:2675
+msgid "unknown flag in search and replace operation"
msgstr ""
-#: src/stored/block.c:536
-#, c-format
-msgid "Write error at %u:%u on device %s. ERR=%s.\n"
+#: src/lib/var.c:2676
+msgid "invalid regex in search and replace operation"
msgstr ""
-#: src/stored/block.c:543
-#, c-format
-msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n"
+#: src/lib/var.c:2677
+msgid "missing parameter in command"
msgstr ""
-#: src/stored/block.c:618 src/stored/block.c:624
-#, c-format
-msgid "Backspace file at EOT failed. ERR=%s\n"
+#: src/lib/var.c:2678
+msgid "empty search string in search and replace operation"
msgstr ""
-#: src/stored/block.c:631
-#, c-format
-msgid "Backspace record at EOT failed. ERR=%s\n"
+#: src/lib/var.c:2679
+msgid "start offset missing in cut operation"
msgstr ""
-#: src/stored/block.c:648
-#, c-format
-msgid "Re-read last block at EOT failed. ERR=%s"
+#: src/lib/var.c:2680
+msgid "offsets in cut operation delimited by unknown character"
msgstr ""
-#: src/stored/block.c:652
-msgid "Re-read of last block succeeded.\n"
+#: src/lib/var.c:2681
+msgid "range out of bounds in cut operation"
msgstr ""
-#: src/stored/block.c:655
-#, c-format
-msgid "Re-read of last block failed. Last block=%u Current block=%u.\n"
+#: src/lib/var.c:2682
+msgid "offset out of bounds in cut operation"
msgstr ""
-#: src/stored/block.c:790 src/stored/dvd.c:621
-#, c-format
-msgid ""
-"Error while writing, current part number is less than the total number of "
-"parts (%d/%d, device=%s)\n"
+#: src/lib/var.c:2683
+msgid "logic error in cut operation"
msgstr ""
-#: src/stored/block.c:798 src/stored/block.c:908
-#, c-format
-msgid "Unable to open device next part %s: ERR=%s\n"
+#: src/lib/var.c:2684
+msgid "malformatted transpose operation"
msgstr ""
-#: src/stored/block.c:816
-#, c-format
-msgid ""
-"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
-"free_space_errno=%d, errmsg=%s).\n"
+#: src/lib/var.c:2685
+msgid "source and target class mismatch in transpose operation"
msgstr ""
-#: src/stored/block.c:829
-#, c-format
-msgid ""
-"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
-"free_space_errno=%d).\n"
+#: src/lib/var.c:2686
+msgid "empty character class in transpose operation"
msgstr ""
-#: src/stored/block.c:883
-#, c-format
-msgid "Block buffer size looping problem on device %s\n"
+#: src/lib/var.c:2687
+msgid "incorrect character class in transpose operation"
msgstr ""
-#: src/stored/block.c:934
-#, c-format
-msgid "Read error at file:blk %u:%u on device %s. ERR=%s.\n"
+#: src/lib/var.c:2688
+msgid "malformatted padding operation"
msgstr ""
-#: src/stored/block.c:947
-#, c-format
-msgid "Read zero bytes at %u:%u on device %s.\n"
+#: src/lib/var.c:2689
+msgid "width parameter missing in padding operation"
msgstr ""
-#: src/stored/block.c:960
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Very short block of %d bytes on device %s "
-"discarded.\n"
+#: src/lib/var.c:2690
+msgid "fill string missing in padding operation"
msgstr ""
-#: src/stored/block.c:985
-#, c-format
-msgid "Block length %u is greater than buffer %u. Attempting recovery.\n"
+#: src/lib/var.c:2691
+msgid "unknown quoted pair in search and replace operation"
msgstr ""
-#: src/stored/block.c:1004
-#, c-format
-msgid "Setting block buffer size to %u bytes.\n"
+#: src/lib/var.c:2692
+msgid "sub-matching reference out of range"
msgstr ""
-#: src/stored/block.c:1019
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n"
+#: src/lib/var.c:2693
+msgid "invalid argument"
msgstr ""
-#: src/stored/bls.c:125
-#, c-format
-msgid "Could not open exclude file: %s, ERR=%s\n"
+#: src/lib/var.c:2694
+msgid "incomplete quoted pair"
msgstr ""
-#: src/stored/bls.c:139
-#, c-format
-msgid "Could not open include file: %s, ERR=%s\n"
+#: src/lib/var.c:2695
+msgid "lookup function does not support variable arrays"
msgstr ""
-#: src/stored/bls.c:186
-msgid "No archive name specified\n"
+#: src/lib/var.c:2696
+msgid "index of array variable contains an invalid character"
msgstr ""
-#: src/stored/bls.c:264
-#, c-format
-msgid "Got EOM at file %u on device %s, Volume \"%s\"\n"
+#: src/lib/var.c:2697
+msgid "index of array variable is incomplete"
msgstr ""
-#: src/stored/bls.c:275
-#, c-format
-msgid "Mounted Volume \"%s\".\n"
+#: src/lib/var.c:2698
+msgid "bracket expression in array variable's index not closed"
msgstr ""
-#: src/stored/bls.c:277
-#, c-format
-msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+#: src/lib/var.c:2699
+msgid "division by zero error in index specification"
msgstr ""
-#: src/stored/bscan.c:109
-#, c-format
-msgid ""
-"Copyright (C) 2001-2005 Kern Sibbald.\n"
-"\n"
-"Version: "
+#: src/lib/var.c:2700
+msgid "unterminated loop construct"
msgstr ""
-#: src/stored/bscan.c:110
-#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: bscan [ options ] <bacula-archive>\n"
-" -b bootstrap specify a bootstrap file\n"
-" -c <file> specify configuration file\n"
-" -d <nn> set debug level to nn\n"
-" -m update media info in database\n"
-" -n <name> specify the database name (default bacula)\n"
-" -u <user> specify database user name (default bacula)\n"
-" -P <password specify database password (default none)\n"
-" -h <host> specify database host (default NULL)\n"
-" -p proceed inspite of I/O errors\n"
-" -r list records\n"
-" -s synchronize or store in database\n"
-" -S show scan progress periodically\n"
-" -v verbose\n"
-" -V <Volumes> specify Volume names (separated by |)\n"
-" -w <dir> specify working directory (default from conf file)\n"
-" -? print this message\n"
-"\n"
+#: src/lib/var.c:2701
+msgid "invalid character in loop limits"
msgstr ""
-#: src/stored/bscan.c:230 src/stored/stored.c:263
-#, c-format
-msgid "No Storage resource defined in %s. Cannot continue.\n"
+#: src/lib/var.c:2702
+msgid "malformed operation argument list"
msgstr ""
-#: src/stored/bscan.c:238 src/stored/stored.c:294
-#, c-format
-msgid "No Working Directory defined in %s. Cannot continue.\n"
+#: src/lib/var.c:2703
+msgid "undefined operation"
msgstr ""
-#: src/stored/bscan.c:246
-#, c-format
-msgid "Working Directory: %s not found. Cannot continue.\n"
+#: src/lib/var.c:2704
+msgid "formatting failure"
msgstr ""
-#: src/stored/bscan.c:250
-#, c-format
-msgid "Working Directory: %s is not a directory. Cannot continue.\n"
+#: src/lib/var.c:2713
+msgid "unknown error"
msgstr ""
-#: src/stored/bscan.c:264 src/stored/bscan.c:331
+#: src/lib/watchdog.c:74
#, c-format
-msgid "First Volume Size = %sn"
+msgid "Unable to initialize watchdog lock. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:270
-msgid "Could not init Bacula database\n"
+#: src/lib/watchdog.c:170
+msgid "BUG! register_watchdog called before start_watchdog\n"
msgstr ""
-#: src/stored/bscan.c:277
+#: src/lib/watchdog.c:173
#, c-format
-msgid "Using Database: %s, User: %s\n"
+msgid "BUG! Watchdog %p has NULL callback\n"
msgstr ""
-#: src/stored/bscan.c:306
+#: src/lib/watchdog.c:176
#, c-format
-msgid "Create JobMedia for Job %s\n"
+msgid "BUG! Watchdog %p has zero interval\n"
msgstr ""
-#: src/stored/bscan.c:316
-#, c-format
-msgid "Could not create JobMedia record for Volume=%s Job=%s\n"
+#: src/lib/watchdog.c:196
+msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n"
msgstr ""
-#: src/stored/bscan.c:396
-msgid "Volume is prelabeled. This tape cannot be scanned.\n"
+#: src/lib/watchdog.c:313
+#, c-format
+msgid "rwl_writelock failure. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:408
+#: src/lib/watchdog.c:327
#, c-format
-msgid "Pool record for %s found in DB.\n"
+msgid "rwl_writeunlock failure. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:412
-#, c-format
-msgid "VOL_LABEL: Pool record not found for Pool: %s\n"
+#: src/lib/pythonlib.c:108
+msgid "Could not initialize Python\n"
msgstr ""
-#: src/stored/bscan.c:418
+#: src/lib/pythonlib.c:113
#, c-format
-msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n"
+msgid "Could not Run Python string %s\n"
msgstr ""
-#: src/stored/bscan.c:422
-#, c-format
-msgid "Pool type \"%s\" is OK.\n"
+#: src/lib/pythonlib.c:125
+msgid "Could not initialize Python Job type.\n"
msgstr ""
-#: src/stored/bscan.c:432
+#: src/lib/pythonlib.c:130
#, c-format
-msgid "Media record for %s found in DB.\n"
+msgid "Could not import Python script %s/%s. Python disabled.\n"
msgstr ""
-#: src/stored/bscan.c:439
-#, c-format
-msgid "VOL_LABEL: Media record not found for Volume: %s\n"
+#: src/lib/pythonlib.c:230
+msgid "Could not create Python Job Object.\n"
msgstr ""
-#: src/stored/bscan.c:446
+#: src/lib/pythonlib.c:243 src/lib/pythonlib.c:267
#, c-format
-msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n"
+msgid "Python function \"%s\" not found.\n"
msgstr ""
-#: src/stored/bscan.c:450
+#: src/lib/pythonlib.c:282
#, c-format
-msgid "Media type \"%s\" is OK.\n"
+msgid "Unknown Python daemon event %s\n"
msgstr ""
-#: src/stored/bscan.c:459
+#: src/lib/res.c:66
#, c-format
-msgid "VOL_LABEL: OK for Volume: %s\n"
+msgid "rwl_writelock failure at %s:%d: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:466
+#: src/lib/res.c:76
#, c-format
-msgid "%d \"errors\" ignored before first Start of Session record.\n"
+msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:477
+#: src/lib/tls.c:108
#, c-format
-msgid "SOS_LABEL: Found Job record for JobId: %d\n"
+msgid ""
+"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n"
msgstr ""
-#: src/stored/bscan.c:482
-#, c-format
-msgid "SOS_LABEL: Job record not found for JobId: %d\n"
+#: src/lib/tls.c:155
+msgid "Error initializing SSL context"
msgstr ""
-#: src/stored/bscan.c:522
-#, c-format
-msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:176
+msgid "Error loading certificate verification stores"
msgstr ""
-#: src/stored/bscan.c:528
-#, c-format
-msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:181
+msgid ""
+"Either a certificate file or a directory must be specified as a verification "
+"store\n"
msgstr ""
-#: src/stored/bscan.c:534
-#, c-format
-msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:192
+msgid "Error loading certificate file"
msgstr ""
-#: src/stored/bscan.c:552 src/stored/bscan.c:998
-#, c-format
-msgid "Could not find SessId=%d SessTime=%d for EOS record.\n"
+#: src/lib/tls.c:200
+msgid "Error loading private key"
msgstr ""
-#: src/stored/bscan.c:595
-#, c-format
-msgid "Could not update job record. ERR=%s\n"
+#: src/lib/tls.c:208
+msgid "Unable to open DH parameters file"
msgstr ""
-#: src/stored/bscan.c:606
-#, c-format
-msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n"
-msgstr ""
-
-#: src/stored/bscan.c:618
-#, c-format
-msgid "Could not find Job for SessId=%d SessTime=%d record.\n"
+#: src/lib/tls.c:214
+msgid "Unable to load DH parameters from specified file"
msgstr ""
-#: src/stored/bscan.c:654
-#, c-format
-msgid "%s file records. At file:blk=%s:%s bytes=%s\n"
+#: src/lib/tls.c:218
+msgid "Failed to set TLS Diffie-Hellman parameters"
msgstr ""
-#: src/stored/bscan.c:697
-#, c-format
-msgid "Got MD5 record: %s\n"
+#: src/lib/tls.c:227
+msgid "Error setting cipher list, no valid ciphers available\n"
msgstr ""
-#: src/stored/bscan.c:706
-#, c-format
-msgid "Got SHA1 record: %s\n"
+#: src/lib/tls.c:275
+msgid "Peer failed to present a TLS certificate\n"
msgstr ""
-#: src/stored/bscan.c:714
+#: src/lib/tls.c:317
#, c-format
-msgid "Got Prog Names Stream: %s\n"
+msgid "Peer %s failed to present a TLS certificate\n"
msgstr ""
-#: src/stored/bscan.c:720
-msgid "Got Prog Data Stream record.\n"
+#: src/lib/tls.c:416
+msgid "Error creating file descriptor-based BIO"
msgstr ""
-#: src/stored/bscan.c:724
-#, c-format
-msgid "Unknown stream type!!! stream=%d data=%s\n"
+#: src/lib/tls.c:427
+msgid "Error creating new SSL object"
msgstr ""
-#: src/stored/bscan.c:784
-#, c-format
-msgid "Could not create File Attributes record. ERR=%s\n"
+#: src/lib/tls.c:493 src/lib/tls.c:510
+msgid "Connect failure"
msgstr ""
-#: src/stored/bscan.c:790
-#, c-format
-msgid "Created File record: %s\n"
+#: src/lib/tls.c:587 src/lib/tls.c:591
+msgid "TLS shutdown failure."
msgstr ""
-#: src/stored/bscan.c:827
-#, c-format
-msgid "Could not create media record. ERR=%s\n"
+#: src/lib/tls.c:642 src/lib/tls.c:658
+msgid "TLS read/write failure."
msgstr ""
-#: src/stored/bscan.c:831 src/stored/bscan.c:852
+#: src/lib/tls.c:716 src/lib/tls.c:773 src/stored/dev.c:212
+#: src/stored/dev.c:230 src/stored/dev.c:236 src/stored/stored_conf.c:550
#, c-format
-msgid "Could not update media record. ERR=%s\n"
+msgid "Unable to init mutex: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:835
+#: src/lib/tls.c:736 src/lib/tls.c:805
#, c-format
-msgid "Created Media record for Volume: %s\n"
+msgid "Unable to destroy mutex: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:856
+#: src/lib/tls.c:870
#, c-format
-msgid "Updated Media record at end of Volume: %s\n"
+msgid "Unable to init OpenSSL threading: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:873
-#, c-format
-msgid "Could not create pool record. ERR=%s\n"
+#: src/lib/tls.c:880
+msgid "Failed to seed OpenSSL PRNG\n"
msgstr ""
-#: src/stored/bscan.c:877
-#, c-format
-msgid "Created Pool record for Pool: %s\n"
+#: src/lib/tls.c:906
+msgid "Failed to save OpenSSL PRNG\n"
msgstr ""
-#: src/stored/bscan.c:897
+#: src/stored/acquire.c:98
#, c-format
-msgid "Created Client record for Client: %s\n"
+msgid "Hey! num_writers=%d!!!!\n"
msgstr ""
-#: src/stored/bscan.c:914
+#: src/stored/acquire.c:146
#, c-format
-msgid "Fileset \"%s\" already exists.\n"
+msgid "Num_writers=%d not zero. Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:918
+#: src/stored/acquire.c:154
#, c-format
-msgid "Could not create FileSet record \"%s\". ERR=%s\n"
+msgid "No volumes specified. Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:923
+#: src/stored/acquire.c:182 src/stored/mount.c:72
#, c-format
-msgid "Created FileSet record \"%s\"\n"
+msgid "Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:970
+#: src/stored/acquire.c:193
#, c-format
-msgid "Could not create JobId record. ERR=%s\n"
+msgid "Open device %s Volume \"%s\" failed (EIO): ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:976
+#: src/stored/acquire.c:208
#, c-format
-msgid "Could not update job start record. ERR=%s\n"
+msgid "Open device %s Volume \"%s\" failed: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:979
+#: src/stored/acquire.c:273 src/stored/mount.c:66
#, c-format
-msgid "Created new JobId=%u record for original JobId=%u\n"
+msgid "Too many errors trying to mount device %s.\n"
msgstr ""
-#: src/stored/bscan.c:1029
+#: src/stored/acquire.c:282
#, c-format
-msgid "Could not update JobId=%u record. ERR=%s\n"
+msgid "Ready to read from volume \"%s\" on device %s.\n"
msgstr ""
-#: src/stored/bscan.c:1034
+#: src/stored/acquire.c:328 src/stored/reserve.c:617
#, c-format
-msgid "Updated Job termination record for JobId=%u TermStat=%c\n"
+msgid "Device %s is busy reading.\n"
msgstr ""
-#: src/stored/bscan.c:1056
+#: src/stored/acquire.c:357
#, c-format
-msgid "Job Termination code: %d"
+msgid "Wanted Volume \"%s\", but device %s is busy writing on \"%s\" .\n"
msgstr ""
-#: src/stored/bscan.c:1061
+#: src/stored/acquire.c:374
#, c-format
msgid ""
-"%s\n"
-"JobId: %d\n"
-"Job: %s\n"
-"FileSet: %s\n"
-"Backup Level: %s\n"
-"Client: %s\n"
-"Start time: %s\n"
-"End time: %s\n"
-"Files Written: %s\n"
-"Bytes Written: %s\n"
-"Volume Session Id: %d\n"
-"Volume Session Time: %d\n"
-"Last Volume Bytes: %s\n"
-"Termination: %s\n"
-"\n"
+"Cannot recycle volume \"%s\" on device %s because it is in use by another "
+"job.\n"
msgstr ""
-#: src/stored/bscan.c:1125
+#: src/stored/acquire.c:396
#, c-format
-msgid "Could not create JobMedia record. ERR=%s\n"
+msgid "Could not ready device %s for append.\n"
msgstr ""
-#: src/stored/bscan.c:1129
+#: src/stored/acquire.c:459 src/stored/block.c:353 src/stored/block.c:676
+#: src/stored/block.c:744
#, c-format
-msgid "Created JobMedia record JobId %d, MediaId %d\n"
+msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n"
msgstr ""
-#: src/stored/bscan.c:1145
+#: src/stored/acquire.c:501
#, c-format
-msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n"
+msgid "Alert: %s"
msgstr ""
-#: src/stored/bscan.c:1159
+#: src/stored/acquire.c:509
#, c-format
-msgid "Could not add MD5/SHA1 to File record. ERR=%s\n"
+msgid "3997 Bad alert command: %s: ERR=%s.\n"
msgstr ""
-#: src/stored/bscan.c:1164
-msgid "Updated MD5/SHA1 record\n"
+#: src/stored/append.c:60
+msgid "Unable to set network buffer size.\n"
msgstr ""
-#: src/stored/btape.c:483
-msgid "Moved to end of medium.\n"
+#: src/stored/append.c:73 src/stored/append.c:82 src/stored/append.c:94
+#: src/stored/append.c:249 src/stored/append.c:264 src/stored/append.c:276
+#: src/stored/askdir.c:284 src/stored/askdir.c:285
+msgid "NULL Volume name. This shouldn't happen!!!\n"
msgstr ""
-#: src/stored/btape.c:510
+#: src/stored/append.c:88 src/stored/btape.c:1853
#, c-format
-msgid "Bad status from bsf. ERR=%s\n"
+msgid "Write session label failed. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:512
+#: src/stored/append.c:100
#, c-format
-msgid "Backspaced %d file%s.\n"
+msgid "Network send error to FD. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:529
+#: src/stored/append.c:137
#, c-format
-msgid "Bad status from bsr. ERR=%s\n"
+msgid "Error reading data header from FD. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:531
+#: src/stored/append.c:159
#, c-format
-msgid "Backspaced %d record%s.\n"
+msgid "Malformed data header from FD: %s\n"
msgstr ""
-#: src/stored/btape.c:541 src/stored/status.c:216
-#, c-format
-msgid "Configured device capabilities:\n"
+#: src/stored/append.c:169
+msgid "File index from FD not positive or sequential\n"
msgstr ""
-#: src/stored/btape.c:559
+#: src/stored/append.c:199 src/stored/append.c:269 src/stored/spool.c:247
#, c-format
-msgid "Device status:\n"
+msgid "Fatal append error on device %s: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:573 src/stored/status.c:248
+#: src/stored/append.c:224
#, c-format
-msgid "Device parameters:\n"
+msgid "Error updating file attributes. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:643
-msgid "Skipping read backwards test because BSR turned off.\n"
+#: src/stored/append.c:237
+#, c-format
+msgid "Network error on data channel. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:647
-msgid ""
-"\n"
-"=== Write, backup, and re-read test ===\n"
-"\n"
-"I'm going to write three records and an EOF\n"
-"then backup over the EOF and re-read the last record.\n"
-"Bacula does this after writing the last block on the\n"
-"tape to verify that the block was written correctly.\n"
-"\n"
-"This is not an *essential* feature ...\n"
-"\n"
+#: src/stored/append.c:258 src/stored/btape.c:1969
+#, c-format
+msgid "Error writting end session label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:660 src/stored/btape.c:671 src/stored/btape.c:682
-#: src/stored/btape.c:780 src/stored/btape.c:796 src/stored/btape.c:892
-#: src/stored/btape.c:908 src/stored/btape.c:1508 src/stored/btape.c:2351
-msgid "Error writing record to block.\n"
+#: src/stored/append.c:271
+msgid "Set ok=FALSE after write_block_to_device.\n"
msgstr ""
-#: src/stored/btape.c:664 src/stored/btape.c:675 src/stored/btape.c:686
-#: src/stored/btape.c:784 src/stored/btape.c:800 src/stored/btape.c:896
-#: src/stored/btape.c:912 src/stored/btape.c:1512 src/stored/btape.c:2355
-msgid "Error writing block to device.\n"
+#: src/stored/askdir.c:161
+msgid "Network error on bnet_recv in req_vol_info.\n"
msgstr ""
-#: src/stored/btape.c:667
+#: src/stored/askdir.c:178
#, c-format
-msgid "Wrote first record of %d bytes.\n"
+msgid "Error getting Volume info: %s\n"
msgstr ""
-#: src/stored/btape.c:678
-#, c-format
-msgid "Wrote second record of %d bytes.\n"
+#: src/stored/askdir.c:289 src/stored/askdir.c:290
+msgid "Attempt to update_volume_info in read mode!!!\n"
msgstr ""
-#: src/stored/btape.c:689
+#: src/stored/askdir.c:318
#, c-format
-msgid "Wrote third record of %d bytes.\n"
+msgid "Didn't get vol info vol=%s: ERR=%s"
msgstr ""
-#: src/stored/btape.c:696 src/stored/btape.c:701
+#: src/stored/askdir.c:349
#, c-format
-msgid "Backspace file failed! ERR=%s\n"
+msgid "Error creating JobMedia record: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:707
+#: src/stored/askdir.c:356
#, c-format
-msgid "Backspace record failed! ERR=%s\n"
+msgid "Error creating JobMedia record: %s\n"
msgstr ""
-#: src/stored/btape.c:713 src/stored/btape.c:719
+#: src/stored/askdir.c:424
#, c-format
-msgid "Read block failed! ERR=%s\n"
-msgstr ""
-
-#: src/stored/btape.c:724
-msgid "Bad data in record. Test failed!\n"
+msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n"
msgstr ""
-#: src/stored/btape.c:728
+#: src/stored/askdir.c:452
+#, c-format
msgid ""
-"\n"
-"Block re-read correct. Test succeeded!\n"
+"Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
+"Use \"mount\" command to release Job.\n"
msgstr ""
-#: src/stored/btape.c:729
+#: src/stored/askdir.c:462
+#, c-format
msgid ""
-"=== End Write, backup, and re-read test ===\n"
-"\n"
+"Job %s waiting. Cannot find any appendable volumes.\n"
+"Please use the \"label\" command to create a new Volume for:\n"
+" Storage: %s\n"
+" Media type: %s\n"
+" Pool: %s\n"
msgstr ""
-#: src/stored/btape.c:736
-msgid ""
-"This is not terribly serious since Bacula only uses\n"
-"this function to verify the last block written to the\n"
-"tape. Bacula will skip the last block verification\n"
-"if you add:\n"
-"\n"
-"Backward Space Record = No\n"
-"\n"
-"to your Storage daemon's Device resource definition.\n"
+#: src/stored/askdir.c:486 src/stored/askdir.c:588
+#, c-format
+msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n"
msgstr ""
-#: src/stored/btape.c:760
-msgid ""
-"\n"
-"=== Write, rewind, and re-read test ===\n"
-"\n"
-"I'm going to write 1000 records and an EOF\n"
-"then write 1000 records and an EOF, then rewind,\n"
-"and re-read the data to verify that it is correct.\n"
-"\n"
-"This is an *essential* feature ...\n"
-"\n"
+#: src/stored/askdir.c:496 src/stored/askdir.c:503
+#, c-format
+msgid "pthread error in mount_next_volume stat=%d ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:788 src/stored/btape.c:804 src/stored/btape.c:900
-#: src/stored/btape.c:916
+#: src/stored/askdir.c:514
#, c-format
-msgid "Wrote 1000 blocks of %d bytes.\n"
+msgid ""
+"Someone woke me up, but I cannot find any appendable\n"
+"volumes for Job=%s.\n"
msgstr ""
-#: src/stored/btape.c:820 src/stored/btape.c:974
-msgid "Got EOF on tape.\n"
+#: src/stored/askdir.c:558
+msgid "Cannot request another volume: no volume name given.\n"
msgstr ""
-#: src/stored/btape.c:825
+#: src/stored/askdir.c:564
#, c-format
-msgid "Read block %d failed! ERR=%s\n"
+msgid "Job %s canceled while waiting for mount on Storage Device %s.\n"
msgstr ""
-#: src/stored/btape.c:831
+#: src/stored/askdir.c:570
#, c-format
-msgid "Read record failed. Block %d! ERR=%s\n"
+msgid "Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
msgstr ""
-#: src/stored/btape.c:837 src/stored/btape.c:1004
+#: src/stored/askdir.c:598
#, c-format
-msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n"
+msgid "pthread error in mount_volume stat=%d ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:844
-msgid "1000 blocks re-read correctly.\n"
+#: src/stored/askdir.c:605
+#, c-format
+msgid "pthread error in mount_next_volume stat=%d: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:847 src/stored/btape.c:1011
-msgid ""
-"=== Test Succeeded. End Write, rewind, and re-read test ===\n"
-"\n"
+#: src/stored/authenticate.c:53
+#, c-format
+msgid "I only authenticate Directors, not %d\n"
msgstr ""
-#: src/stored/btape.c:872
+#: src/stored/authenticate.c:120
msgid ""
-"\n"
-"=== Write, rewind, and position test ===\n"
-"\n"
-"I'm going to write 1000 records and an EOF\n"
-"then write 1000 records and an EOF, then rewind,\n"
-"and position to a few blocks and verify that it is correct.\n"
-"\n"
-"This is an *essential* feature ...\n"
-"\n"
+"Incorrect password given by Director.\n"
+"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
+"help.\n"
msgstr ""
-#: src/stored/btape.c:980
+#: src/stored/authenticate.c:178
#, c-format
-msgid ""
-"Read block %d failed! file=%d blk=%d. ERR=%s\n"
-"\n"
+msgid "Unable to authenticate Director at %s.\n"
msgstr ""
-#: src/stored/btape.c:982
-msgid ""
+#: src/stored/authenticate.c:223 src/stored/authenticate.c:259
+#, c-format
+msgid ""
+"Incorrect authorization key from File daemon at %s rejected.\n"
+"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
+"help.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:87
+#, c-format
+msgid "3303 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:96
+#, c-format
+msgid "3992 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:109
+#, c-format
+msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:116
+#, c-format
+msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:122
+#, c-format
+msgid "3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:167
+#, c-format
+msgid "3301 Issuing autochanger \"loaded drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:176
+#, c-format
+msgid "3302 Autochanger \"loaded drive %d\", result is Slot %d.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:180
+#, c-format
+msgid "3302 Autochanger \"loaded drive %d\", result: nothing loaded.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:187
+#, c-format
+msgid "3991 Bad autochanger \"loaded drive %d\" command: ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:235
+#, c-format
+msgid "3993 Device %s not an autochanger device.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:253
+#, c-format
+msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:265
+#, c-format
+msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:277
+#, c-format
+msgid "3306 Issuing autochanger \"%s\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:282
+msgid "3996 Open bpipe failed.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:306
+#, c-format
+msgid "Autochanger error: ERR=%s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:58
+#, c-format
+msgid ""
+"Copyright (C) 2002-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bcopy [-d debug_level] <input-archive> <output-archive>\n"
+" -b bootstrap specify a bootstrap file\n"
+" -c <file> specify configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -i specify input Volume names (separated by |)\n"
+" -o specify output Volume names (separated by |)\n"
+" -p proceed inspite of errors\n"
+" -v verbose\n"
+" -w <dir> specify working directory (default /tmp)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bcopy.c:137 src/stored/bextract.c:177 src/stored/bscan.c:221
+msgid "Wrong number of arguments: \n"
+msgstr ""
+
+#: src/stored/bcopy.c:172 src/stored/btape.c:334 src/stored/device.c:273
+#, c-format
+msgid "dev open failed: %s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:185
+msgid "Write of last block failed.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:188
+#, c-format
+msgid "%u Jobs copied. %u records copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:205 src/stored/bscan.c:389
+#, c-format
+msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n"
+msgstr ""
+
+#: src/stored/bcopy.c:220
+msgid "Volume is prelabeled. This volume cannot be copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:223
+msgid "Volume label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:235 src/stored/bcopy.c:242 src/stored/bcopy.c:265
+#: src/stored/btape.c:2335
+#, c-format
+msgid "Cannot fixup device error. %s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:247
+msgid "EOM label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:250
+msgid "EOT label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:290 src/stored/bextract.c:473 src/stored/bls.c:444
+#: src/stored/bscan.c:1227 src/stored/btape.c:2683
+#, c-format
+msgid "Mount Volume \"%s\" on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/bextract.c:70
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bextract <options> <bacula-archive-device-name> <directory-to-store-"
+"files>\n"
+" -b <file> specify a bootstrap file\n"
+" -c <file> specify a configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -e <file> exclude list\n"
+" -i <file> include list\n"
+" -p proceed inspite of I/O errors\n"
+" -v verbose\n"
+" -V <volumes> specify Volume names (separated by |)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bextract.c:127 src/stored/bls.c:129
+#, c-format
+msgid "Could not open exclude file: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:142 src/stored/bls.c:143
+#, c-format
+msgid "Could not open include file: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:198
+#, c-format
+msgid "%d Program Name and/or Program Data Stream records ignored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:202
+#, c-format
+msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:226
+#, c-format
+msgid "Cannot stat %s. It must exist. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:230
+#, c-format
+msgid "%s must be a directory.\n"
+msgstr ""
+
+#: src/stored/bextract.c:251
+#, c-format
+msgid "%u files restored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:278 src/stored/bextract.c:444
+msgid "Logic error output file should be open but is not.\n"
+msgstr ""
+
+#: src/stored/bextract.c:285 src/stored/bls.c:365 src/stored/bscan.c:645
+msgid "Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bextract.c:347
+#, c-format
+msgid "Seek error on %s: %s\n"
+msgstr ""
+
+#: src/stored/bextract.c:400
+#, c-format
+msgid "Uncompression error. ERR=%d\n"
+msgstr ""
+
+#: src/stored/bextract.c:408
+msgid "===Write error===\n"
+msgstr ""
+
+#: src/stored/bextract.c:435
+msgid "Got Program Name or Data Stream. Ignored.\n"
+msgstr ""
+
+#: src/stored/block.c:78
+#, c-format
+msgid ""
+"Dump block %s %x: size=%d BlkNum=%d\n"
+" Hdrcksum=%x cksum=%x\n"
+msgstr ""
+
+#: src/stored/block.c:91
+#, c-format
+msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n"
+msgstr ""
+
+#: src/stored/block.c:147
+#, c-format
+msgid "%d block read errors not printed.\n"
+msgstr ""
+
+#: src/stored/block.c:235 src/stored/block.c:251 src/stored/block.c:261
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer "
+"discarded.\n"
+msgstr ""
+
+#: src/stored/block.c:275
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Block length %u is insane (too large), probably "
+"due to a bad archive.\n"
+msgstr ""
+
+#: src/stored/block.c:301
+#, c-format
+msgid ""
+"Volume data error at %u:%u!\n"
+"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n"
+msgstr ""
+
+#: src/stored/block.c:409
+msgid "Cannot write block. Device at EOM.\n"
+msgstr ""
+
+#: src/stored/block.c:414
+msgid "Attempt to write on read-only Volume.\n"
+msgstr ""
+
+#: src/stored/block.c:466
+#, c-format
+msgid "User defined maximum volume capacity %s exceeded on device %s.\n"
+msgstr ""
+
+#: src/stored/block.c:481
+#, c-format
+msgid "Unable to write EOF. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:507 src/stored/block.c:518
+msgid "Write block header zeroed.\n"
+msgstr ""
+
+#: src/stored/block.c:536
+#, c-format
+msgid "Write error at %u:%u on device %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/block.c:543
+#, c-format
+msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n"
+msgstr ""
+
+#: src/stored/block.c:618 src/stored/block.c:624
+#, c-format
+msgid "Backspace file at EOT failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:631
+#, c-format
+msgid "Backspace record at EOT failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:648
+#, c-format
+msgid "Re-read last block at EOT failed. ERR=%s"
+msgstr ""
+
+#: src/stored/block.c:652
+msgid "Re-read of last block succeeded.\n"
+msgstr ""
+
+#: src/stored/block.c:655
+#, c-format
+msgid "Re-read of last block failed. Last block=%u Current block=%u.\n"
+msgstr ""
+
+#: src/stored/block.c:684
+#, c-format
+msgid ""
+"Error writing final EOF to tape. This tape may not be readable.\n"
+"%s"
+msgstr ""
+
+#: src/stored/block.c:790 src/stored/dvd.c:622
+#, c-format
+msgid ""
+"Error while writing, current part number is less than the total number of "
+"parts (%d/%d, device=%s)\n"
+msgstr ""
+
+#: src/stored/block.c:798 src/stored/block.c:908
+#, c-format
+msgid "Unable to open device next part %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:816
+#, c-format
+msgid ""
+"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
+"free_space_errno=%d, errmsg=%s).\n"
+msgstr ""
+
+#: src/stored/block.c:829
+#, c-format
+msgid ""
+"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
+"free_space_errno=%d).\n"
+msgstr ""
+
+#: src/stored/block.c:883
+#, c-format
+msgid "Block buffer size looping problem on device %s\n"
+msgstr ""
+
+#: src/stored/block.c:934
+#, c-format
+msgid "Read error at file:blk %u:%u on device %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/block.c:947
+#, c-format
+msgid "Read zero bytes at %u:%u on device %s.\n"
+msgstr ""
+
+#: src/stored/block.c:960
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Very short block of %d bytes on device %s "
+"discarded.\n"
+msgstr ""
+
+#: src/stored/block.c:985
+#, c-format
+msgid "Block length %u is greater than buffer %u. Attempting recovery.\n"
+msgstr ""
+
+#: src/stored/block.c:1004
+#, c-format
+msgid "Setting block buffer size to %u bytes.\n"
+msgstr ""
+
+#: src/stored/block.c:1019
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n"
+msgstr ""
+
+#: src/stored/bls.c:69
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bls [options] <device-name>\n"
+" -b <file> specify a bootstrap file\n"
+" -c <file> specify a config file\n"
+" -d <level> specify debug level\n"
+" -e <file> exclude list\n"
+" -i <file> include list\n"
+" -j list jobs\n"
+" -k list blocks\n"
+" (no j or k option) list saved files\n"
+" -L dump label\n"
+" -p proceed inspite of errors\n"
+" -v be verbose\n"
+" -V specify Volume names (separated by |)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bls.c:190
+msgid "No archive name specified\n"
+msgstr ""
+
+#: src/stored/bls.c:226
+#, c-format
+msgid ""
+"\n"
+"Warning, this Volume is a continuation of Volume %s\n"
+msgstr ""
+
+#: src/stored/bls.c:268
+#, c-format
+msgid "Got EOM at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/bls.c:279
+#, c-format
+msgid "Mounted Volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/bls.c:281
+#, c-format
+msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/bls.c:305
+#, c-format
+msgid ""
+"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%"
+"s rlen=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:314
+#, c-format
+msgid "Block: %d size=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:381
+#, c-format
+msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:398 src/stored/read_record.c:321
+msgid "Fresh Volume Label"
+msgstr ""
+
+#: src/stored/bls.c:401 src/stored/read_record.c:324
+msgid "Volume Label"
+msgstr ""
+
+#: src/stored/bls.c:405 src/stored/label.c:959
+msgid "Begin Job Session"
+msgstr ""
+
+#: src/stored/bls.c:409 src/stored/label.c:962
+msgid "End Job Session"
+msgstr ""
+
+#: src/stored/bls.c:412
+msgid "End of Medium"
+msgstr ""
+
+#: src/stored/bls.c:415 src/stored/label.c:971
+msgid "Unknown"
+msgstr ""
+
+#: src/stored/bls.c:421 src/stored/read_record.c:342
+#, c-format
+msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:109
+#, c-format
+msgid ""
+"Copyright (C) 2001-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bscan [ options ] <bacula-archive>\n"
+" -b bootstrap specify a bootstrap file\n"
+" -c <file> specify configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -m update media info in database\n"
+" -n <name> specify the database name (default bacula)\n"
+" -u <user> specify database user name (default bacula)\n"
+" -P <password specify database password (default none)\n"
+" -h <host> specify database host (default NULL)\n"
+" -p proceed inspite of I/O errors\n"
+" -r list records\n"
+" -s synchronize or store in database\n"
+" -S show scan progress periodically\n"
+" -v verbose\n"
+" -V <Volumes> specify Volume names (separated by |)\n"
+" -w <dir> specify working directory (default from conf file)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bscan.c:234 src/stored/stored.c:266
+#, c-format
+msgid "No Storage resource defined in %s. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:242 src/stored/stored.c:297
+#, c-format
+msgid "No Working Directory defined in %s. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:250
+#, c-format
+msgid "Working Directory: %s not found. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:254
+#, c-format
+msgid "Working Directory: %s is not a directory. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:268 src/stored/bscan.c:340
+#, c-format
+msgid "First Volume Size = %sn"
+msgstr ""
+
+#: src/stored/bscan.c:274
+msgid "Could not init Bacula database\n"
+msgstr ""
+
+#: src/stored/bscan.c:281
+#, c-format
+msgid "Using Database: %s, User: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:315
+#, c-format
+msgid "Create JobMedia for Job %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:325
+#, c-format
+msgid "Could not create JobMedia record for Volume=%s Job=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:381
+#, c-format
+msgid "done: %d%%\n"
+msgstr ""
+
+#: src/stored/bscan.c:405
+msgid "Volume is prelabeled. This tape cannot be scanned.\n"
+msgstr ""
+
+#: src/stored/bscan.c:417
+#, c-format
+msgid "Pool record for %s found in DB.\n"
+msgstr ""
+
+#: src/stored/bscan.c:421
+#, c-format
+msgid "VOL_LABEL: Pool record not found for Pool: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:427
+#, c-format
+msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:431
+#, c-format
+msgid "Pool type \"%s\" is OK.\n"
+msgstr ""
+
+#: src/stored/bscan.c:441
+#, c-format
+msgid "Media record for %s found in DB.\n"
+msgstr ""
+
+#: src/stored/bscan.c:448
+#, c-format
+msgid "VOL_LABEL: Media record not found for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:455
+#, c-format
+msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:459
+#, c-format
+msgid "Media type \"%s\" is OK.\n"
+msgstr ""
+
+#: src/stored/bscan.c:468
+#, c-format
+msgid "VOL_LABEL: OK for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:475
+#, c-format
+msgid "%d \"errors\" ignored before first Start of Session record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:486
+#, c-format
+msgid "SOS_LABEL: Found Job record for JobId: %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:491
+#, c-format
+msgid "SOS_LABEL: Job record not found for JobId: %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:531
+#, c-format
+msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:537
+#, c-format
+msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:543
+#, c-format
+msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:561 src/stored/bscan.c:1007
+#, c-format
+msgid "Could not find SessId=%d SessTime=%d for EOS record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:604
+#, c-format
+msgid "Could not update job record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:615
+#, c-format
+msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:627
+#, c-format
+msgid "Could not find Job for SessId=%d SessTime=%d record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:663
+#, c-format
+msgid "%s file records. At file:blk=%s:%s bytes=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:706
+#, c-format
+msgid "Got MD5 record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:715
+#, c-format
+msgid "Got SHA1 record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:723
+#, c-format
+msgid "Got Prog Names Stream: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:729
+msgid "Got Prog Data Stream record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:733
+#, c-format
+msgid "Unknown stream type!!! stream=%d data=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:793
+#, c-format
+msgid "Could not create File Attributes record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:799
+#, c-format
+msgid "Created File record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:836
+#, c-format
+msgid "Could not create media record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:840 src/stored/bscan.c:861
+#, c-format
+msgid "Could not update media record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:844
+#, c-format
+msgid "Created Media record for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:865
+#, c-format
+msgid "Updated Media record at end of Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:882
+#, c-format
+msgid "Could not create pool record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:886
+#, c-format
+msgid "Created Pool record for Pool: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:906
+#, c-format
+msgid "Created Client record for Client: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:923
+#, c-format
+msgid "Fileset \"%s\" already exists.\n"
+msgstr ""
+
+#: src/stored/bscan.c:927
+#, c-format
+msgid "Could not create FileSet record \"%s\". ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:932
+#, c-format
+msgid "Created FileSet record \"%s\"\n"
+msgstr ""
+
+#: src/stored/bscan.c:979
+#, c-format
+msgid "Could not create JobId record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:985
+#, c-format
+msgid "Could not update job start record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:988
+#, c-format
+msgid "Created new JobId=%u record for original JobId=%u\n"
+msgstr ""
+
+#: src/stored/bscan.c:1038
+#, c-format
+msgid "Could not update JobId=%u record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1043
+#, c-format
+msgid "Updated Job termination record for JobId=%u TermStat=%c\n"
+msgstr ""
+
+#: src/stored/bscan.c:1065
+#, c-format
+msgid "Job Termination code: %d"
+msgstr ""
+
+#: src/stored/bscan.c:1070
+#, c-format
+msgid ""
+"%s\n"
+"JobId: %d\n"
+"Job: %s\n"
+"FileSet: %s\n"
+"Backup Level: %s\n"
+"Client: %s\n"
+"Start time: %s\n"
+"End time: %s\n"
+"Files Written: %s\n"
+"Bytes Written: %s\n"
+"Volume Session Id: %d\n"
+"Volume Session Time: %d\n"
+"Last Volume Bytes: %s\n"
+"Termination: %s\n"
+"\n"
+msgstr ""
+
+#: src/stored/bscan.c:1134
+#, c-format
+msgid "Could not create JobMedia record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1138
+#, c-format
+msgid "Created JobMedia record JobId %d, MediaId %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:1154
+#, c-format
+msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:1168
+#, c-format
+msgid "Could not add MD5/SHA1 to File record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1173
+msgid "Updated MD5/SHA1 record\n"
+msgstr ""
+
+#: src/stored/btape.c:157 src/stored/stored.c:107
+#, c-format
+msgid "Tape block size (%d) not multiple of system size (%d)\n"
+msgstr ""
+
+#: src/stored/btape.c:161 src/stored/stored.c:111
+#, c-format
+msgid "Tape block size (%d) is not a power of 2\n"
+msgstr ""
+
+#: src/stored/btape.c:164
+#, c-format
+msgid ""
+"\n"
+"\n"
+"!!!! Warning large disk addressing disabled. off_t=%d should be 8 or "
+"more !!!!!\n"
+"\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:171
+#, c-format
+msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n"
+msgstr ""
+
+#: src/stored/btape.c:180
+msgid "64 bit printf/scanf problem. i=%d x64=%"
+msgstr ""
+
+#: src/stored/btape.c:180
+msgid " y64=%"
+msgstr ""
+
+#: src/stored/btape.c:184
+#, c-format
+msgid "Tape block granularity is %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:251
+msgid "No archive name specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:255
+msgid "Improper number of arguments specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:340
+#, c-format
+msgid "open device %s: OK\n"
+msgstr ""
+
+#: src/stored/btape.c:361
+msgid "Enter Volume Name: "
+msgstr ""
+
+#: src/stored/btape.c:368
+#, c-format
+msgid "Device open failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:373
+#, c-format
+msgid "Wrote Volume label for volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/btape.c:387
+msgid "Volume has no label.\n"
+msgstr ""
+
+#: src/stored/btape.c:390
+msgid "Volume label read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:393
+#, c-format
+msgid "I/O error on device: ERR=%s"
+msgstr ""
+
+#: src/stored/btape.c:396
+msgid "Volume name error\n"
+msgstr ""
+
+#: src/stored/btape.c:399
+#, c-format
+msgid "Error creating label. ERR=%s"
+msgstr ""
+
+#: src/stored/btape.c:402
+msgid "Volume version error.\n"
+msgstr ""
+
+#: src/stored/btape.c:405
+msgid "Bad Volume label type.\n"
+msgstr ""
+
+#: src/stored/btape.c:408
+msgid "Unknown error.\n"
+msgstr ""
+
+#: src/stored/btape.c:426
+#, c-format
+msgid "Bad status from load. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:428
+#, c-format
+msgid "Loaded %s\n"
+msgstr ""
+
+#: src/stored/btape.c:437 src/stored/btape.c:777 src/stored/btape.c:819
+#: src/stored/btape.c:889 src/stored/btape.c:931 src/stored/btape.c:1200
+#, c-format
+msgid "Bad status from rewind. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:440 src/stored/btape.c:1208
+#, c-format
+msgid "Rewound %s\n"
+msgstr ""
+
+#: src/stored/btape.c:467 src/stored/btape.c:1212
+#, c-format
+msgid "Bad status from weof %d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:471
+#, c-format
+msgid "Wrote 1 EOF to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:474
+#, c-format
+msgid "Wrote %d EOFs to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:492
+msgid "Moved to end of medium.\n"
+msgstr ""
+
+#: src/stored/btape.c:519
+#, c-format
+msgid "Bad status from bsf. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:521
+#, c-format
+msgid "Backspaced %d file%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:538
+#, c-format
+msgid "Bad status from bsr. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:540
+#, c-format
+msgid "Backspaced %d record%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:550 src/stored/status.c:220
+#, c-format
+msgid "Configured device capabilities:\n"
+msgstr ""
+
+#: src/stored/btape.c:568
+#, c-format
+msgid "Device status:\n"
+msgstr ""
+
+#: src/stored/btape.c:582 src/stored/status.c:252
+#, c-format
+msgid "Device parameters:\n"
+msgstr ""
+
+#: src/stored/btape.c:587
+#, c-format
+msgid "Status:\n"
+msgstr ""
+
+#: src/stored/btape.c:602
+msgid ""
+"Test writting larger and larger records.\n"
+"This is a torture test for records.\n"
+"I am going to write\n"
+"larger and larger records. It will stop when the record size\n"
+"plus the header exceeds the block size (by default about 64K)\n"
+msgstr ""
+
+#: src/stored/btape.c:610 src/stored/btape.c:1814
+msgid "Command aborted.\n"
+msgstr ""
+
+#: src/stored/btape.c:626
+#, c-format
+msgid "Block %d i=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:652
+msgid "Skipping read backwards test because BSR turned off.\n"
+msgstr ""
+
+#: src/stored/btape.c:656
+msgid ""
+"\n"
+"=== Write, backup, and re-read test ===\n"
+"\n"
+"I'm going to write three records and an EOF\n"
+"then backup over the EOF and re-read the last record.\n"
+"Bacula does this after writing the last block on the\n"
+"tape to verify that the block was written correctly.\n"
+"\n"
+"This is not an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:669 src/stored/btape.c:680 src/stored/btape.c:691
+#: src/stored/btape.c:789 src/stored/btape.c:805 src/stored/btape.c:901
+#: src/stored/btape.c:917 src/stored/btape.c:1526 src/stored/btape.c:2400
+msgid "Error writing record to block.\n"
+msgstr ""
+
+#: src/stored/btape.c:673 src/stored/btape.c:684 src/stored/btape.c:695
+#: src/stored/btape.c:793 src/stored/btape.c:809 src/stored/btape.c:905
+#: src/stored/btape.c:921 src/stored/btape.c:1530 src/stored/btape.c:2404
+msgid "Error writing block to device.\n"
+msgstr ""
+
+#: src/stored/btape.c:676
+#, c-format
+msgid "Wrote first record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:687
+#, c-format
+msgid "Wrote second record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:698
+#, c-format
+msgid "Wrote third record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:705 src/stored/btape.c:710
+#, c-format
+msgid "Backspace file failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:714
+msgid "Backspaced over EOF OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:716
+#, c-format
+msgid "Backspace record failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:719
+msgid "Backspace record OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:722 src/stored/btape.c:728
+#, c-format
+msgid "Read block failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:733
+msgid "Bad data in record. Test failed!\n"
+msgstr ""
+
+#: src/stored/btape.c:737
+msgid ""
+"\n"
+"Block re-read correct. Test succeeded!\n"
+msgstr ""
+
+#: src/stored/btape.c:738
+msgid ""
+"=== End Write, backup, and re-read test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:745
+msgid ""
+"This is not terribly serious since Bacula only uses\n"
+"this function to verify the last block written to the\n"
+"tape. Bacula will skip the last block verification\n"
+"if you add:\n"
+"\n"
+"Backward Space Record = No\n"
+"\n"
+"to your Storage daemon's Device resource definition.\n"
+msgstr ""
+
+#: src/stored/btape.c:769
+msgid ""
+"\n"
+"=== Write, rewind, and re-read test ===\n"
+"\n"
+"I'm going to write 1000 records and an EOF\n"
+"then write 1000 records and an EOF, then rewind,\n"
+"and re-read the data to verify that it is correct.\n"
+"\n"
+"This is an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:797 src/stored/btape.c:813 src/stored/btape.c:909
+#: src/stored/btape.c:925
+#, c-format
+msgid "Wrote 1000 blocks of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:822 src/stored/btape.c:934
+msgid "Rewind OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:829 src/stored/btape.c:983
+msgid "Got EOF on tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:834
+#, c-format
+msgid "Read block %d failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:840
+#, c-format
+msgid "Read record failed. Block %d! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:846 src/stored/btape.c:1013
+#, c-format
+msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n"
+msgstr ""
+
+#: src/stored/btape.c:853
+msgid "1000 blocks re-read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:856 src/stored/btape.c:1020
+msgid ""
+"=== Test Succeeded. End Write, rewind, and re-read test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:881
+msgid ""
+"\n"
+"=== Write, rewind, and position test ===\n"
+"\n"
+"I'm going to write 1000 records and an EOF\n"
+"then write 1000 records and an EOF, then rewind,\n"
+"and position to a few blocks and verify that it is correct.\n"
+"\n"
+"This is an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:974
+#, c-format
+msgid "Reposition to file:block %d:%d\n"
+msgstr ""
+
+#: src/stored/btape.c:976
+msgid "Reposition error.\n"
+msgstr ""
+
+#: src/stored/btape.c:989
+#, c-format
+msgid ""
+"Read block %d failed! file=%d blk=%d. ERR=%s\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:991
+msgid ""
"This may be because the tape drive block size is not\n"
" set to variable blocking as normally used by Bacula.\n"
" Please see the Tape Testing chapter in the manual and \n"
" in your Device resource.\n"
msgstr ""
-#: src/stored/btape.c:998
+#: src/stored/btape.c:1007
+#, c-format
+msgid "Read record failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1018
+#, c-format
+msgid "Block %d re-read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:1039
+msgid ""
+"\n"
+"\n"
+"=== Append files test ===\n"
+"\n"
+"This test is essential to Bacula.\n"
+"\n"
+"I'm going to write one record in file 0,\n"
+" two records in file 1,\n"
+" and three records in file 2\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1063
+msgid "Now moving to end of medium.\n"
+msgstr ""
+
+#: src/stored/btape.c:1065 src/stored/btape.c:1295
+#, c-format
+msgid "We should be in file 3. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1066 src/stored/btape.c:1084 src/stored/btape.c:1284
+#: src/stored/btape.c:1296 src/stored/btape.c:1309 src/stored/btape.c:1326
+msgid "This is correct!"
+msgstr ""
+
+#: src/stored/btape.c:1066 src/stored/btape.c:1084 src/stored/btape.c:1284
+#: src/stored/btape.c:1296 src/stored/btape.c:1309 src/stored/btape.c:1326
+msgid "This is NOT correct!!!!"
+msgstr ""
+
+#: src/stored/btape.c:1072
+msgid ""
+"\n"
+"Now the important part, I am going to attempt to append to the tape.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1079
+msgid ""
+"Done appending, there should be no I/O errors\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1080
+msgid "Doing Bacula scan of blocks:\n"
+msgstr ""
+
+#: src/stored/btape.c:1082
+msgid "End scanning the tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:1083 src/stored/btape.c:1308
+#, c-format
+msgid "We should be in file 4. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1108
+msgid ""
+"\n"
+"Autochanger enabled, but no name or no command device specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:1112
+msgid ""
+"\n"
+"Ah, I see you have an autochanger configured.\n"
+"To test the autochanger you must have a blank tape\n"
+" that I can write on in Slot 1.\n"
+msgstr ""
+
+#: src/stored/btape.c:1115
+msgid ""
+"\n"
+"Do you wish to continue with the Autochanger test? (y/n): "
+msgstr ""
+
+#: src/stored/btape.c:1122
+msgid ""
+"\n"
+"\n"
+"=== Autochanger test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1131
+msgid "3301 Issuing autochanger \"loaded\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1140
+#, c-format
+msgid "3991 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1141
+#, c-format
+msgid "3991 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1145
+#, c-format
+msgid "Slot %d loaded. I am going to unload it.\n"
+msgstr ""
+
+#: src/stored/btape.c:1147
+msgid "Nothing loaded in the drive. OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:1155
+#, c-format
+msgid "3302 Issuing autochanger \"unload %d %d\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1160
+#, c-format
+msgid "unload status=%s %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1160
+msgid "Bad"
+msgstr ""
+
+#: src/stored/btape.c:1163
+#, c-format
+msgid "3992 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1164
+#, c-format
+msgid "3992 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1174
+#, c-format
+msgid "3303 Issuing autochanger \"load %d %d\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1182
+#, c-format
+msgid "3303 Autochanger \"load %d %d\" status is OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:1186
+#, c-format
+msgid "3993 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1187
+#, c-format
+msgid "3993 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1202
+msgid ""
+"\n"
+"The test failed, probably because you need to put\n"
+"a longer sleep time in the mtx-script in the load) case.\n"
+"Adding a 30 second sleep and trying again ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1215
+#, c-format
+msgid "Wrote EOF to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1219
+#, c-format
+msgid ""
+"\n"
+"The test worked this time. Please add:\n"
+"\n"
+" sleep %d\n"
+"\n"
+"to your mtx-changer script in the load) case.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1224
+msgid ""
+"\n"
+"The test autochanger worked!!\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1235
+msgid "You must correct this error or the Autochanger will not work.\n"
+msgstr ""
+
+#: src/stored/btape.c:1253
+msgid ""
+"\n"
+"\n"
+"=== Forward space files test ===\n"
+"\n"
+"This test is essential to Bacula.\n"
+"\n"
+"I'm going to write five files then test forward spacing\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1278
+msgid "Now forward spacing 1 file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1280 src/stored/btape.c:1292 src/stored/btape.c:1305
+#: src/stored/btape.c:1323 src/stored/btape.c:1492
+#, c-format
+msgid "Bad status from fsr. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1283
+#, c-format
+msgid "We should be in file 1. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1290
+msgid "Now forward spacing 2 files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1303
+msgid "Now forward spacing 4 files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1315
+msgid ""
+"The test worked this time. Please add:\n"
+"\n"
+" Fast Forward Space File = no\n"
+"\n"
+"to your Device resource for this drive.\n"
+msgstr ""
+
+#: src/stored/btape.c:1321
+msgid "Now forward spacing 1 more file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1325
+#, c-format
+msgid "We should be in file 5. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1330
+msgid ""
+"\n"
+"=== End Forward space files test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1334
+msgid ""
+"\n"
+"The forward space file test failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1336
+msgid ""
+"You have Fast Forward Space File enabled.\n"
+"I am turning it off then retrying the test.\n"
+msgstr ""
+
+#: src/stored/btape.c:1342
+msgid ""
+"You must correct this error or Bacula will not work.\n"
+"Some systems, e.g. OpenBSD, require you to set\n"
+" Use MTIOCGET= no\n"
+"in your device resource. Use with caution.\n"
+msgstr ""
+
+#: src/stored/btape.c:1374
+msgid ""
+"\n"
+"Append test failed. Attempting again.\n"
+"Setting \"Hardware End of Medium = no\n"
+" and \"Fast Forward Space File = no\n"
+"and retrying append test.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1382
+msgid ""
+"\n"
+"\n"
+"It looks like the test worked this time, please add:\n"
+"\n"
+" Hardware End of Medium = No\n"
+"\n"
+" Fast Forward Space File = No\n"
+"to your Device resource in the Storage conf file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1389
+msgid ""
+"\n"
+"\n"
+"That appears *NOT* to have corrected the problem.\n"
+msgstr ""
+
+#: src/stored/btape.c:1394
+msgid ""
+"\n"
+"\n"
+"It looks like the append failed. Attempting again.\n"
+"Setting \"BSF at EOM = yes\" and retrying append test.\n"
+msgstr ""
+
+#: src/stored/btape.c:1399
+msgid ""
+"\n"
+"\n"
+"It looks like the test worked this time, please add:\n"
+"\n"
+" Hardware End of Medium = No\n"
+" Fast Forward Space File = No\n"
+" BSF at EOM = yes\n"
+"\n"
+"to your Device resource in the Storage conf file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1410
+msgid ""
+"\n"
+"Append test failed.\n"
+"\n"
+"\n"
+"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
+"Unable to correct the problem. You MUST fix this\n"
+"problem before Bacula can use your tape drive correctly\n"
+"\n"
+"Perhaps running Bacula in fixed block mode will work.\n"
+"Do so by setting:\n"
+"\n"
+"Minimum Block Size = nnn\n"
+"Maximum Block Size = nnn\n"
+"\n"
+"in your Storage daemon's Device definition.\n"
+"nnn must match your tape driver's block size, which\n"
+"can be determined by reading your tape manufacturers\n"
+"information, and the information on your kernel dirver.\n"
+"Fixed block sizes, however, are not normally an ideal solution.\n"
+"\n"
+"Some systems, e.g. OpenBSD, require you to set\n"
+" Use MTIOCGET= no\n"
+"in your device resource. Use with caution.\n"
+msgstr ""
+
+#: src/stored/btape.c:1431
+msgid ""
+"\n"
+"The above Bacula scan should have output identical to what follows.\n"
+"Please double check it ...\n"
+"=== Sample correct output ===\n"
+"1 block of 64448 bytes in file 1\n"
+"End of File mark.\n"
+"2 blocks of 64448 bytes in file 2\n"
+"End of File mark.\n"
+"3 blocks of 64448 bytes in file 3\n"
+"End of File mark.\n"
+"1 block of 64448 bytes in file 4\n"
+"End of File mark.\n"
+"Total files=4, blocks=7, bytes = 451,136\n"
+"=== End sample correct output ===\n"
+"\n"
+"If the above scan output is not identical to the\n"
+"sample output, you MUST correct the problem\n"
+"or Bacula will not be able to write multiple Jobs to \n"
+"the tape.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1470
+#, c-format
+msgid "Bad status from fsf. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1474
+msgid "Forward spaced 1 file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1477
+#, c-format
+msgid "Forward spaced %d files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1496
+msgid "Forward spaced 1 record.\n"
+msgstr ""
+
+#: src/stored/btape.c:1499
+#, c-format
+msgid "Forward spaced %d records.\n"
+msgstr ""
+
+#: src/stored/btape.c:1533
+#, c-format
+msgid "Wrote one record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:1535
+msgid "Wrote block to device.\n"
+msgstr ""
+
+#: src/stored/btape.c:1550
+msgid "Enter length to read: "
+msgstr ""
+
+#: src/stored/btape.c:1555
+msgid "Bad length entered, using default of 1024 bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:1564
+#, c-format
+msgid "Read of %d bytes gives stat=%d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1587 src/stored/btape.c:1636
+#, c-format
+msgid "End of tape\n"
+msgstr ""
+
+#: src/stored/btape.c:1592
+#, c-format
+msgid "Starting scan at file %u\n"
+msgstr ""
+
+#: src/stored/btape.c:1597 src/stored/dev.c:1234
+#, c-format
+msgid "read error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:1599
+#, c-format
+msgid "Bad status from read %d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1602 src/stored/btape.c:1616 src/stored/btape.c:1679
+#: src/stored/btape.c:1691 src/stored/btape.c:1704 src/stored/btape.c:1720
+#, c-format
+msgid "1 block of %d bytes in file %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1605 src/stored/btape.c:1619 src/stored/btape.c:1682
+#: src/stored/btape.c:1694 src/stored/btape.c:1707 src/stored/btape.c:1723
+#, c-format
+msgid "%d blocks of %d bytes in file %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1627 src/stored/btape.c:1698
+#, c-format
+msgid "End of File mark.\n"
+msgstr ""
+
+#: src/stored/btape.c:1648 src/stored/btape.c:1751
+#, c-format
+msgid "Total files=%d, blocks=%d, bytes = %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1711
+#, c-format
+msgid "Short block read.\n"
+msgstr ""
+
+#: src/stored/btape.c:1714
+#, c-format
+msgid "Error reading block. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1738
+#, c-format
+msgid ""
+"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%"
+"s rlen=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:1760
+#, c-format
+msgid "Device status: %u. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1788
+msgid ""
+"\n"
+"This command simulates Bacula writing to a tape.\n"
+"It requires either one or two blank tapes, which it\n"
+"will label and write.\n"
+"\n"
+"If you have an autochanger configured, it will use\n"
+"the tapes that are in slots 1 and 2, otherwise, you will\n"
+"be prompted to insert the tapes when necessary.\n"
+"\n"
+"It will print a status approximately\n"
+"every 322 MB, and write an EOF every 3.2 GB. If you have\n"
+"selected the simple test option, after writing the first tape\n"
+"it will rewind it and re-read the last block written.\n"
+"\n"
+"If you have selected the multiple tape test, when the first tape\n"
+"fills, it will ask for a second, and after writing a few more \n"
+"blocks, it will stop. Then it will begin re-reading the\n"
+"two tapes.\n"
+"\n"
+"This may take a long time -- hours! ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1805
+msgid ""
+"Do you want to run the simplified test (s) with one tape\n"
+"or the complete multiple tape (m) test: (s/m) "
+msgstr ""
+
+#: src/stored/btape.c:1808
+msgid "Simple test (single tape) selected.\n"
+msgstr ""
+
+#: src/stored/btape.c:1811
+msgid "Multiple tape test selected.\n"
+msgstr ""
+
+#: src/stored/btape.c:1827
+msgid "Rewind failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1830
+msgid "Write EOF failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1857
+msgid "Wrote Start of Session label.\n"
+msgstr ""
+
+#: src/stored/btape.c:1886
+msgid "Begin writing Bacula records to tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1888
+msgid "Begin writing Bacula records to first tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1928
+#, c-format
+msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:1935
+msgid "Flush block, write EOF\n"
+msgstr ""
+
+#: src/stored/btape.c:1946
+msgid "Not OK\n"
+msgstr ""
+
+#: src/stored/btape.c:1974
+msgid "Set ok=false after write_block_to_device.\n"
+msgstr ""
+
+#: src/stored/btape.c:1977
+msgid "Wrote End of Session label.\n"
+msgstr ""
+
+#: src/stored/btape.c:2001
+#, c-format
+msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2005
+#, c-format
+msgid "Could not create state file: %s ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2010
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Done filling tape at %d:%d. Now beginning re-read of tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2014
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2053
+msgid ""
+"\n"
+"The state file level has changed. You must redo\n"
+"the fill command.\n"
+msgstr ""
+
+#: src/stored/btape.c:2059
+#, c-format
+msgid ""
+"\n"
+"Could not find the state file: %s ERR=%s\n"
+"You must redo the fill command.\n"
+msgstr ""
+
+#: src/stored/btape.c:2101
+msgid "Mount first tape. Press enter when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2125
+msgid "Reading the first 10000 records.\n"
+msgstr ""
+
+#: src/stored/btape.c:2128 src/stored/btape.c:2195
+#, c-format
+msgid "Reposition from %u:%u to %u:%u\n"
+msgstr ""
+
+#: src/stored/btape.c:2131 src/stored/btape.c:2182 src/stored/btape.c:2198
+#, c-format
+msgid "Reposition error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2134
+#, c-format
+msgid "Reading block %u.\n"
+msgstr ""
+
+#: src/stored/btape.c:2136 src/stored/btape.c:2187 src/stored/btape.c:2203
+#, c-format
+msgid "Error reading block: ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2141
+msgid ""
+"\n"
+"The last block on the tape matches. Test succeeded.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2143
+msgid ""
+"\n"
+"The last block of the first tape matches.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2168
+msgid "Mount second tape. Press enter when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2180
+#, c-format
+msgid "Reposition from %u:%u to 0:1\n"
+msgstr ""
+
+#: src/stored/btape.c:2185 src/stored/btape.c:2201
+#, c-format
+msgid "Reading block %d.\n"
+msgstr ""
+
+#: src/stored/btape.c:2191
+msgid ""
+"\n"
+"The first block on the second tape matches.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2207
+msgid ""
+"\n"
+"The last block on the second tape matches. Test succeeded.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2221
+#, c-format
+msgid "ERROR! device at %d:%d count=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2227
+#, c-format
+msgid "1000 records read now at %d:%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2250 src/stored/btape.c:2261 src/stored/btape.c:2309
+msgid "Last block written"
+msgstr ""
+
+#: src/stored/btape.c:2252 src/stored/btape.c:2262
+msgid "Block read back"
+msgstr ""
+
+#: src/stored/btape.c:2253
+#, c-format
+msgid ""
+"\n"
+"\n"
+"The blocks differ at byte %u\n"
+msgstr ""
+
+#: src/stored/btape.c:2254
+msgid ""
+"\n"
+"\n"
+"!!!! The last block written and the block\n"
+"that was read back differ. The test FAILED !!!!\n"
+"This must be corrected before you use Bacula\n"
+"to write multi-tape Volumes.!!!!\n"
+msgstr ""
+
+#: src/stored/btape.c:2293
+#, c-format
+msgid "Last block at: %u:%u this_dev_block_num=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2307
+#, c-format
+msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n"
+msgstr ""
+
+#: src/stored/btape.c:2311
+msgid "Block not written"
+msgstr ""
+
+#: src/stored/btape.c:2326
+#, c-format
+msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:2376
+msgid "Test writing blocks of 64512 bytes to tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:2378
+msgid "How many blocks do you want to write? (1000): "
+msgstr ""
+
+#: src/stored/btape.c:2393
+#, c-format
+msgid "Begin writing %d Bacula blocks to tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2445
+#, c-format
+msgid "Begin writing raw blocks of %u bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:2465
+#, c-format
+msgid "Write failed at block %u. stat=%d ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2495
+#, c-format
+msgid "Begin writing Bacula blocks of %u bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:2514
+#, c-format
+msgid "Write failed at block %u.\n"
+msgstr ""
+
+#: src/stored/btape.c:2521
+msgid "autochanger"
+msgstr ""
+
+#: src/stored/btape.c:2521
+msgid "test autochanger"
+msgstr ""
+
+#: src/stored/btape.c:2522
+msgid "bsf"
+msgstr ""
+
+#: src/stored/btape.c:2522
+msgid "backspace file"
+msgstr ""
+
+#: src/stored/btape.c:2523
+msgid "bsr"
+msgstr ""
+
+#: src/stored/btape.c:2523
+msgid "backspace record"
+msgstr ""
+
+#: src/stored/btape.c:2524
+msgid "bfill"
+msgstr ""
+
+#: src/stored/btape.c:2524
+msgid "fill tape using Bacula writes"
+msgstr ""
+
+#: src/stored/btape.c:2525
+msgid "cap"
+msgstr ""
+
+#: src/stored/btape.c:2525
+msgid "list device capabilities"
+msgstr ""
+
+#: src/stored/btape.c:2526
+msgid "clear"
+msgstr ""
+
+#: src/stored/btape.c:2526
+msgid "clear tape errors"
+msgstr ""
+
+#: src/stored/btape.c:2527
+msgid "eod"
+msgstr ""
+
+#: src/stored/btape.c:2527
+msgid "go to end of Bacula data for append"
+msgstr ""
+
+#: src/stored/btape.c:2528
+msgid "eom"
+msgstr ""
+
+#: src/stored/btape.c:2528
+msgid "go to the physical end of medium"
+msgstr ""
+
+#: src/stored/btape.c:2529
+msgid "fill"
+msgstr ""
+
+#: src/stored/btape.c:2529
+msgid "fill tape, write onto second volume"
+msgstr ""
+
+#: src/stored/btape.c:2530
+msgid "unfill"
+msgstr ""
+
+#: src/stored/btape.c:2530
+msgid "read filled tape"
+msgstr ""
+
+#: src/stored/btape.c:2531
+msgid "fsf"
+msgstr ""
+
+#: src/stored/btape.c:2531
+msgid "forward space a file"
+msgstr ""
+
+#: src/stored/btape.c:2532
+msgid "fsr"
+msgstr ""
+
+#: src/stored/btape.c:2532
+msgid "forward space a record"
+msgstr ""
+
+#: src/stored/btape.c:2534
+msgid "write a Bacula label to the tape"
+msgstr ""
+
+#: src/stored/btape.c:2535
+msgid "load"
+msgstr ""
+
+#: src/stored/btape.c:2535
+msgid "load a tape"
+msgstr ""
+
+#: src/stored/btape.c:2536
+msgid "quit btape"
+msgstr ""
+
+#: src/stored/btape.c:2537
+msgid "rawfill"
+msgstr ""
+
+#: src/stored/btape.c:2537
+msgid "use write() to fill tape"
+msgstr ""
+
+#: src/stored/btape.c:2538
+msgid "readlabel"
+msgstr ""
+
+#: src/stored/btape.c:2538
+msgid "read and print the Bacula tape label"
+msgstr ""
+
+#: src/stored/btape.c:2539
+msgid "rectest"
+msgstr ""
+
+#: src/stored/btape.c:2539
+msgid "test record handling functions"
+msgstr ""
+
+#: src/stored/btape.c:2540
+msgid "rewind"
+msgstr ""
+
+#: src/stored/btape.c:2540
+msgid "rewind the tape"
+msgstr ""
+
+#: src/stored/btape.c:2541
+msgid "read() tape block by block to EOT and report"
+msgstr ""
+
+#: src/stored/btape.c:2542
+msgid "scanblocks"
+msgstr ""
+
+#: src/stored/btape.c:2542
+msgid "Bacula read block by block to EOT and report"
+msgstr ""
+
+#: src/stored/btape.c:2543
+msgid "print tape status"
+msgstr ""
+
+#: src/stored/btape.c:2544
+msgid "test"
+msgstr ""
+
+#: src/stored/btape.c:2544
+msgid "General test Bacula tape functions"
+msgstr ""
+
+#: src/stored/btape.c:2545
+msgid "weof"
+msgstr ""
+
+#: src/stored/btape.c:2545
+msgid "write an EOF on the tape"
+msgstr ""
+
+#: src/stored/btape.c:2546
+msgid "wr"
+msgstr ""
+
+#: src/stored/btape.c:2546
+msgid "write a single Bacula block"
+msgstr ""
+
+#: src/stored/btape.c:2547
+msgid "rr"
+msgstr ""
+
+#: src/stored/btape.c:2547
+msgid "read a single record"
+msgstr ""
+
+#: src/stored/btape.c:2548
+msgid "qfill"
+msgstr ""
+
+#: src/stored/btape.c:2548
+msgid "quick fill command"
+msgstr ""
+
+#: src/stored/btape.c:2569
+#, c-format
+msgid "%s is an illegal command\n"
+msgstr ""
+
+#: src/stored/btape.c:2579
+#, c-format
+msgid "Interactive commands:\n"
+msgstr ""
+
+#: src/stored/btape.c:2589
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: btape <options> <device_name>\n"
+" -b <file> specify bootstrap file\n"
+" -c <file> set configuration file to file\n"
+" -d <nn> set debug level to nn\n"
+" -p proceed inspite of I/O errors\n"
+" -s turn off signals\n"
+" -v be verbose\n"
+" -? print this message.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2680
+#, c-format
+msgid "Mount second Volume on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2707
+#, c-format
+msgid "Mount blank Volume on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2725
+#, c-format
+msgid "End of Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/btape.c:2737
+#, c-format
+msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:2752 src/stored/mount.c:493
+#, c-format
+msgid "Cannot open Dev=%s, Vol=%s\n"
+msgstr ""
+
+#: src/stored/butil.c:46
+msgid "Nohdr,"
+msgstr ""
+
+#: src/stored/butil.c:49
+msgid "partial,"
+msgstr ""
+
+#: src/stored/butil.c:52
+msgid "empty,"
+msgstr ""
+
+#: src/stored/butil.c:55
+msgid "Nomatch,"
+msgstr ""
+
+#: src/stored/butil.c:58
+msgid "cont,"
+msgstr ""
+
+#: src/stored/butil.c:128
+msgid "Volume name or names is too long. Please use a .bsr file.\n"
+msgstr ""
+
+#: src/stored/butil.c:148
+#, c-format
+msgid "Cannot find device \"%s\" in config file %s.\n"
+msgstr ""
+
+#: src/stored/butil.c:155
+#, c-format
+msgid "Cannot init device %s\n"
+msgstr ""
+
+#: src/stored/butil.c:174
+#, c-format
+msgid "Cannot open %s\n"
+msgstr ""
+
+#: src/stored/butil.c:253
+#, c-format
+msgid "Could not find device \"%s\" in config file %s.\n"
+msgstr ""
+
+#: src/stored/butil.c:258
+#, c-format
+msgid "Using device: \"%s\" for reading.\n"
+msgstr ""
+
+#: src/stored/butil.c:261
+#, c-format
+msgid "Using device: \"%s\" for writing.\n"
+msgstr ""
+
+#: src/stored/butil.c:277
+msgid "Unexpected End of Data\n"
+msgstr ""
+
+#: src/stored/butil.c:279
+msgid "Unexpected End of Tape\n"
+msgstr ""
+
+#: src/stored/butil.c:281
+msgid "Unexpected End of File\n"
+msgstr ""
+
+#: src/stored/butil.c:283
+msgid "Tape Door is Open\n"
+msgstr ""
+
+#: src/stored/butil.c:285
+msgid "Unexpected Tape is Off-line\n"
+msgstr ""
+
+#: src/stored/dev.c:110
+#, c-format
+msgid "Unable to stat device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:125
+#, c-format
+msgid ""
+"%s is an unknown device type. Must be tape or directory\n"
+" or have RequiresMount=yes for DVD. st_mode=%x\n"
+msgstr ""
+
+#: src/stored/dev.c:183
+#, c-format
+msgid "Unable to stat mount point %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:188
+msgid ""
+"Mount and unmount commands must defined for a device which requires mount.\n"
+msgstr ""
+
+#: src/stored/dev.c:191
+msgid "Write part command must be defined for a device which requires mount.\n"
+msgstr ""
+
+#: src/stored/dev.c:197
+#, c-format
+msgid "Block size %u on device %s is too large, using default %u\n"
+msgstr ""
+
+#: src/stored/dev.c:202
+#, c-format
+msgid "Max block size %u not multiple of device %s block size.\n"
+msgstr ""
+
+#: src/stored/dev.c:218 src/stored/dev.c:224
+#, c-format
+msgid "Unable to init cond variable: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:310
+msgid "Illegal mode given to open dev.\n"
+msgstr ""
+
+#: src/stored/dev.c:372 src/stored/device.c:302
+#, c-format
+msgid "Unable to open device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:392
+#, c-format
+msgid "fcntl error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:430 src/stored/dev.c:489
+#, c-format
+msgid "Could not open file device %s. No Volume name given.\n"
+msgstr ""
+
+#: src/stored/dev.c:455 src/stored/dev.c:569
+#, c-format
+msgid "Could not open: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:514
+#, c-format
+msgid ""
+"The media in the device %s is not empty, please blank it before writing "
+"anything to it.\n"
+msgstr ""
+
+#: src/stored/dev.c:530
+#, c-format
+msgid "There is no valid media in the device %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:537
+#, c-format
+msgid "Could not mount device %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:595
+#, c-format
+msgid "Could not fstat: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:648
+#, c-format
+msgid "Bad call to rewind_dev. Device %s not open\n"
+msgstr ""
+
+#: src/stored/dev.c:677
+#, c-format
+msgid "Rewind error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:687 src/stored/dev.c:800 src/stored/dev.c:937
+#: src/stored/dev.c:1462
+#, c-format
+msgid "lseek_dev error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:727
+msgid "unknown blocked code"
+msgstr ""
+
+#: src/stored/dev.c:770
+#, c-format
+msgid "Bad call to eod_dev. Device %s not open\n"
+msgstr ""
+
+#: src/stored/dev.c:836
+#, c-format
+msgid "ioctl MTEOM error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:844 src/stored/dev.c:977
+#, c-format
+msgid "ioctl MTIOCGET error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:923
+msgid "Bad device call. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:936
+#, c-format
+msgid "Seek error: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:972
+msgid " Bacula status:"
+msgstr ""
+
+#: src/stored/dev.c:973 src/stored/dev.c:1022 src/stored/dev.c:1024
+#, c-format
+msgid " file=%d block=%d\n"
+msgstr ""
+
+#: src/stored/dev.c:981
+msgid " Device status:"
+msgstr ""
+
+#: src/stored/dev.c:1046
+msgid "Bad call to load_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1057 src/stored/dev.c:1070
+#, c-format
+msgid "ioctl MTLOAD error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1089
+msgid "Bad call to offline_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1112
+#, c-format
+msgid "ioctl MTOFFL error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1153
+msgid "Bad call to fsf_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1163 src/stored/dev.c:1284
+#, c-format
+msgid "Device %s at End of Tape.\n"
+msgstr ""
+
+#: src/stored/dev.c:1188 src/stored/dev.c:1264
+#, c-format
+msgid "ioctl MTFSF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1313
+msgid "Bad call to bsf_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1319
+#, c-format
+msgid "Device %s cannot BSF because it is not a tape.\n"
+msgstr ""
+
+#: src/stored/dev.c:1334
+#, c-format
+msgid "ioctl MTBSF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1354
+msgid "Bad call to fsr. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1363
+#, c-format
+msgid "ioctl MTFSR not permitted on %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1391
+#, c-format
+msgid "ioctl MTFSR %d error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1411
+msgid "Bad call to bsr_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1421
+#, c-format
+msgid "ioctl MTBSR not permitted on %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1434
+#, c-format
+msgid "ioctl MTBSR error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1451
+msgid "Bad call to reposition_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1519
+msgid "Bad call to weof_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1529
+msgid "Attempt to WEOF on non-appendable Volume\n"
+msgstr ""
+
+#: src/stored/dev.c:1546
+#, c-format
+msgid "ioctl MTWEOF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1588
+msgid "Got ENOTTY on read/write!\n"
+msgstr ""
+
+#: src/stored/dev.c:1635
+#, c-format
+msgid "unknown func code %d"
+msgstr ""
+
+#: src/stored/dev.c:1641
+#, c-format
+msgid "I/O function \"%s\" not supported on this device.\n"
+msgstr ""
+
+#: src/stored/dev.c:1779 src/stored/dvd.c:668
+#, c-format
+msgid "Unable to truncate device %s. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:1818
+msgid "Bad call to term_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/device.c:105
+#, c-format
+msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n"
+msgstr ""
+
+#: src/stored/device.c:119
+#, c-format
+msgid "New volume \"%s\" mounted on device %s at %s.\n"
+msgstr ""
+
+#: src/stored/device.c:131
+#, c-format
+msgid "write_block_to_device Volume label failed. ERR=%s"
+msgstr ""
+
+#: src/stored/device.c:168
+#, c-format
+msgid "write_block_to_device overflow block failed. ERR=%s"
+msgstr ""
+
+#: src/stored/device.c:304
+#, c-format
+msgid "Unable to open archive %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:328
+msgid "Bad call to force_close_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/device.c:346
+#, c-format
+msgid "Device write lock failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:354
+#, c-format
+msgid "Device write unlock failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:373
+#, c-format
+msgid "pthread_cond_wait failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:140
+msgid "Connection request failed.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:149
+#, c-format
+msgid "Invalid connection. Len=%d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:241
+#, c-format
+msgid "3991 Bad setdebug command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:262
+#, c-format
+msgid "3902 Job %s not found.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:279
+#, c-format
+msgid "3000 Job %s marked to be canceled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:283
+msgid "3903 Error scanning cancel command.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:352 src/stored/dircmd.c:648 src/stored/dircmd.c:712
+#: src/stored/dircmd.c:770 src/stored/dircmd.c:822 src/stored/dircmd.c:860
+#, c-format
+msgid "3999 Device \"%s\" not found\n"
+msgstr ""
+
+#: src/stored/dircmd.c:357
+#, c-format
+msgid "3903 Error scanning label command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:401
+#, c-format
+msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:407
+msgid "3921 Wrong volume mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:411
+msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:419 src/stored/dircmd.c:428
+#, c-format
+msgid "3912 Failed to label Volume: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:431
+#, c-format
+msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n"
+msgstr ""
+
+#: src/stored/dircmd.c:464
+#, c-format
+msgid "3001 Mounted Volume: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:468 src/stored/dircmd.c:896
+#, c-format
+msgid ""
+"3902 Cannot mount Volume on Storage Device %s because:\n"
+"%s"
+msgstr ""
+
+#: src/stored/dircmd.c:491 src/stored/reserve.c:518
+#, c-format
+msgid ""
+"\n"
+" Device \"%s\" requested by DIR could not be opened or does not exist.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:512 src/stored/reserve.c:514
+#, c-format
+msgid ""
+"\n"
+" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or "
+"does not exist.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:568 src/stored/dircmd.c:616
+#, c-format
+msgid "3901 open device failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:583 src/stored/dircmd.c:607
+#, c-format
+msgid "3001 Device %s is mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:586 src/stored/dircmd.c:610 src/stored/dircmd.c:625
+#, c-format
+msgid ""
+"3905 Device %s open but no Bacula volume is mounted.\n"
+"If this is not a blank tape, try unmounting and remounting the Volume.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:595
+#, c-format
+msgid "3001 Device %s is doing acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:600 src/stored/dircmd.c:690
+#, c-format
+msgid "3903 Device %s is being labeled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:622
+#, c-format
+msgid "3001 Device %s is already mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:631
+#, c-format
+msgid "3002 Device %s is mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:634
+#, c-format
+msgid "3907 %s"
+msgstr ""
+
+#: src/stored/dircmd.c:637
+#, c-format
+msgid "3906 File device %s is always mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:643
+#, c-format
+msgid "3905 Bizarre wait state %d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:652
+#, c-format
+msgid "3909 Error scanning mount command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:673
+#, c-format
+msgid "3901 Device %s is already unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:682
+#, c-format
+msgid "3001 Device %s unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:686
+#, c-format
+msgid "3902 Device %s is busy in acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:707
+#, c-format
+msgid "3002 Device %s unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:717
+#, c-format
+msgid "3907 Error scanning unmount command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:742
+#, c-format
+msgid "3911 Device %s already released.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:749
+#, c-format
+msgid "3912 Device %s waiting for mount.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:753
+#, c-format
+msgid "3913 Device %s is busy in acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:757
+#, c-format
+msgid "3914 Device %s is being labeled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:765
+#, c-format
+msgid "3012 Device %s released.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:775
+#, c-format
+msgid "3917 Error scanning release command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:808
+#, c-format
+msgid "3995 Device %s is not an autochanger.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:826
+#, c-format
+msgid "3908 Error scanning autocharger list/slots command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:864
+#, c-format
+msgid "3909 Error scanning readlabel command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:892
+#, c-format
+msgid "3001 Volume=%s Slot=%d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:921
+#, c-format
+msgid "3910 Unable to open device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:931
+#, c-format
+msgid "3911 Device %s is busy reading.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:934
+#, c-format
+msgid "3912 Device %s is busy with %d writer(s).\n"
+msgstr ""
+
+#: src/stored/fd_cmds.c:340
+msgid "Error parsing bootstrap file.\n"
+msgstr ""
+
+#: src/stored/job.c:79
+#, c-format
+msgid "Bad Job Command from Director: %s\n"
+msgstr ""
+
+#: src/stored/job.c:189
+#, c-format
+msgid "Job name not found: %s\n"
+msgstr ""
+
+#: src/stored/job.c:200
+#, c-format
+msgid "Hey!!!! JobId %u Job %s already authenticated.\n"
+msgstr ""
+
+#: src/stored/job.c:211
+msgid "Unable to authenticate File daemon\n"
+msgstr ""
+
+#: src/stored/job.c:338
+msgid "In free_jcr(), but still attached to device!!!!\n"
+msgstr ""
+
+#: src/stored/label.c:74
+msgid "BAD call to read_dev_volume_label\n"
+msgstr ""
+
+#: src/stored/label.c:79 src/stored/label.c:120 src/stored/label.c:208
+#, c-format
+msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n"
+msgstr ""
+
+#: src/stored/label.c:86 src/stored/label.c:123 src/stored/label.c:195
+#, c-format
+msgid "Too many tries: %s"
+msgstr ""
+
+#: src/stored/label.c:102
+#, c-format
+msgid "Couldn't rewind device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:140
+#, c-format
+msgid ""
+"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s"
+msgstr ""
+
+#: src/stored/label.c:145
+msgid "Could not read Volume label from block.\n"
+msgstr ""
+
+#: src/stored/label.c:148
+#, c-format
+msgid "Could not unserialize Volume label: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:153
+#, c-format
+msgid "Volume Header Id bad: %s\n"
+msgstr ""
+
+#: src/stored/label.c:180
+#, c-format
+msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n"
+msgstr ""
+
+#: src/stored/label.c:191
+#, c-format
+msgid "Volume on %s has bad Bacula label type: %x\n"
+msgstr ""
+
+#: src/stored/label.c:272
+#, c-format
+msgid "Cannot write Volume label to block for device %s\n"
+msgstr ""
+
+#: src/stored/label.c:393
+#, c-format
+msgid "Rewind error on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:398
+#, c-format
+msgid "Truncate error on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:420
+#, c-format
+msgid "Unable to write device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:448
+#, c-format
+msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n"
+msgstr ""
+
+#: src/stored/label.c:451
+#, c-format
+msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n"
+msgstr ""
+
+#: src/stored/label.c:648
+#, c-format
+msgid "Bad session label = %d\n"
+msgstr ""
+
+#: src/stored/label.c:666 src/stored/label.c:673
+#, c-format
+msgid "Error writing Session label to %s: %s\n"
+msgstr ""
+
+#: src/stored/label.c:707
+#, c-format
+msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n"
+msgstr ""
+
+#: src/stored/label.c:834
+#, c-format
+msgid "Unknown %d"
+msgstr ""
+
+#: src/stored/label.c:838
+#, c-format
+msgid ""
+"\n"
+"Volume Label:\n"
+"Id : %sVerNo : %d\n"
+"VolName : %s\n"
+"PrevVolName : %s\n"
+"VolFile : %d\n"
+"LabelType : %s\n"
+"LabelSize : %d\n"
+"PoolName : %s\n"
+"MediaType : %s\n"
+"PoolType : %s\n"
+"HostName : %s\n"
+msgstr ""
+
+#: src/stored/label.c:860
+#, c-format
+msgid "Date label written: %s\n"
+msgstr ""
+
+#: src/stored/label.c:866
+#, c-format
+msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n"
+msgstr ""
+
+#: src/stored/label.c:886
+#, c-format
+msgid ""
+"\n"
+"%s Record:\n"
+"JobId : %d\n"
+"VerNum : %d\n"
+"PoolName : %s\n"
+"PoolType : %s\n"
+"JobName : %s\n"
+"ClientName : %s\n"
+msgstr ""
+
+#: src/stored/label.c:899
+#, c-format
+msgid ""
+"Job (unique name) : %s\n"
+"FileSet : %s\n"
+"JobType : %c\n"
+"JobLevel : %c\n"
+msgstr ""
+
+#: src/stored/label.c:908
+#, c-format
+msgid ""
+"JobFiles : %s\n"
+"JobBytes : %s\n"
+"StartBlock : %s\n"
+"EndBlock : %s\n"
+"StartFile : %s\n"
+"EndFile : %s\n"
+"JobErrors : %s\n"
+"JobStatus : %c\n"
+msgstr ""
+
+#: src/stored/label.c:929
+#, c-format
+msgid "Date written : %s\n"
+msgstr ""
+
+#: src/stored/label.c:934
+#, c-format
+msgid "Date written : %04d-%02d-%02d at %02d:%02d\n"
+msgstr ""
+
+#: src/stored/label.c:953
+msgid "Fresh Volume"
+msgstr ""
+
+#: src/stored/label.c:965 src/stored/read_record.c:335
+msgid "End of Media"
+msgstr ""
+
+#: src/stored/label.c:968
+msgid "End of Tape"
+msgstr ""
+
+#: src/stored/label.c:988 src/stored/label.c:996 src/stored/label.c:1029
+#, c-format
+msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/label.c:993
+msgid "End of physical tape.\n"
+msgstr ""
+
+#: src/stored/label.c:1008 src/stored/label.c:1017
+#, c-format
+msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n"
+msgstr ""
+
+#: src/stored/label.c:1010
+#, c-format
+msgid " Job=%s Date=%s Level=%c Type=%c\n"
+msgstr ""
+
+#: src/stored/label.c:1019
+#, c-format
+msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n"
+msgstr ""
+
+#: src/stored/mount.c:197 src/stored/mount.c:294
+#, c-format
+msgid "Volume \"%s\" not on device %s.\n"
+msgstr ""
+
+#: src/stored/mount.c:230
+#, c-format
+msgid ""
+"Director wanted Volume \"%s\".\n"
+" Current Volume \"%s\" not acceptable because:\n"
+" %s"
+msgstr ""
+
+#: src/stored/mount.c:284
+#, c-format
+msgid "Labeled new Volume \"%s\" on device %s.\n"
+msgstr ""
+
+#: src/stored/mount.c:289
+#, c-format
+msgid "Warning device %s not configured to autolabel Volumes.\n"
+msgstr ""
+
+#: src/stored/mount.c:340
+#, c-format
+msgid "Volume \"%s\" previously written, moving to end of data.\n"
+msgstr ""
+
+#: src/stored/mount.c:343
+#, c-format
+msgid "Unable to position to end of data on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/mount.c:355
+#, c-format
+msgid "Ready to append to end of Volume \"%s\" at file=%d.\n"
+msgstr ""
+
+#: src/stored/mount.c:358
+#, c-format
+msgid ""
+"I cannot write on Volume \"%s\" because:\n"
+"The number of files mismatch! Volume=%u Catalog=%u\n"
+msgstr ""
+
+#: src/stored/mount.c:411
+#, c-format
+msgid "Marking Volume \"%s\" in Error in Catalog.\n"
+msgstr ""
+
+#: src/stored/mount.c:427
+#, c-format
+msgid ""
+"Autochanger Volume \"%s\" not found in slot %d.\n"
+" Setting InChanger to zero in catalog.\n"
+msgstr ""
+
+#: src/stored/mount.c:446
+msgid "Hey!!!!! WroteVol non-zero !!!!!\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:104 src/stored/parse_bsr.c:108
+#, c-format
+msgid ""
+"Bootstrap file error: %s\n"
+" : Line %d, col %d of file %s\n"
+"%s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:130
+#, c-format
+msgid "Cannot open bootstrap file %s: %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:260
+#, c-format
+msgid "MediaType %s in bsr at inappropriate place.\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:416
+msgid "JobType not yet implemented\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:424
+msgid "JobLevel not yet implemented\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:626
+#, c-format
+msgid "VolFile : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:634
+#, c-format
+msgid "VolBlock : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:644
+#, c-format
+msgid "FileIndex : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:646
+#, c-format
+msgid "FileIndex : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:656
+#, c-format
+msgid "JobId : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:658
+#, c-format
+msgid "JobId : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:668
+#, c-format
+msgid "SessId : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:670
+#, c-format
+msgid "SessId : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:679
+#, c-format
+msgid "VolumeName : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:688
+#, c-format
+msgid "Client : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:696
+#, c-format
+msgid "Job : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:704
+#, c-format
+msgid "SessTime : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:718
+msgid "BSR is NULL\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:722
+#, c-format
+msgid "Next : 0x%x\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:723
+#, c-format
+msgid "Root bsr : 0x%x\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:734
+#, c-format
+msgid "Slot : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:737
+#, c-format
+msgid "count : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:738
+#, c-format
+msgid "found : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:741
+#, c-format
+msgid "done : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:742
+#, c-format
+msgid "positioning : %d\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:743
#, c-format
-msgid "Read record failed! ERR=%s\n"
+msgid "fast_reject : %d\n"
+msgstr ""
+
+#: src/stored/read.c:55
+msgid "No Volume names found for restore.\n"
msgstr ""
-#: src/stored/btape.c:1009
+#: src/stored/read.c:109
#, c-format
-msgid "Block %d re-read correctly.\n"
+msgid ">filed: Error Hdr=%s\n"
+msgstr ""
+
+#: src/stored/read.c:110 src/stored/read.c:125
+#, c-format
+msgid "Error sending to File daemon. ERR=%s\n"
+msgstr ""
+
+#: src/stored/read.c:124
+#, c-format
+msgid "Error sending to FD. ERR=%s\n"
+msgstr ""
+
+#: src/stored/read_record.c:68
+#, c-format
+msgid "End of Volume at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/read_record.c:71
+msgid "End of all volumes.\n"
+msgstr ""
+
+#: src/stored/read_record.c:105
+#, c-format
+msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/read_record.c:119
+msgid "Did fsr\n"
+msgstr ""
+
+#: src/stored/read_record.c:275
+#, c-format
+msgid "Reposition from (file:block) %u:%u to %u:%u\n"
+msgstr ""
+
+#: src/stored/read_record.c:302
+#, c-format
+msgid "Forward spacing to file:block %u:%u.\n"
+msgstr ""
+
+#: src/stored/read_record.c:328
+msgid "Begin Session"
+msgstr ""
+
+#: src/stored/read_record.c:332
+msgid "End Session"
+msgstr ""
+
+#: src/stored/read_record.c:338
+#, c-format
+msgid "Unknown code %d\n"
+msgstr ""
+
+#: src/stored/record.c:61
+#, c-format
+msgid "unknown: %d"
+msgstr ""
+
+#: src/stored/record.c:332
+msgid "Damaged buffer\n"
+msgstr ""
+
+#: src/stored/spool.c:69
+#, c-format
+msgid ""
+"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n"
+msgstr ""
+
+#: src/stored/spool.c:75
+#, c-format
+msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n"
+msgstr ""
+
+#: src/stored/spool.c:91
+msgid "Spooling data ...\n"
+msgstr ""
+
+#: src/stored/spool.c:117
+#, c-format
+msgid "Bad return from despool WroteVol=%d\n"
+msgstr ""
+
+#: src/stored/spool.c:150
+#, c-format
+msgid "Open data spool file %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:199
+#, c-format
+msgid "Committing spooled data to Volume. Despooling %s bytes ...\n"
+msgstr ""
+
+#: src/stored/spool.c:203
+#, c-format
+msgid "Writing spooled data to Volume. Despooling %s bytes ...\n"
+msgstr ""
+
+#: src/stored/spool.c:257 src/stored/spool.c:431 src/stored/spool.c:469
+#, c-format
+msgid "Ftruncate spool file failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:259
+#, c-format
+msgid "Bad return from ftruncate. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:308
+#, c-format
+msgid "Spool header read error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:311
+#, c-format
+msgid "Spool read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:312
+#, c-format
+msgid "Spool header read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:318 src/stored/spool.c:319
+#, c-format
+msgid "Spool block too big. Max %u bytes, got %u\n"
+msgstr ""
+
+#: src/stored/spool.c:324 src/stored/spool.c:325
+#, c-format
+msgid "Spool data read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:382
+msgid "User specified spool size reached.\n"
+msgstr ""
+
+#: src/stored/spool.c:384
+msgid "Bad return from despool in write_block.\n"
+msgstr ""
+
+#: src/stored/spool.c:392
+msgid "Spooling data again ...\n"
+msgstr ""
+
+#: src/stored/spool.c:423
+#, c-format
+msgid "Error writing header to spool file. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:437 src/stored/spool.c:475
+msgid "Fatal despooling error."
+msgstr ""
+
+#: src/stored/spool.c:444
+msgid "Retrying after header spooling error failed.\n"
+msgstr ""
+
+#: src/stored/spool.c:458
+#, c-format
+msgid "Error writing data to spool file. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:485
+msgid "Retrying after data spooling error failed.\n"
+msgstr ""
+
+#: src/stored/spool.c:540 src/stored/spool.c:547
+#, c-format
+msgid "Fseek on attributes file failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:557
+#, c-format
+msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n"
msgstr ""
-#: src/stored/btape.c:1030
+#: src/stored/spool.c:584
+#, c-format
+msgid "fopen attr spool file %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/status.c:66
+#, c-format
msgid ""
"\n"
+"%s Version: %s (%s) %s %s %s\n"
+msgstr ""
+
+#: src/stored/status.c:97
+msgid ""
"\n"
-"=== Append files test ===\n"
+"Device status:\n"
+msgstr ""
+
+#: src/stored/status.c:99
+#, c-format
+msgid "Autochanger \"%s\" with devices:\n"
+msgstr ""
+
+#: src/stored/status.c:113
+#, c-format
+msgid "Device %s is mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/status.c:116
+#, c-format
+msgid "Device %s open but no Bacula volume is mounted.\n"
+msgstr ""
+
+#: src/stored/status.c:126
+#, c-format
+msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:140
+#, c-format
+msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:145
+#, c-format
+msgid " Positioned at File=%s Block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:151
+#, c-format
+msgid "Device %s is not open or does not exist.\n"
+msgstr ""
+
+#: src/stored/status.c:153
+#, c-format
+msgid "Device \"%s\" is not open or does not exist.\n"
+msgstr ""
+
+#: src/stored/status.c:158 src/stored/status.c:165 src/stored/status.c:168
+msgid ""
+"====\n"
"\n"
-"This test is essential to Bacula.\n"
+msgstr ""
+
+#: src/stored/status.c:159
+msgid "Volume status:\n"
+msgstr ""
+
+#: src/stored/status.c:183
+msgid ""
+"No DEVICE structure.\n"
"\n"
-"I'm going to write one record in file 0,\n"
-" two records in file 1,\n"
-" and three records in file 2\n"
+msgstr ""
+
+#: src/stored/status.c:188
+msgid " Device is BLOCKED. User unmounted.\n"
+msgstr ""
+
+#: src/stored/status.c:191
+msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n"
+msgstr ""
+
+#: src/stored/status.c:195
+#, c-format
+msgid " Device is BLOCKED waiting for mount of volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/status.c:198
+msgid " Device is BLOCKED waiting for media.\n"
+msgstr ""
+
+#: src/stored/status.c:202
+msgid " Device is being initialized.\n"
+msgstr ""
+
+#: src/stored/status.c:205
+msgid " Device is blocked labeling a Volume.\n"
+msgstr ""
+
+#: src/stored/status.c:213
+#, c-format
+msgid " Slot %d is loaded in drive %d.\n"
+msgstr ""
+
+#: src/stored/status.c:216
+#, c-format
+msgid " Drive %d is not loaded.\n"
+msgstr ""
+
+#: src/stored/status.c:235
+msgid "Device state:\n"
+msgstr ""
+
+#: src/stored/status.c:249
+#, c-format
+msgid ""
+"num_writers=%d JobStatus=%c block=%d\n"
"\n"
msgstr ""
-#: src/stored/btape.c:1054
-msgid "Now moving to end of medium.\n"
+#: src/stored/status.c:253
+#, c-format
+msgid "Archive name: %s Device name: %s\n"
msgstr ""
-#: src/stored/btape.c:1056 src/stored/btape.c:1286
+#: src/stored/status.c:255
#, c-format
-msgid "We should be in file 3. I am at file %d. This is %s\n"
+msgid "File=%u block=%u\n"
msgstr ""
-#: src/stored/btape.c:1063
+#: src/stored/status.c:256
+#, c-format
+msgid "Min block=%u Max block=%u\n"
+msgstr ""
+
+#: src/stored/status.c:272
+#, c-format
+msgid "%s Job %s waiting for Client connection.\n"
+msgstr ""
+
+#: src/stored/status.c:284
+#, c-format
+msgid "%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"
+msgstr ""
+
+#: src/stored/status.c:303
+#, c-format
+msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n"
+msgstr ""
+
+#: src/stored/status.c:308
+msgid " FDSocket closed\n"
+msgstr ""
+
+#: src/stored/status.c:335
+msgid " JobId Level Files Bytes Status Finished Name \n"
+msgstr ""
+
+#: src/stored/status.c:469
+msgid "3900 Bad .status command, missing argument.\n"
+msgstr ""
+
+#: src/stored/status.c:494
+msgid "3900 Bad .status command, wrong argument.\n"
+msgstr ""
+
+#: src/stored/stored.c:65
+#, c-format
msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
"\n"
-"Now the important part, I am going to attempt to append to the tape.\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: stored [options] [-c config_file] [config_file]\n"
+" -c <file> use <file> as configuration file\n"
+" -dnn set debug level to nn\n"
+" -f run in foreground (for debugging)\n"
+" -g <group> set groupid to group\n"
+" -p proceed despite I/O errors\n"
+" -s no signals (for debugging)\n"
+" -t test - read config and exit\n"
+" -u <user> userid to <user>\n"
+" -v verbose user messages\n"
+" -? print this message.\n"
"\n"
msgstr ""
-#: src/stored/btape.c:1070
-msgid ""
-"Done appending, there should be no I/O errors\n"
-"\n"
+#: src/stored/stored.c:220
+msgid "Volume Session Time is ZERO!\n"
msgstr ""
-#: src/stored/btape.c:1073
-msgid "End scanning the tape.\n"
+#: src/stored/stored.c:233
+#, c-format
+msgid "Unable to create thread. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1074 src/stored/btape.c:1299
+#: src/stored/stored.c:272
#, c-format
-msgid "We should be in file 4. I am at file %d. This is %s\n"
+msgid "Only one Storage resource permitted in %s\n"
msgstr ""
-#: src/stored/btape.c:1113
-msgid ""
-"\n"
-"\n"
-"=== Autochanger test ===\n"
-"\n"
+#: src/stored/stored.c:277
+#, c-format
+msgid "No Director resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1122
-msgid "3301 Issuing autochanger \"loaded\" command.\n"
+#: src/stored/stored.c:282
+#, c-format
+msgid "No Device resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1131
+#: src/stored/stored.c:290
#, c-format
-msgid "3991 Bad autochanger command: %s\n"
+msgid "No Messages resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1132
+#: src/stored/stored.c:317
#, c-format
-msgid "3991 result=\"%s\": ERR=%s\n"
+msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/stored/btape.c:1146
+#: src/stored/stored.c:323
#, c-format
-msgid "3302 Issuing autochanger \"unload %d %d\" command.\n"
+msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/stored/btape.c:1154
+#: src/stored/stored.c:329
#, c-format
-msgid "3992 Bad autochanger command: %s\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Storage \"%s\" in %s. At least one CA certificate store is required when "
+"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/stored/btape.c:1155
+#: src/stored/stored.c:417
#, c-format
-msgid "3992 result=\"%s\": ERR=%s\n"
+msgid "No Changer Name given for device %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1165
+#: src/stored/stored.c:423
#, c-format
-msgid "3303 Issuing autochanger \"load %d %d\" command.\n"
+msgid "No Changer Command given for device %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1173
+#: src/stored/stored.c:435
#, c-format
-msgid "3303 Autochanger \"load %d %d\" status is OK.\n"
+msgid ""
+"Media Type not the same for all devices in changer %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1177
+#: src/stored/stored.c:496
#, c-format
-msgid "3993 Bad autochanger command: %s\n"
+msgid "Could not initialize %s\n"
msgstr ""
-#: src/stored/btape.c:1178
+#: src/stored/stored.c:509
#, c-format
-msgid "3993 result=\"%s\": ERR=%s\n"
+msgid "Could not open device %s\n"
msgstr ""
-#: src/stored/btape.c:1244
-msgid ""
-"\n"
-"\n"
-"=== Forward space files test ===\n"
-"\n"
-"This test is essential to Bacula.\n"
-"\n"
-"I'm going to write five files then test forward spacing\n"
-"\n"
+#: src/stored/stored.c:526
+#, c-format
+msgid "Could not mount device %s\n"
msgstr ""
-#: src/stored/btape.c:1269
-msgid "Now forward spacing 1 file.\n"
+#: src/stored/stored_conf.c:188
+#, c-format
+msgid "Warning: no \"%s\" resource (%d) defined.\n"
msgstr ""
-#: src/stored/btape.c:1274
+#: src/stored/stored_conf.c:191
#, c-format
-msgid "We should be in file 1. I am at file %d. This is %s\n"
+msgid "dump_resource type=%d\n"
msgstr ""
-#: src/stored/btape.c:1281
-msgid "Now forward spacing 2 files.\n"
+#: src/stored/stored_conf.c:307
+#, c-format
+msgid "Warning: unknown resource type %d\n"
msgstr ""
-#: src/stored/btape.c:1294
-msgid "Now forward spacing 4 files.\n"
+#: src/stored/stored_conf.c:496
+#, c-format
+msgid "\"%s\" item is required in \"%s\" resource, but not found.\n"
msgstr ""
-#: src/stored/btape.c:1312
-msgid "Now forward spacing 1 more file.\n"
+#: src/stored/stored_conf.c:502
+#, c-format
+msgid "Too many items in \"%s\" resource\n"
msgstr ""
-#: src/stored/btape.c:1316
+#: src/stored/stored_conf.c:536
#, c-format
-msgid "We should be in file 5. I am at file %d. This is %s\n"
+msgid "Cannot find AutoChanger resource %s\n"
msgstr ""
-#: src/stored/btape.c:1321
+#: src/stored/stored_conf.c:607
+#, c-format
msgid ""
-"\n"
-"=== End Forward space files test ===\n"
-"\n"
+"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n"
msgstr ""
-#: src/stored/btape.c:1325
-msgid ""
-"\n"
-"The forward space file test failed.\n"
+#: src/stored/ansi_label.c:83
+#, c-format
+msgid "Read error on device %s in ANSI label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1422
-msgid ""
-"\n"
-"The above Bacula scan should have output identical to what follows.\n"
-"Please double check it ...\n"
-"=== Sample correct output ===\n"
-"1 block of 64448 bytes in file 1\n"
-"End of File mark.\n"
-"2 blocks of 64448 bytes in file 2\n"
-"End of File mark.\n"
-"3 blocks of 64448 bytes in file 3\n"
-"End of File mark.\n"
-"1 block of 64448 bytes in file 4\n"
-"End of File mark.\n"
-"Total files=4, blocks=7, bytes = 451,136\n"
-"=== End sample correct output ===\n"
-"\n"
+#: src/stored/ansi_label.c:93
+msgid "Insane! End of tape while reading ANSI label.\n"
msgstr ""
-#: src/stored/btape.c:1436
-msgid ""
-"If the above scan output is not identical to the\n"
-"sample output, you MUST correct the problem\n"
-"or Bacula will not be able to write multiple Jobs to \n"
-"the tape.\n"
-"\n"
+#: src/stored/ansi_label.c:117
+msgid "No VOL1 label while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1515
+#: src/stored/ansi_label.c:137
#, c-format
-msgid "Wrote one record of %d bytes.\n"
+msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n"
msgstr ""
-#: src/stored/btape.c:1517
-msgid "Wrote block to device.\n"
+#: src/stored/ansi_label.c:148
+msgid "No HDR1 label while reading ANSI label.\n"
msgstr ""
-#: src/stored/btape.c:1537
-msgid "Bad length entered, using default of 1024 bytes.\n"
+#: src/stored/ansi_label.c:154
+#, c-format
+msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n"
msgstr ""
-#: src/stored/btape.c:1546
-#, c-format
-msgid "Read of %d bytes gives stat=%d. ERR=%s\n"
+#: src/stored/ansi_label.c:165
+msgid "No HDR2 label while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1574
-#, c-format
-msgid "Starting scan at file %u\n"
+#: src/stored/ansi_label.c:179
+msgid "Unknown or bad ANSI/IBM label record.\n"
+msgstr ""
+
+#: src/stored/ansi_label.c:186
+msgid "Too many records in while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1663
+#: src/stored/ansi_label.c:285
#, c-format
-msgid "End of File mark.\n"
+msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n"
msgstr ""
-#: src/stored/btape.c:1672
+#: src/stored/ansi_label.c:302
#, c-format
-msgid "Short block read.\n"
+msgid "Could not write ANSI VOL1 label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1675
+#: src/stored/ansi_label.c:340 src/stored/ansi_label.c:369
#, c-format
-msgid "Error reading block. ERR=%s\n"
+msgid "Could not write ANSI HDR1 label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1903
-msgid "Not OK\n"
+#: src/stored/ansi_label.c:345 src/stored/ansi_label.c:376
+msgid "Could not write ANSI HDR1 label.\n"
msgstr ""
-#: src/stored/btape.c:1931
-msgid "Set ok=false after write_block_to_device.\n"
+#: src/stored/ansi_label.c:381
+#, c-format
+msgid "Error writing EOF to tape. ERR=%s"
msgstr ""
-#: src/stored/btape.c:1934
-msgid "Wrote End of Session label.\n"
+#: src/stored/ansi_label.c:386
+msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n"
msgstr ""
-#: src/stored/btape.c:1962
+#: src/stored/dvd.c:153
#, c-format
-msgid "Could not create state file: %s ERR=%s\n"
+msgid "Device %s cannot be mounted. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1966
+#: src/stored/dvd.c:261
#, c-format
-msgid ""
-"\n"
-"\n"
-"Done filling tape%s at %d:%d. Now beginning re-read of %stape ...\n"
+msgid "Cannot run free space command (%s)\n"
msgstr ""
-#: src/stored/btape.c:2052
-msgid "Mount first tape. Press enter when ready: "
+#: src/stored/dvd.c:322
+#, c-format
+msgid "Error while writing current part to the DVD: %s"
msgstr ""
-#: src/stored/btape.c:2076
-msgid "Reading the first 10000 records.\n"
+#: src/stored/dvd.c:343
+#, c-format
+msgid "Remaining free space %s on %s\n"
msgstr ""
-#: src/stored/btape.c:2079 src/stored/btape.c:2146
+#: src/stored/dvd.c:412
#, c-format
-msgid "Reposition from %u:%u to %u:%u\n"
+msgid "Next Volume part already exists on DVD. Cannot continue: %s\n"
msgstr ""
-#: src/stored/btape.c:2085
+#: src/stored/dvd.c:430
#, c-format
-msgid "Reading block %u.\n"
+msgid "open_next_part can't unlink existing part %s, ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:2087 src/stored/btape.c:2138 src/stored/btape.c:2154
+#: src/stored/dvd.c:634
#, c-format
-msgid "Error reading block: ERR=%s\n"
+msgid "Unable to write part %s: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:2092
-msgid ""
-"\n"
-"The last block on the tape matches. Test succeeded.\n"
-"\n"
+#: src/stored/wait.c:178 src/stored/wait.c:236
+#, c-format
+msgid "Job %s waiting to reserve a device.\n"
msgstr ""
-#: src/stored/btape.c:2094
-msgid ""
-"\n"
-"The last block of the first tape matches.\n"
-"\n"
+#: src/stored/pythonsd.c:59
+msgid "SDName"
msgstr ""
-#: src/stored/btape.c:2119
-msgid "Mount second tape. Press enter when ready: "
+#: src/stored/pythonsd.c:202
+msgid "Error in ParseTuple\n"
msgstr ""
-#: src/stored/btape.c:2131
-#, c-format
-msgid "Reposition from %u:%u to 0:1\n"
+#: src/stored/pythonsd.c:218
+msgid "Parse tuple error in job_write\n"
msgstr ""
-#: src/stored/btape.c:2136 src/stored/btape.c:2152
+#: src/stored/pythonsd.c:254
#, c-format
-msgid "Reading block %d.\n"
+msgid "Error in Python method %s\n"
msgstr ""
-#: src/stored/btape.c:2142
-msgid ""
-"\n"
-"The first block on the second tape matches.\n"
-"\n"
+#: src/stored/reserve.c:344 src/stored/reserve.c:361
+#, c-format
+msgid "Failed command: %s\n"
msgstr ""
-#: src/stored/btape.c:2158
+#: src/stored/reserve.c:346
+#, c-format
msgid ""
"\n"
-"The last block on the second tape matches. Test succeeded.\n"
-"\n"
+" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD "
+"Device resources.\n"
msgstr ""
-#: src/stored/btape.c:2201 src/stored/btape.c:2212
-msgid "Last block written"
+#: src/stored/reserve.c:528
+#, c-format
+msgid "3926 Could not get dcr for device: %s\n"
msgstr ""
-#: src/stored/btape.c:2203 src/stored/btape.c:2213
-msgid "Block read back"
+#: src/stored/reserve.c:568 src/stored/reserve.c:623
+#, c-format
+msgid "Device %s is BLOCKED due to user unmount.\n"
msgstr ""
-#: src/stored/btape.c:2520
+#: src/stored/reserve.c:576
#, c-format
-msgid "%s is an illegal command\n"
+msgid "Device %s is busy.\n"
msgstr ""
-#: src/stored/btape.c:2530
+#: src/stored/reserve.c:631
#, c-format
-msgid "Interactive commands:\n"
+msgid "Device %s is busy writing on another Volume.\n"
msgstr ""
-#: src/stored/btape.c:2541
+#: src/stored/reserve.c:705
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: btape <options> <device_name>\n"
-" -b <file> specify bootstrap file\n"
-" -c <file> set configuration file to file\n"
-" -d <nn> set debug level to nn\n"
-" -p proceed inspite of I/O errors\n"
-" -s turn off signals\n"
-" -v be verbose\n"
-" -? print this message.\n"
-"\n"
+msgid "Wanted Pool \"%s\", but device %s is using Pool \"%s\" .\n"
msgstr ""
-#: src/stored/butil.c:128
-msgid "Volume name or names is too long. Please use a .bsr file.\n"
+#: src/stored/reserve.c:710 src/stored/reserve.c:711
+msgid "Logic error!!!! Should not get here.\n"
msgstr ""
-#: src/stored/butil.c:148
+#: src/tools/bsmtp.c:85
#, c-format
-msgid "Cannot find device \"%s\" in config file %s.\n"
+msgid "Fatal malformed reply from %s: %s\n"
msgstr ""
-#: src/stored/butil.c:155
+#: src/tools/bsmtp.c:121
#, c-format
-msgid "Cannot init device %s\n"
+msgid ""
+"\n"
+"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n"
+" -c set the Cc: field\n"
+" -dnn set debug level to nn\n"
+" -f set the From: field\n"
+" -h use mailhost:port as the SMTP server\n"
+" -s set the Subject: field\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/butil.c:174
-#, c-format
-msgid "Cannot open %s\n"
+#: src/tools/bsmtp.c:204
+msgid "Fatal error: no recipient given.\n"
msgstr ""
-#: src/stored/butil.c:253
+#: src/tools/bsmtp.c:225
#, c-format
-msgid "Could not find device \"%s\" in config file %s.\n"
+msgid "Fatal gethostname error: ERR=%s\n"
msgstr ""
-#: src/stored/butil.c:257
+#: src/tools/bsmtp.c:229
#, c-format
-msgid "Using device: \"%s\" for %s.\n"
-msgstr ""
-
-#: src/stored/butil.c:273
-msgid "Unexpected End of Data\n"
-msgstr ""
-
-#: src/stored/butil.c:275
-msgid "Unexpected End of Tape\n"
+msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n"
msgstr ""
-#: src/stored/butil.c:277
-msgid "Unexpected End of File\n"
+#: src/tools/bsmtp.c:254
+#, c-format
+msgid "Error unknown mail host \"%s\": ERR=%s\n"
msgstr ""
-
-#: src/stored/butil.c:279
-msgid "Tape Door is Open\n"
+
+#: src/tools/bsmtp.c:257
+msgid "Retrying connection using \"localhost\".\n"
msgstr ""
-#: src/stored/butil.c:281
-msgid "Unexpected Tape is Off-line\n"
+#: src/tools/bsmtp.c:265
+#, c-format
+msgid "Fatal error: Unknown address family for smtp host: %d\n"
msgstr ""
-#: src/stored/dev.c:110
+#: src/tools/bsmtp.c:273
#, c-format
-msgid "Unable to stat device %s: ERR=%s\n"
+msgid "Fatal socket error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:125
+#: src/tools/bsmtp.c:277
#, c-format
-msgid ""
-"%s is an unknown device type. Must be tape or directory\n"
-" or have RequiresMount=yes for DVD. st_mode=%x\n"
+msgid "Fatal connect error to %s: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:183
+#: src/tools/bsmtp.c:282
#, c-format
-msgid "Unable to stat mount point %s: ERR=%s\n"
+msgid "Fatal dup error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:188
-msgid ""
-"Mount and unmount commands must defined for a device which requires mount.\n"
+#: src/tools/bsmtp.c:286 src/tools/bsmtp.c:290
+#, c-format
+msgid "Fatal fdopen error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:191
-msgid "Write part command must be defined for a device which requires mount.\n"
+#: src/tools/dbcheck.c:158
+msgid ""
+"Warning skipping the additional parameters for working directory/dbname/user/"
+"password/host.\n"
msgstr ""
-#: src/stored/dev.c:197
+#: src/tools/dbcheck.c:174
#, c-format
-msgid "Block size %u on device %s is too large, using default %u\n"
+msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n"
msgstr ""
-#: src/stored/dev.c:202
+#: src/tools/dbcheck.c:176
#, c-format
-msgid "Max block size %u not multiple of device %s block size.\n"
+msgid "Error there is no Catalog section in the given config file [%s]\n"
msgstr ""
-#: src/stored/dev.c:212 src/stored/dev.c:230 src/stored/dev.c:236
-#: src/stored/stored_conf.c:550
-#, c-format
-msgid "Unable to init mutex: ERR=%s\n"
+#: src/tools/dbcheck.c:185
+msgid "Error no Director resource defined.\n"
msgstr ""
-#: src/stored/dev.c:218 src/stored/dev.c:224
-#, c-format
-msgid "Unable to init cond variable: ERR=%s\n"
+#: src/tools/dbcheck.c:199
+msgid "Wrong number of arguments.\n"
msgstr ""
-#: src/stored/dev.c:310
-msgid "Illegal mode given to open dev.\n"
+#: src/tools/dbcheck.c:204
+msgid "Working directory not supplied.\n"
msgstr ""
-#: src/stored/dev.c:372 src/stored/device.c:302
+#: src/tools/dbcheck.c:269
#, c-format
-msgid "Unable to open device %s: ERR=%s\n"
+msgid "Hello, this is the database check/correct program.\n"
msgstr ""
-#: src/stored/dev.c:430 src/stored/dev.c:489
+#: src/tools/dbcheck.c:271
#, c-format
-msgid "Could not open file device %s. No Volume name given.\n"
+msgid "Modify database is on."
msgstr ""
-#: src/stored/dev.c:455 src/stored/dev.c:569
+#: src/tools/dbcheck.c:273
#, c-format
-msgid "Could not open: %s, ERR=%s\n"
+msgid "Modify database is off."
msgstr ""
-#: src/stored/dev.c:514
+#: src/tools/dbcheck.c:275 src/tools/dbcheck.c:336
#, c-format
-msgid ""
-"The media in the device %s is not empty, please blank it before writing "
-"anything to it.\n"
+msgid " Verbose is on.\n"
msgstr ""
-#: src/stored/dev.c:530
+#: src/tools/dbcheck.c:277 src/tools/dbcheck.c:338
#, c-format
-msgid "There is no valid media in the device %s.\n"
+msgid " Verbose is off.\n"
msgstr ""
-#: src/stored/dev.c:537
+#: src/tools/dbcheck.c:279
#, c-format
-msgid "Could not mount device %s.\n"
+msgid "Please select the fuction you want to perform.\n"
msgstr ""
-#: src/stored/dev.c:595
+#: src/tools/dbcheck.c:283
#, c-format
-msgid "Could not fstat: %s, ERR=%s\n"
+msgid ""
+"\n"
+" 1) Toggle modify database flag\n"
+" 2) Toggle verbose flag\n"
+" 3) Repair bad Filename records\n"
+" 4) Repair bad Path records\n"
+" 5) Eliminate duplicate Filename records\n"
+" 6) Eliminate duplicate Path records\n"
+" 7) Eliminate orphaned Jobmedia records\n"
+" 8) Eliminate orphaned File records\n"
+" 9) Eliminate orphaned Path records\n"
+" 10) Eliminate orphaned Filename records\n"
+" 11) Eliminate orphaned FileSet records\n"
+" 12) Eliminate orphaned Client records\n"
+" 13) Eliminate orphaned Job records\n"
+" 14) Eliminate all Admin records\n"
+" 15) Eliminate all Restore records\n"
+" 16) All (3-15)\n"
+" 17) Quit\n"
msgstr ""
-#: src/stored/dev.c:648
+#: src/tools/dbcheck.c:302
#, c-format
-msgid "Bad call to rewind_dev. Device %s not open\n"
+msgid ""
+"\n"
+" 1) Toggle modify database flag\n"
+" 2) Toggle verbose flag\n"
+" 3) Check for bad Filename records\n"
+" 4) Check for bad Path records\n"
+" 5) Check for duplicate Filename records\n"
+" 6) Check for duplicate Path records\n"
+" 7) Check for orphaned Jobmedia records\n"
+" 8) Check for orphaned File records\n"
+" 9) Check for orphaned Path records\n"
+" 10) Check for orphaned Filename records\n"
+" 11) Check for orphaned FileSet records\n"
+" 12) Check for orphaned Client records\n"
+" 13) Check for orphaned Job records\n"
+" 14) Check for all Admin records\n"
+" 15) Check for all Restore records\n"
+" 16) All (3-15)\n"
+" 17) Quit\n"
msgstr ""
-#: src/stored/dev.c:677
+#: src/tools/dbcheck.c:322
+msgid "Select function number: "
+msgstr ""
+
+#: src/tools/dbcheck.c:329
#, c-format
-msgid "Rewind error on %s. ERR=%s.\n"
+msgid "Database will be modified.\n"
msgstr ""
-#: src/stored/dev.c:687 src/stored/dev.c:800 src/stored/dev.c:937
-#: src/stored/dev.c:1462
+#: src/tools/dbcheck.c:331
#, c-format
-msgid "lseek_dev error on %s. ERR=%s.\n"
+msgid "Database will NOT be modified.\n"
msgstr ""
-#: src/stored/dev.c:770
+#: src/tools/dbcheck.c:421
#, c-format
-msgid "Bad call to eod_dev. Device %s not open\n"
+msgid "JobId=%s Name=\"%s\" StartTime=%s\n"
msgstr ""
-#: src/stored/dev.c:836
+#: src/tools/dbcheck.c:429
#, c-format
-msgid "ioctl MTEOM error on %s. ERR=%s.\n"
+msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:844 src/stored/dev.c:977
+#: src/tools/dbcheck.c:436
#, c-format
-msgid "ioctl MTIOCGET error on %s. ERR=%s.\n"
+msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:923
-msgid "Bad device call. Device not open\n"
+#: src/tools/dbcheck.c:443
+#, c-format
+msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n"
msgstr ""
-#: src/stored/dev.c:1046
-msgid "Bad call to load_dev. Device not open\n"
+#: src/tools/dbcheck.c:450
+#, c-format
+msgid "Orphaned ClientId=%s Name=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:1057 src/stored/dev.c:1070
+#: src/tools/dbcheck.c:503
#, c-format
-msgid "ioctl MTLOAD error on %s. ERR=%s.\n"
+msgid "Deleting: %s\n"
msgstr ""
-#: src/stored/dev.c:1089
-msgid "Bad call to offline_dev. Device not open\n"
+#: src/tools/dbcheck.c:577
+#, c-format
+msgid "Checking for duplicate Filename entries.\n"
msgstr ""
-#: src/stored/dev.c:1112
+#: src/tools/dbcheck.c:586
#, c-format
-msgid "ioctl MTOFFL error on %s. ERR=%s.\n"
+msgid "Found %d duplicate Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1153
-msgid "Bad call to fsf_dev. Device not open\n"
+#: src/tools/dbcheck.c:587
+msgid "Print the list? (yes/no): "
msgstr ""
-#: src/stored/dev.c:1163 src/stored/dev.c:1284
+#: src/tools/dbcheck.c:603 src/tools/dbcheck.c:657
#, c-format
-msgid "Device %s at End of Tape.\n"
+msgid "Found %d for: %s\n"
msgstr ""
-#: src/stored/dev.c:1188 src/stored/dev.c:1264
+#: src/tools/dbcheck.c:630
#, c-format
-msgid "ioctl MTFSF error on %s. ERR=%s.\n"
+msgid "Checking for duplicate Path entries.\n"
msgstr ""
-#: src/stored/dev.c:1234
+#: src/tools/dbcheck.c:640
#, c-format
-msgid "read error on %s. ERR=%s.\n"
+msgid "Found %d duplicate Path records.\n"
msgstr ""
-#: src/stored/dev.c:1313
-msgid "Bad call to bsf_dev. Device not open\n"
+#: src/tools/dbcheck.c:641 src/tools/dbcheck.c:691 src/tools/dbcheck.c:723
+#: src/tools/dbcheck.c:755 src/tools/dbcheck.c:783 src/tools/dbcheck.c:811
+#: src/tools/dbcheck.c:849 src/tools/dbcheck.c:887 src/tools/dbcheck.c:918
+#: src/tools/dbcheck.c:948 src/tools/dbcheck.c:982 src/tools/dbcheck.c:1040
+msgid "Print them? (yes/no): "
msgstr ""
-#: src/stored/dev.c:1319
+#: src/tools/dbcheck.c:683
#, c-format
-msgid "Device %s cannot BSF because it is not a tape.\n"
+msgid "Checking for orphaned JobMedia entries.\n"
msgstr ""
-#: src/stored/dev.c:1334
+#: src/tools/dbcheck.c:690
#, c-format
-msgid "ioctl MTBSF error on %s. ERR=%s.\n"
+msgid "Found %d orphaned JobMedia records.\n"
msgstr ""
-#: src/stored/dev.c:1354
-msgid "Bad call to fsr. Device not open\n"
-msgstr ""
-
-#: src/stored/dev.c:1363
+#: src/tools/dbcheck.c:703
#, c-format
-msgid "ioctl MTFSR not permitted on %s.\n"
+msgid "Deleting %d orphaned JobMedia records.\n"
msgstr ""
-#: src/stored/dev.c:1391
+#: src/tools/dbcheck.c:712
#, c-format
-msgid "ioctl MTFSR %d error on %s. ERR=%s.\n"
+msgid "Checking for orphaned File entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1411
-msgid "Bad call to bsr_dev. Device not open\n"
+#: src/tools/dbcheck.c:722
+#, c-format
+msgid "Found %d orphaned File records.\n"
msgstr ""
-#: src/stored/dev.c:1421
+#: src/tools/dbcheck.c:735
#, c-format
-msgid "ioctl MTBSR not permitted on %s.\n"
+msgid "Deleting %d orphaned File records.\n"
msgstr ""
-#: src/stored/dev.c:1434
+#: src/tools/dbcheck.c:744
#, c-format
-msgid "ioctl MTBSR error on %s. ERR=%s.\n"
+msgid "Checking for orphaned Path entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1451
-msgid "Bad call to reposition_dev. Device not open\n"
+#: src/tools/dbcheck.c:754
+#, c-format
+msgid "Found %d orphaned Path records.\n"
msgstr ""
-#: src/stored/dev.c:1519
-msgid "Bad call to weof_dev. Device not open\n"
+#: src/tools/dbcheck.c:763
+#, c-format
+msgid "Deleting %d orphaned Path records.\n"
msgstr ""
-#: src/stored/dev.c:1529
-msgid "Attempt to WEOF on non-appendable Volume\n"
+#: src/tools/dbcheck.c:772
+#, c-format
+msgid "Checking for orphaned Filename entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1546
+#: src/tools/dbcheck.c:782
#, c-format
-msgid "ioctl MTWEOF error on %s. ERR=%s.\n"
+msgid "Found %d orphaned Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1641
+#: src/tools/dbcheck.c:791
#, c-format
-msgid "I/O function \"%s\" not supported on this device.\n"
+msgid "Deleting %d orphaned Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1779 src/stored/dvd.c:667
+#: src/tools/dbcheck.c:800
#, c-format
-msgid "Unable to truncate device %s. ERR=%s\n"
+msgid "Checking for orphaned FileSet entries. This takes some time!\n"
msgstr ""
-#: src/stored/dev.c:1818
-msgid "Bad call to term_dev. Device not open\n"
+#: src/tools/dbcheck.c:810
+#, c-format
+msgid "Found %d orphaned FileSet records.\n"
msgstr ""
-#: src/stored/device.c:105
+#: src/tools/dbcheck.c:822
#, c-format
-msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n"
+msgid "Deleting %d orphaned FileSet records.\n"
msgstr ""
-#: src/stored/device.c:119
+#: src/tools/dbcheck.c:831
#, c-format
-msgid "New volume \"%s\" mounted on device %s at %s.\n"
+msgid "Checking for orphaned Client entries.\n"
msgstr ""
-#: src/stored/device.c:328
-msgid "Bad call to force_close_dev. Device not open\n"
+#: src/tools/dbcheck.c:848
+#, c-format
+msgid "Found %d orphaned Client records.\n"
msgstr ""
-#: src/stored/device.c:373
+#: src/tools/dbcheck.c:860
#, c-format
-msgid "pthread_cond_wait failure. ERR=%s\n"
+msgid "Deleting %d orphaned Client records.\n"
msgstr ""
-#: src/stored/dircmd.c:140
-msgid "Connection request failed.\n"
+#: src/tools/dbcheck.c:869
+#, c-format
+msgid "Checking for orphaned Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:149
+#: src/tools/dbcheck.c:886
#, c-format
-msgid "Invalid connection. Len=%d\n"
+msgid "Found %d orphaned Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:262
+#: src/tools/dbcheck.c:898
#, c-format
-msgid "3902 Job %s not found.\n"
+msgid "Deleting %d orphaned Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:279
+#: src/tools/dbcheck.c:908
#, c-format
-msgid "3000 Job %s marked to be canceled.\n"
+msgid "Checking for Admin Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:283
-msgid "3903 Error scanning cancel command.\n"
+#: src/tools/dbcheck.c:917
+#, c-format
+msgid "Found %d Admin Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:352 src/stored/dircmd.c:648 src/stored/dircmd.c:712
-#: src/stored/dircmd.c:770 src/stored/dircmd.c:822 src/stored/dircmd.c:860
+#: src/tools/dbcheck.c:929
#, c-format
-msgid "3999 Device \"%s\" not found\n"
+msgid "Deleting %d Admin Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:357
+#: src/tools/dbcheck.c:938
#, c-format
-msgid "3903 Error scanning label command: %s\n"
+msgid "Checking for Restore Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:401
+#: src/tools/dbcheck.c:947
#, c-format
-msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n"
+msgid "Found %d Restore Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:407
-msgid "3921 Wrong volume mounted.\n"
+#: src/tools/dbcheck.c:959
+#, c-format
+msgid "Deleting %d Restore Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:411
-msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n"
+#: src/tools/dbcheck.c:972
+#, c-format
+msgid "Checking for Filenames with a trailing slash\n"
msgstr ""
-#: src/stored/dircmd.c:419 src/stored/dircmd.c:428
+#: src/tools/dbcheck.c:981
#, c-format
-msgid "3912 Failed to label Volume: ERR=%s\n"
+msgid "Found %d bad Filename records.\n"
msgstr ""
-#: src/stored/dircmd.c:431
+#: src/tools/dbcheck.c:995 src/tools/dbcheck.c:1053
#, c-format
-msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n"
+msgid "Reparing %d bad Filename records.\n"
msgstr ""
-#: src/stored/dircmd.c:464
+#: src/tools/dbcheck.c:1030
#, c-format
-msgid "3001 Mounted Volume: %s\n"
+msgid "Checking for Paths without a trailing slash\n"
msgstr ""
-#: src/stored/dircmd.c:468 src/stored/dircmd.c:896
+#: src/tools/dbcheck.c:1039
#, c-format
-msgid ""
-"3902 Cannot mount Volume on Storage Device %s because:\n"
-"%s"
+msgid "Found %d bad Path records.\n"
msgstr ""
-#: src/stored/dircmd.c:491 src/stored/reserve.c:518
+#: src/tools/testfind.c:49
#, c-format
msgid ""
"\n"
-" Device \"%s\" requested by DIR could not be opened or does not exist.\n"
+"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n"
+" -a print extended attributes (Win32 debug)\n"
+" -dnn set debug level to nn\n"
+" -e specify file of exclude patterns\n"
+" -i specify file of include patterns\n"
+" - read pattern(s) from stdin\n"
+" -? print this message.\n"
+"\n"
+"Patterns are used for file inclusion -- normally directories.\n"
+"Debug level >= 1 prints each file found.\n"
+"Debug level >= 10 prints path/file for catalog.\n"
+"Errors are always printed.\n"
+"Files/paths truncated is the number of files/paths with len > 255.\n"
+"Truncation is only in the catalog.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:512 src/stored/reserve.c:514
+#: src/tools/testfind.c:134 src/tools/testls.c:130
#, c-format
-msgid ""
-"\n"
-" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or "
-"does not exist.\n"
+msgid "Could not open include file: %s\n"
msgstr ""
-#: src/stored/dircmd.c:568 src/stored/dircmd.c:616
+#: src/tools/testfind.c:147 src/tools/testls.c:143
#, c-format
-msgid "3901 open device failed: ERR=%s\n"
+msgid "Could not open exclude file: %s\n"
msgstr ""
-#: src/stored/dircmd.c:583 src/stored/dircmd.c:607
+#: src/tools/testfind.c:160
#, c-format
-msgid "3001 Device %s is mounted with Volume \"%s\"\n"
+msgid ""
+"Total files : %d\n"
+"Max file length: %d\n"
+"Max path length: %d\n"
+"Files truncated: %d\n"
+"Paths truncated: %d\n"
+"Hard links : %d\n"
msgstr ""
-#: src/stored/dircmd.c:586 src/stored/dircmd.c:610 src/stored/dircmd.c:625
+#: src/tools/testfind.c:199
#, c-format
-msgid ""
-"3905 Device %s open but no Bacula volume is mounted.\n"
-"If this is not a blank tape, try unmounting and remounting the Volume.\n"
+msgid "Reg: %s\n"
+msgstr ""
+
+#: src/tools/testfind.c:220
+msgid "\t[will not descend: recursion turned off]"
+msgstr ""
+
+#: src/tools/testfind.c:222
+msgid "\t[will not descend: file system change not allowed]"
+msgstr ""
+
+#: src/tools/testfind.c:224
+msgid "\t[will not descend: disallowed file system]"
msgstr ""
-#: src/stored/dircmd.c:595
+#: src/tools/testfind.c:240 src/tools/testls.c:178
#, c-format
-msgid "3001 Device %s is doing acquire.\n"
+msgid "Err: Could not access %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:600 src/stored/dircmd.c:690
+#: src/tools/testfind.c:243 src/tools/testls.c:181
#, c-format
-msgid "3903 Device %s is being labeled.\n"
+msgid "Err: Could not follow ff->link %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:622
+#: src/tools/testfind.c:246 src/tools/testls.c:184
#, c-format
-msgid "3001 Device %s is already mounted with Volume \"%s\"\n"
+msgid "Err: Could not stat %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:631
+#: src/tools/testfind.c:249 src/tools/testls.c:187
#, c-format
-msgid "3002 Device %s is mounted.\n"
+msgid "Skip: File not saved. No change. %s\n"
msgstr ""
-#: src/stored/dircmd.c:637
+#: src/tools/testfind.c:252 src/tools/testls.c:190
#, c-format
-msgid "3906 File device %s is always mounted.\n"
+msgid "Err: Attempt to backup archive. Not saved. %s\n"
msgstr ""
-#: src/stored/dircmd.c:643
+#: src/tools/testfind.c:255 src/tools/testls.c:199
#, c-format
-msgid "3905 Bizarre wait state %d\n"
+msgid "Err: Could not open directory %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:652
+#: src/tools/testfind.c:258 src/tools/testls.c:202
#, c-format
-msgid "3909 Error scanning mount command: %s\n"
+msgid "Err: Unknown file ff->type %d: %s\n"
msgstr ""
-#: src/stored/dircmd.c:673
+#: src/tools/testfind.c:308
#, c-format
-msgid "3901 Device %s is already unmounted.\n"
+msgid "===== Filename truncated to 255 chars: %s\n"
msgstr ""
-#: src/stored/dircmd.c:682
+#: src/tools/testfind.c:325
#, c-format
-msgid "3001 Device %s unmounted.\n"
+msgid "========== Path name truncated to 255 chars: %s\n"
msgstr ""
-#: src/stored/dircmd.c:686
+#: src/tools/testfind.c:334
#, c-format
-msgid "3902 Device %s is busy in acquire.\n"
+msgid "========== Path length is zero. File=%s\n"
msgstr ""
-#: src/stored/dircmd.c:707
+#: src/tools/testfind.c:337
#, c-format
-msgid "3002 Device %s unmounted.\n"
+msgid "Path: %s\n"
msgstr ""
-#: src/stored/dircmd.c:717
+#: src/tools/testls.c:45
#, c-format
-msgid "3907 Error scanning unmount command: %s\n"
+msgid ""
+"\n"
+"Usage: testls [-d debug_level] [-] [pattern1 ...]\n"
+" -a print extended attributes (Win32 debug)\n"
+" -dnn set debug level to nn\n"
+" -e specify file of exclude patterns\n"
+" -i specify file of include patterns\n"
+" - read pattern(s) from stdin\n"
+" -? print this message.\n"
+"\n"
+"Patterns are file inclusion -- normally directories.\n"
+"Debug level >= 1 prints each file found.\n"
+"Debug level >= 10 prints path/file for catalog.\n"
+"Errors always printed.\n"
+"Files/paths truncated is number with len > 255.\n"
+"Truncation is only in catalog.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:742
+#: src/tools/testls.c:193
#, c-format
-msgid "3911 Device %s already released.\n"
+msgid "Recursion turned off. Directory not entered. %s\n"
msgstr ""
-#: src/stored/dircmd.c:749
+#: src/tools/testls.c:196
#, c-format
-msgid "3912 Device %s waiting for mount.\n"
+msgid "Skip: File system change prohibited. Directory not entered. %s\n"
msgstr ""
-#: src/stored/dircmd.c:753
+#: src/tools/fstype.c:34
#, c-format
-msgid "3913 Device %s is busy in acquire.\n"
+msgid ""
+"\n"
+"Usage: fstype [-d debug_level] path ...\n"
+"\n"
+" Print the file system type a given file/directory is on.\n"
+" The following options are supported:\n"
+"\n"
+" -v print both path and file system type.\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:757
+#: src/tools/fstype.c:86
#, c-format
-msgid "3914 Device %s is being labeled.\n"
+msgid "%s: unknown\n"
msgstr ""
-#: src/stored/dircmd.c:765
-#, c-format
-msgid "3012 Device %s released.\n"
+#: src/tray-monitor/authenticate.c:78
+msgid ""
+"Director authorization problem.\n"
+"Most likely the passwords do not agree.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:775
-#, c-format
-msgid "3917 Error scanning release command: %s\n"
+#: src/tray-monitor/authenticate.c:127
+msgid ""
+"Director and Storage daemon passwords or names not the same.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:808
-#, c-format
-msgid "3995 Device %s is not an autochanger.\n"
+#: src/tray-monitor/authenticate.c:172
+msgid ""
+"Director and File daemon passwords or names not the same.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:826
+#: src/tray-monitor/tray-monitor.c:102
#, c-format
-msgid "3908 Error scanning autocharger list/slots command: %s\n"
+msgid ""
+"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n"
+"Written by Nicolas Boichat (2004)\n"
+"\n"
+"Version: %s (%s) %s %s %s\n"
+"\n"
+"Usage: tray-monitor [-c config_file] [-d debug_level]\n"
+" -c <file> set configuration file to file\n"
+" -dnn set debug level to nn\n"
+" -t test - read configuration and exit\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:864
+#: src/tray-monitor/tray-monitor.c:251
#, c-format
-msgid "3909 Error scanning readlabel command: %s\n"
+msgid ""
+"Error: %d Monitor resource defined in %s. You must define one and only one "
+"Monitor resource.\n"
msgstr ""
-#: src/stored/dircmd.c:892
+#: src/tray-monitor/tray-monitor.c:282
#, c-format
-msgid "3001 Volume=%s Slot=%d\n"
+msgid ""
+"No Client, Storage nor Director resource defined in %s\n"
+"Without that I don't how to get status from the File, Storage or Director "
+"Daemon :-(\n"
msgstr ""
-#: src/stored/dircmd.c:921
+#: src/tray-monitor/tray-monitor.c:304
#, c-format
-msgid "3910 Unable to open device %s: ERR=%s\n"
+msgid ""
+"Invalid refresh interval defined in %s\n"
+"This value must be greater or equal to 1 second and less or equal to 10 "
+"minutes (read value: %d).\n"
msgstr ""
-#: src/stored/dircmd.c:931
-#, c-format
-msgid "3911 Device %s is busy reading.\n"
+#: src/tray-monitor/tray-monitor.c:319
+msgid "Open status window..."
msgstr ""
-#: src/stored/dircmd.c:934
-#, c-format
-msgid "3912 Device %s is busy with %d writer(s).\n"
+#: src/tray-monitor/tray-monitor.c:325
+msgid "Exit"
msgstr ""
-#: src/stored/fd_cmds.c:340
-msgid "Error parsing bootstrap file.\n"
+#: src/tray-monitor/tray-monitor.c:337
+msgid "Bacula tray monitor"
msgstr ""
-#: src/stored/job.c:79
-#, c-format
-msgid "Bad Job Command from Director: %s\n"
+#: src/tray-monitor/tray-monitor.c:362
+msgid " (DIR)"
msgstr ""
-#: src/stored/job.c:189
-#, c-format
-msgid "Job name not found: %s\n"
+#: src/tray-monitor/tray-monitor.c:366
+msgid " (FD)"
msgstr ""
-#: src/stored/job.c:211
-msgid "Unable to authenticate File daemon\n"
+#: src/tray-monitor/tray-monitor.c:370
+msgid " (SD)"
msgstr ""
-#: src/stored/job.c:338
-msgid "In free_jcr(), but still attached to device!!!!\n"
+#: src/tray-monitor/tray-monitor.c:383
+msgid "Unknown status."
msgstr ""
-#: src/stored/label.c:74
-msgid "BAD call to read_dev_volume_label\n"
+#: src/tray-monitor/tray-monitor.c:424
+msgid "Refresh interval in seconds: "
msgstr ""
-#: src/stored/label.c:79 src/stored/label.c:120 src/stored/label.c:208
+#: src/tray-monitor/tray-monitor.c:432
+msgid "Refresh now"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:436
+msgid "About"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:440
+msgid "Close"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:460
#, c-format
-msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n"
+msgid "Disconnecting from Director %s:%d\n"
msgstr ""
-#: src/stored/label.c:102
+#: src/tray-monitor/tray-monitor.c:463
#, c-format
-msgid "Couldn't rewind device %s: ERR=%s\n"
+msgid "Disconnecting from Client %s:%d\n"
msgstr ""
-#: src/stored/label.c:140
+#: src/tray-monitor/tray-monitor.c:466
#, c-format
+msgid "Disconnecting from Storage %s:%d\n"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:502 src/tray-monitor/tray-monitor.c:512
+msgid "Bacula Tray Monitor"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:503 src/tray-monitor/tray-monitor.c:513
msgid ""
-"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s"
+"Copyright (C) 2004 Kern Sibbald and John Walker\n"
+"Written by Nicolas Boichat\n"
msgstr ""
-#: src/stored/label.c:145
-msgid "Could not read Volume label from block.\n"
+#: src/tray-monitor/tray-monitor.c:505
+msgid "Version"
msgstr ""
-#: src/stored/label.c:148
+#: src/tray-monitor/tray-monitor.c:509
#, c-format
-msgid "Could not unserialize Volume label: ERR=%s\n"
+msgid ""
+"%s\n"
+"\n"
+"%s\n"
+"%s %s (%s) %s %s %s"
msgstr ""
-#: src/stored/label.c:153
-#, c-format
-msgid "Volume Header Id bad: %s\n"
+#: src/tray-monitor/tray-monitor.c:515
+msgid "Version:"
msgstr ""
-#: src/stored/label.c:180
+#: src/tray-monitor/tray-monitor.c:583
#, c-format
-msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n"
+msgid "Error, currentitem is not a Client or a Storage..\n"
msgstr ""
-#: src/stored/label.c:191
+#: src/tray-monitor/tray-monitor.c:656
#, c-format
-msgid "Volume on %s has bad Bacula label type: %x\n"
+msgid ""
+"Current job: %s\n"
+"Last job: %s"
msgstr ""
-#: src/stored/label.c:272
+#: src/tray-monitor/tray-monitor.c:668
#, c-format
-msgid "Cannot write Volume label to block for device %s\n"
+msgid " (%d errors)"
msgstr ""
-#: src/stored/label.c:393
+#: src/tray-monitor/tray-monitor.c:671
#, c-format
-msgid "Rewind error on device %s: ERR=%s\n"
+msgid " (%d error)"
msgstr ""
-#: src/stored/label.c:398
-#, c-format
-msgid "Truncate error on device %s: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:708
+msgid "No current job."
msgstr ""
-#: src/stored/label.c:420
-#, c-format
-msgid "Unable to write device %s: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:711
+msgid "No last job."
msgstr ""
-#: src/stored/label.c:448
-#, c-format
-msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n"
+#: src/tray-monitor/tray-monitor.c:719
+msgid "Job status: Created"
msgstr ""
-#: src/stored/label.c:451
-#, c-format
-msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n"
+#: src/tray-monitor/tray-monitor.c:724
+msgid "Job status: Running"
msgstr ""
-#: src/stored/label.c:648
-#, c-format
-msgid "Bad session label = %d\n"
+#: src/tray-monitor/tray-monitor.c:728
+msgid "Job status: Blocked"
msgstr ""
-#: src/stored/label.c:666 src/stored/label.c:673
-#, c-format
-msgid "Error writing Session label to %s: %s\n"
+#: src/tray-monitor/tray-monitor.c:733
+msgid "Job status: Terminated"
msgstr ""
-#: src/stored/label.c:707
-#, c-format
-msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n"
+#: src/tray-monitor/tray-monitor.c:738
+msgid "Job status: Terminated in error"
msgstr ""
-#: src/stored/label.c:929
-#, c-format
-msgid "Date written : %s\n"
+#: src/tray-monitor/tray-monitor.c:744
+msgid "Job status: Error"
msgstr ""
-#: src/stored/label.c:934
-#, c-format
-msgid "Date written : %04d-%02d-%02d at %02d:%02d\n"
+#: src/tray-monitor/tray-monitor.c:748
+msgid "Job status: Fatal error"
msgstr ""
-#: src/stored/label.c:954
-msgid "Fresh Volume"
+#: src/tray-monitor/tray-monitor.c:753
+msgid "Job status: Verify differences"
msgstr ""
-#: src/stored/label.c:960
-msgid "Begin Job Session"
+#: src/tray-monitor/tray-monitor.c:758
+msgid "Job status: Canceled"
msgstr ""
-#: src/stored/label.c:963
-msgid "End Job Session"
+#: src/tray-monitor/tray-monitor.c:763
+msgid "Job status: Waiting on File daemon"
msgstr ""
-#: src/stored/label.c:966
-msgid "End of Media"
+#: src/tray-monitor/tray-monitor.c:768
+msgid "Job status: Waiting on the Storage daemon"
msgstr ""
-#: src/stored/label.c:972
-msgid "Unknown"
+#: src/tray-monitor/tray-monitor.c:773
+msgid "Job status: Waiting for new media"
msgstr ""
-#: src/stored/label.c:994
-msgid "End of physical tape.\n"
+#: src/tray-monitor/tray-monitor.c:778
+msgid "Job status: Waiting for Mount"
msgstr ""
-#: src/stored/mount.c:197 src/stored/mount.c:294
-#, c-format
-msgid "Volume \"%s\" not on device %s.\n"
+#: src/tray-monitor/tray-monitor.c:783
+msgid "Job status: Waiting for storage resource"
msgstr ""
-#: src/stored/mount.c:230
+#: src/tray-monitor/tray-monitor.c:788
+msgid "Job status: Waiting for job resource"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:793
+msgid "Job status: Waiting for Client resource"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:798
+msgid "Job status: Waiting for maximum jobs"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:803
+msgid "Job status: Waiting for start time"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:808
+msgid "Job status: Waiting for higher priority jobs to finish"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:813
#, c-format
-msgid ""
-"Director wanted Volume \"%s\".\n"
-" Current Volume \"%s\" not acceptable because:\n"
-" %s"
+msgid "Unknown job status %c."
msgstr ""
-#: src/stored/mount.c:284
+#: src/tray-monitor/tray-monitor.c:814
#, c-format
-msgid "Labeled new Volume \"%s\" on device %s.\n"
+msgid "Job status: Unknown(%c)"
msgstr ""
-#: src/stored/mount.c:289
+#: src/tray-monitor/tray-monitor.c:821
#, c-format
-msgid "Warning device %s not configured to autolabel Volumes.\n"
+msgid "Bad scan : '%s' %d\n"
msgstr ""
-#: src/stored/mount.c:340
+#: src/tray-monitor/tray-monitor.c:859
#, c-format
-msgid "Volume \"%s\" previously written, moving to end of data.\n"
+msgid "Connecting to Director %s:%d"
msgstr ""
-#: src/stored/mount.c:343
+#: src/tray-monitor/tray-monitor.c:865
#, c-format
-msgid "Unable to position to end of data on device %s: ERR=%s\n"
+msgid "Connecting to Client %s:%d\n"
msgstr ""
-#: src/stored/mount.c:355
+#: src/tray-monitor/tray-monitor.c:866
#, c-format
-msgid "Ready to append to end of Volume \"%s\" at file=%d.\n"
+msgid "Connecting to Client %s:%d"
msgstr ""
-#: src/stored/mount.c:358
+#: src/tray-monitor/tray-monitor.c:872
#, c-format
-msgid ""
-"I cannot write on Volume \"%s\" because:\n"
-"The number of files mismatch! Volume=%u Catalog=%u\n"
+msgid "Connecting to Storage %s:%d\n"
msgstr ""
-#: src/stored/mount.c:411
+#: src/tray-monitor/tray-monitor.c:873
#, c-format
-msgid "Marking Volume \"%s\" in Error in Catalog.\n"
+msgid "Connecting to Storage %s:%d"
msgstr ""
-#: src/stored/mount.c:427
+#: src/tray-monitor/tray-monitor.c:878 src/tray-monitor/tray-monitor.c:916
#, c-format
-msgid ""
-"Autochanger Volume \"%s\" not found in slot %d.\n"
-" Setting InChanger to zero in catalog.\n"
+msgid "Error, currentitem is not a Client, a Storage or a Director..\n"
msgstr ""
-#: src/stored/parse_bsr.c:104 src/stored/parse_bsr.c:108
-#, c-format
-msgid ""
-"Bootstrap file error: %s\n"
-" : Line %d, col %d of file %s\n"
-"%s\n"
+#: src/tray-monitor/tray-monitor.c:884
+msgid "Cannot connect to daemon.\n"
msgstr ""
-#: src/stored/parse_bsr.c:130
-#, c-format
-msgid "Cannot open bootstrap file %s: %s\n"
+#: src/tray-monitor/tray-monitor.c:885
+msgid "Cannot connect to daemon."
msgstr ""
-#: src/stored/parse_bsr.c:260
+#: src/tray-monitor/tray-monitor.c:897
#, c-format
-msgid "MediaType %s in bsr at inappropriate place.\n"
+msgid "Authentication error : %s"
msgstr ""
-#: src/stored/read.c:55
-msgid "No Volume names found for restore.\n"
+#: src/tray-monitor/tray-monitor.c:904
+msgid "Opened connection with Director daemon.\n"
msgstr ""
-#: src/stored/read.c:110 src/stored/read.c:125
-#, c-format
-msgid "Error sending to File daemon. ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:905
+msgid "Opened connection with Director daemon."
msgstr ""
-#: src/stored/read_record.c:302
-#, c-format
-msgid "Forward spacing to file:block %u:%u.\n"
+#: src/tray-monitor/tray-monitor.c:908
+msgid "Opened connection with File daemon.\n"
msgstr ""
-#: src/stored/spool.c:91
-msgid "Spooling data ...\n"
+#: src/tray-monitor/tray-monitor.c:909
+msgid "Opened connection with File daemon."
msgstr ""
-#: src/stored/spool.c:150
-#, c-format
-msgid "Open data spool file %s failed: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:912
+msgid "Opened connection with Storage daemon.\n"
msgstr ""
-#: src/stored/spool.c:198
-#, c-format
-msgid "%s spooled data to Volume. Despooling %s bytes ...\n"
+#: src/tray-monitor/tray-monitor.c:913
+msgid "Opened connection with Storage daemon."
msgstr ""
-#: src/stored/spool.c:252 src/stored/spool.c:426 src/stored/spool.c:464
-#, c-format
-msgid "Ftruncate spool file failed: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:948
+msgid "<< Error: BNET_PROMPT signal received. >>\n"
msgstr ""
-#: src/stored/spool.c:303
-#, c-format
-msgid "Spool header read error. ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:953 src/wx-console/console_thread.cpp:442
+msgid "<< Heartbeat signal received, answered. >>\n"
msgstr ""
-#: src/stored/spool.c:307
+#: src/tray-monitor/tray-monitor.c:957
#, c-format
-msgid "Spool header read error. Wanted %u bytes, got %d\n"
+msgid "<< Unexpected signal received : %s >>\n"
msgstr ""
-#: src/stored/spool.c:314
-#, c-format
-msgid "Spool block too big. Max %u bytes, got %u\n"
+#: src/tray-monitor/tray-monitor.c:962
+msgid "<ERROR>\n"
msgstr ""
-#: src/stored/spool.c:320
-#, c-format
-msgid "Spool data read error. Wanted %u bytes, got %d\n"
+#: src/tray-monitor/tray-monitor.c:966
+msgid "Error : BNET_HARDEOF or BNET_ERROR"
msgstr ""
-#: src/stored/spool.c:377
-msgid "User specified spool size reached.\n"
+#: src/tray-monitor/tray-monitor.c:972
+msgid "<STOP>\n"
msgstr ""
-#: src/stored/spool.c:387
-msgid "Spooling data again ...\n"
+#: src/tray-monitor/tray-monitor.c:976
+msgid "Error : Connection closed."
msgstr ""
-#: src/stored/spool.c:418
+#: src/tray-monitor/tray_conf.c:161
#, c-format
-msgid "Error writing header to spool file. ERR=%s\n"
+msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n"
msgstr ""
-#: src/stored/spool.c:432 src/stored/spool.c:470
-msgid "Fatal despooling error."
+#: src/tray-monitor/tray_conf.c:167
+#, c-format
+msgid "Director: name=%s address=%s FDport=%d\n"
msgstr ""
-#: src/stored/spool.c:439
-msgid "Retrying after header spooling error failed.\n"
+#: src/tray-monitor/tray_conf.c:171
+#, c-format
+msgid "Client: name=%s address=%s FDport=%d\n"
msgstr ""
-#: src/stored/spool.c:453
+#: src/tray-monitor/tray_conf.c:175
#, c-format
-msgid "Error writing data to spool file. ERR=%s\n"
+msgid "Storage: name=%s address=%s SDport=%d\n"
msgstr ""
-#: src/stored/spool.c:480
-msgid "Retrying after data spooling error failed.\n"
+#: src/wx-console/authenticate.c:126
+msgid "Bad response to Hello command: ERR="
msgstr ""
-#: src/stored/spool.c:535 src/stored/spool.c:542
+#: src/baconfig.h:52
#, c-format
-msgid "Fseek on attributes file failed: ERR=%s\n"
+msgid "Failed ASSERT: %s\n"
msgstr ""
-#: src/stored/spool.c:552
-#, c-format
-msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n"
+#: src/baconfig.h:59
+msgid "*None*"
msgstr ""
-#: src/stored/spool.c:579
+#: src/wx-console/console_thread.cpp:100
#, c-format
-msgid "fopen attr spool file %s failed: ERR=%s\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Director \"%s\" in config file.\n"
+" At least one CA certificate store is required.\n"
msgstr ""
-#: src/stored/status.c:93
+#: src/wx-console/console_thread.cpp:109
msgid ""
-"\n"
-"Device status:\n"
+"No Director resource defined in config file.\n"
+"Without that I don't how to speak to the Director :-(\n"
msgstr ""
-#: src/stored/status.c:95
+#: src/wx-console/console_thread.cpp:129
#, c-format
-msgid "Autochanger \"%s\" with devices:\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Console \"%s\" in config file.\n"
msgstr ""
-#: src/stored/status.c:109
-#, c-format
-msgid "Device %s is mounted with Volume \"%s\"\n"
+#: src/wx-console/console_thread.cpp:151
+msgid "Error while initializing windows sockets...\n"
msgstr ""
-#: src/stored/status.c:112
-#, c-format
-msgid "Device %s open but no Bacula volume is mounted.\n"
+#: src/wx-console/console_thread.cpp:166
+msgid "Error while cleaning up windows sockets...\n"
msgstr ""
-#: src/stored/status.c:122
-#, c-format
-msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n"
+#: src/wx-console/console_thread.cpp:204
+msgid "Error while initializing library."
msgstr ""
-#: src/stored/status.c:136
-#, c-format
-msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n"
+#: src/wx-console/console_thread.cpp:234
+msgid "Please correct configuration file.\n"
msgstr ""
-#: src/stored/status.c:141
-#, c-format
-msgid " Positioned at File=%s Block=%s\n"
+#: src/wx-console/console_thread.cpp:267
+msgid "Error : Library not initialized\n"
msgstr ""
-#: src/stored/status.c:147
-#, c-format
-msgid "Device %s is not open or does not exist.\n"
+#: src/wx-console/console_thread.cpp:278
+msgid "Error : No configuration file loaded\n"
msgstr ""
-#: src/stored/status.c:149
-#, c-format
-msgid "Device \"%s\" is not open or does not exist.\n"
+#: src/wx-console/console_thread.cpp:288
+msgid "Connecting...\n"
msgstr ""
-#: src/stored/status.c:184
-msgid " Device is BLOCKED. User unmounted.\n"
+#: src/wx-console/console_thread.cpp:304
+msgid "Error : No director defined in config file.\n"
msgstr ""
-#: src/stored/status.c:187
-msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n"
+#: src/wx-console/console_thread.cpp:316
+msgid "Multiple directors found in your config file.\n"
msgstr ""
-#: src/stored/status.c:191
+#: src/wx-console/console_thread.cpp:325
#, c-format
-msgid " Device is BLOCKED waiting for mount of volume \"%s\".\n"
+msgid "Please choose a director (1-%s): "
msgstr ""
-#: src/stored/status.c:194
-msgid " Device is BLOCKED waiting for media.\n"
+#: src/wx-console/console_thread.cpp:397
+msgid "Failed to connect to the director\n"
msgstr ""
-#: src/stored/status.c:198
-msgid " Device is being initialized.\n"
+#: src/wx-console/console_thread.cpp:407
+msgid "Connected\n"
msgstr ""
-#: src/stored/status.c:201
-msgid " Device is blocked labeling a Volume.\n"
+#: src/wx-console/console_thread.cpp:445
+msgid "<< Unexpected signal received : "
msgstr ""
-#: src/stored/status.c:209
-#, c-format
-msgid " Slot %d is loaded in drive %d.\n"
+#: src/wx-console/console_thread.cpp:463
+msgid "Connection terminated\n"
+msgstr ""
+
+#: src/wx-console/main.cpp:96
+msgid "Bacula wx-console"
msgstr ""
-#: src/stored/status.c:212
+#: src/wx-console/main.cpp:101 src/wx-console/wxbmainframe.cpp:248
#, c-format
-msgid " Drive %d is not loaded.\n"
+msgid "Welcome to bacula wx-console %s (%s)!\n"
msgstr ""
-#: src/stored/status.c:231
-msgid "Device state:\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:41
+msgid "Config file editor"
msgstr ""
-#: src/stored/status.c:268
-#, c-format
-msgid "%s Job %s waiting for Client connection.\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:57
+msgid "Save and close"
msgstr ""
-#: src/stored/status.c:280
-#, c-format
-msgid "%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:58
+msgid "Close without saving"
msgstr ""
-#: src/stored/status.c:331
-msgid " JobId Level Files Bytes Status Finished Name \n"
+#: src/wx-console/wxbconfigfileeditor.cpp:69
+msgid "# Bacula wx-console Configuration File\n"
msgstr ""
-#: src/stored/stored.c:66
+#: src/wx-console/wxbconfigfileeditor.cpp:100
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: stored [options] [-c config_file] [config_file]\n"
-" -c <file> use <file> as configuration file\n"
-" -dnn set debug level to nn\n"
-" -f run in foreground (for debugging)\n"
-" -g <group> set groupid to group\n"
-" -p proceed despite I/O errors\n"
-" -s no signals (for debugging)\n"
-" -t test - read config and exit\n"
-" -u <user> userid to <user>\n"
-" -v verbose user messages\n"
-" -? print this message.\n"
-"\n"
+msgid "Unable to write to %s\n"
msgstr ""
-#: src/stored/stored.c:217
-msgid "Volume Session Time is ZERO!\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:101
+msgid "Error while saving"
msgstr ""
-#: src/stored/stored.c:230
-#, c-format
-msgid "Unable to create thread. ERR=%s\n"
+#: src/wx-console/wxbconfigpanel.cpp:184
+msgid "Apply"
msgstr ""
-#: src/stored/stored.c:269
-#, c-format
-msgid "Only one Storage resource permitted in %s\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:61
+#: src/wx-console/wxbhistorytextctrl.cpp:132
+#: src/wx-console/wxbmainframe.cpp:272
+msgid "Type your command below:"
msgstr ""
-#: src/stored/stored.c:274
-#, c-format
-msgid "No Director resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:96
+msgid "Unknown command."
msgstr ""
-#: src/stored/stored.c:279
-#, c-format
-msgid "No Device resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:105
+msgid "Possible completions: "
msgstr ""
-#: src/stored/stored.c:287
-#, c-format
-msgid "No Messages resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:258
+#: src/wx-console/wxbrestorepanel.cpp:1861
+#: src/wx-console/wxbrestorepanel.cpp:1890
+msgid "Enter restore mode"
msgstr ""
-#: src/stored/stored.c:314
-#, c-format
-msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n"
+#: src/wx-console/wxbrestorepanel.cpp:261
+msgid "Cancel restore"
msgstr ""
-#: src/stored/stored.c:320
-#, c-format
-msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n"
+#: src/wx-console/wxbrestorepanel.cpp:287
+#: src/wx-console/wxbrestorepanel.cpp:341
+msgid "Add"
msgstr ""
-#: src/stored/stored.c:326
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Storage \"%s\" in %s. At least one CA certificate store is required when "
-"using \"TLS Verify Peer\".\n"
+#: src/wx-console/wxbrestorepanel.cpp:289
+#: src/wx-console/wxbrestorepanel.cpp:343
+msgid "Remove"
msgstr ""
-#: src/stored/stored.c:414
-#, c-format
-msgid "No Changer Name given for device %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:291
+#: src/wx-console/wxbrestorepanel.cpp:345
+msgid "Refresh"
msgstr ""
-#: src/stored/stored.c:420
-#, c-format
-msgid "No Changer Command given for device %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:310
+msgid "M"
msgstr ""
-#: src/stored/stored.c:432
-#, c-format
-msgid ""
-"Media Type not the same for all devices in changer %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:326
+msgid "Perm."
msgstr ""
-#: src/stored/stored.c:493
-#, c-format
-msgid "Could not initialize %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:359
+#: src/wx-console/wxbrestorepanel.cpp:372
+#: src/wx-console/wxbrestorepanel.cpp:524
+#: src/wx-console/wxbrestorepanel.cpp:534
+#: src/wx-console/wxbrestorepanel.cpp:537
+#: src/wx-console/wxbrestorepanel.cpp:1732
+#: src/wx-console/wxbrestorepanel.cpp:1812
+msgid "Job Name"
msgstr ""
-#: src/stored/stored.c:506
-#, c-format
-msgid "Could not open device %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:361
+#: src/wx-console/wxbrestorepanel.cpp:377
+#: src/wx-console/wxbrestorepanel.cpp:476
+#: src/wx-console/wxbrestorepanel.cpp:477
+#: src/wx-console/wxbrestorepanel.cpp:487
+#: src/wx-console/wxbrestorepanel.cpp:488
+#: src/wx-console/wxbrestorepanel.cpp:1101
+#: src/wx-console/wxbrestorepanel.cpp:1768
+#: src/wx-console/wxbrestorepanel.cpp:1827
+msgid "Fileset"
msgstr ""
-#: src/stored/stored.c:523
-#, c-format
-msgid "Could not mount device %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:364
+#: src/wx-console/wxbrestorepanel.cpp:1168
+#: src/wx-console/wxbrestorepanel.cpp:1183
+#: src/wx-console/wxbrestorepanel.cpp:1185
+#: src/wx-console/wxbrestorepanel.cpp:1193
+#: src/wx-console/wxbrestorepanel.cpp:1195
+#: src/wx-console/wxbrestorepanel.cpp:1212
+#: src/wx-console/wxbrestorepanel.cpp:1219
+#: src/wx-console/wxbrestorepanel.cpp:1759
+#: src/wx-console/wxbrestorepanel.cpp:1885
+msgid "Before"
msgstr ""
-#: src/stored/stored_conf.c:188
-#, c-format
-msgid "Warning: no \"%s\" resource (%d) defined.\n"
+#: src/wx-console/wxbrestorepanel.cpp:366
+msgid "Please configure parameters concerning files to restore :"
msgstr ""
-#: src/stored/stored_conf.c:307
-#, c-format
-msgid "Warning: unknown resource type %d\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+#: src/wx-console/wxbrestorepanel.cpp:1820
+msgid "always"
msgstr ""
-#: src/stored/stored_conf.c:496
-#, c-format
-msgid "\"%s\" item is required in \"%s\" resource, but not found.\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+msgid "if newer"
msgstr ""
-#: src/stored/stored_conf.c:502
-#, c-format
-msgid "Too many items in \"%s\" resource\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+msgid "if older"
msgstr ""
-#: src/stored/stored_conf.c:607
-#, c-format
-msgid ""
-"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+#: src/wx-console/wxbrestorepanel.cpp:1823
+msgid "never"
msgstr ""
-#: src/stored/ansi_label.c:83
-#, c-format
-msgid "Read error on device %s in ANSI label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:383
+msgid "Please configure parameters concerning files restoration :"
msgstr ""
-#: src/stored/ansi_label.c:93
-msgid "Insane! End of tape while reading ANSI label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:448
+msgid "Getting parameters list."
msgstr ""
-#: src/stored/ansi_label.c:117
-msgid "No VOL1 label while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:456
+msgid "Error : no clients returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:148
-msgid "No HDR1 label while reading ANSI label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:480
+msgid "Error : no filesets returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:154
-#, c-format
-msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n"
+#: src/wx-console/wxbrestorepanel.cpp:504
+msgid "Error : no storage returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:165
-msgid "No HDR2 label while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:527
+#: src/wx-console/wxbrestorepanel.cpp:551
+msgid "Error : no jobs returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:179
-msgid "Unknown or bad ANSI/IBM label record.\n"
+#: src/wx-console/wxbrestorepanel.cpp:537
+msgid "RestoreFiles"
msgstr ""
-#: src/stored/ansi_label.c:186
-msgid "Too many records in while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:572
+msgid "Please configure your restore parameters."
msgstr ""
-#: src/stored/ansi_label.c:285
-#, c-format
-msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n"
+#: src/wx-console/wxbrestorepanel.cpp:583
+msgid "Building restore tree..."
msgstr ""
-#: src/stored/ansi_label.c:302
-#, c-format
-msgid "Could not write ANSI VOL1 label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:622
+msgid "Error while starting restore: "
msgstr ""
-#: src/stored/ansi_label.c:340 src/stored/ansi_label.c:369
-#, c-format
-msgid "Could not write ANSI HDR1 label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:712
+msgid ""
+"Right click on a file or on a directory, or double-click on its mark to add "
+"it to the restore list."
msgstr ""
-#: src/stored/ansi_label.c:345 src/stored/ansi_label.c:376
-msgid "Could not write ANSI HDR1 label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:729
+msgid " files selected to be restored."
msgstr ""
-#: src/stored/ansi_label.c:381
+#: src/wx-console/wxbrestorepanel.cpp:734
+msgid " file selected to be restored."
+msgstr ""
+
+#: src/wx-console/wxbrestorepanel.cpp:741
#, c-format
-msgid "Error writing EOF to tape. ERR=%s"
+msgid "Please configure your restore (%s files selected to be restored)..."
msgstr ""
-#: src/stored/ansi_label.c:386
-msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n"
+#: src/wx-console/wxbrestorepanel.cpp:751
+msgid "Restore failed : no file selected.\n"
msgstr ""
-#: src/stored/dvd.c:342
-#, c-format
-msgid "Remaining free space %s on %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:752
+msgid "Restore failed : no file selected."
msgstr ""
-#: src/stored/dvd.c:411
-#, c-format
-msgid "Next Volume part already exists on DVD. Cannot continue: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:762
+msgid "Restoring, please wait..."
msgstr ""
-#: src/stored/dvd.c:429
-#, c-format
-msgid "open_next_part can't unlink existing part %s, ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:775
+msgid "Job started. JobId="
msgstr ""
-#: src/stored/dvd.c:633
-#, c-format
-msgid "Unable to write part %s: ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:777
+msgid "Restore started, jobid="
msgstr ""
-#: src/stored/wait.c:178 src/stored/wait.c:236
-#, c-format
-msgid "Job %s waiting to reserve a device.\n"
+#: src/wx-console/wxbrestorepanel.cpp:781
+msgid "Job failed."
msgstr ""
-#: src/stored/pythonsd.c:59
-msgid "SDName"
+#: src/wx-console/wxbrestorepanel.cpp:782
+msgid "Restore failed, please look at messages.\n"
msgstr ""
-#: src/stored/reserve.c:344 src/stored/reserve.c:361
-#, c-format
-msgid "Failed command: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:783
+msgid "Restore failed, please look at messages in console."
msgstr ""
-#: src/stored/reserve.c:346
-#, c-format
-msgid ""
-"\n"
-" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD "
-"Device resources.\n"
+#: src/wx-console/wxbrestorepanel.cpp:789
+#: src/wx-console/wxbrestorepanel.cpp:790
+msgid "Failed to retrieve jobid.\n"
msgstr ""
-#: src/stored/reserve.c:528
-#, c-format
-msgid "3926 Could not get dcr for device: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:816
+msgid ""
+"Restore is scheduled in more than two minutes, wx-console will not wait for "
+"its completion.\n"
msgstr ""
-#: src/stored/reserve.c:568 src/stored/reserve.c:623
-#, c-format
-msgid "Device %s is BLOCKED due to user unmount.\n"
+#: src/wx-console/wxbrestorepanel.cpp:817
+msgid ""
+"Restore is scheduled in more than two minutes, wx-console will not wait for "
+"its completion."
msgstr ""
-#: src/stored/reserve.c:576
-#, c-format
-msgid "Device %s is busy.\n"
+#: src/wx-console/wxbrestorepanel.cpp:841
+msgid "Restore job created, but not yet running."
msgstr ""
-#: src/stored/reserve.c:631
+#: src/wx-console/wxbrestorepanel.cpp:846
#, c-format
-msgid "Device %s is busy writing on another Volume.\n"
+msgid "Restore job running, please wait (%d of %d files restored)..."
msgstr ""
-#: src/stored/reserve.c:705
-#, c-format
-msgid "Wanted Pool \"%s\", but device %s is using Pool \"%s\" .\n"
+#: src/wx-console/wxbrestorepanel.cpp:850
+msgid "Restore job terminated successfully."
msgstr ""
-#: src/stored/reserve.c:711
-msgid "Logic error!!!! Should not get here.\n"
+#: src/wx-console/wxbrestorepanel.cpp:851
+msgid "Restore job terminated successfully.\n"
msgstr ""
-#: src/tools/dbcheck.c:154
-msgid ""
-"Warning skipping the additional parameters for working directory/dbname/user/"
-"password/host.\n"
+#: src/wx-console/wxbrestorepanel.cpp:856
+msgid "Restore job terminated in error, see messages in console."
+msgstr ""
+
+#: src/wx-console/wxbrestorepanel.cpp:857
+msgid "Restore job terminated in error, see messages.\n"
msgstr ""
-#: src/tools/dbcheck.c:195
-msgid "Wrong number of arguments.\n"
+#: src/wx-console/wxbrestorepanel.cpp:862
+msgid "Restore job reported a non-fatal error."
msgstr ""
-#: src/tools/dbcheck.c:200
-msgid "Working directory not supplied.\n"
+#: src/wx-console/wxbrestorepanel.cpp:866
+msgid "Restore job reported a fatal error."
msgstr ""
-#: src/tools/dbcheck.c:272
-#, c-format
-msgid ""
-"\n"
-" 1) Toggle modify database flag\n"
-" 2) Toggle verbose flag\n"
-" 3) Repair bad Filename records\n"
-" 4) Repair bad Path records\n"
-" 5) Eliminate duplicate Filename records\n"
-" 6) Eliminate duplicate Path records\n"
-" 7) Eliminate orphaned Jobmedia records\n"
-" 8) Eliminate orphaned File records\n"
-" 9) Eliminate orphaned Path records\n"
-" 10) Eliminate orphaned Filename records\n"
-" 11) Eliminate orphaned FileSet records\n"
-" 12) Eliminate orphaned Client records\n"
-" 13) Eliminate orphaned Job records\n"
-" 14) Eliminate all Admin records\n"
-" 15) Eliminate all Restore records\n"
-" 16) All (3-15)\n"
-" 17) Quit\n"
+#: src/wx-console/wxbrestorepanel.cpp:871
+msgid "Restore job cancelled by user."
msgstr ""
-#: src/tools/dbcheck.c:291
-#, c-format
-msgid ""
-"\n"
-" 1) Toggle modify database flag\n"
-" 2) Toggle verbose flag\n"
-" 3) Check for bad Filename records\n"
-" 4) Check for bad Path records\n"
-" 5) Check for duplicate Filename records\n"
-" 6) Check for duplicate Path records\n"
-" 7) Check for orphaned Jobmedia records\n"
-" 8) Check for orphaned File records\n"
-" 9) Check for orphaned Path records\n"
-" 10) Check for orphaned Filename records\n"
-" 11) Check for orphaned FileSet records\n"
-" 12) Check for orphaned Client records\n"
-" 13) Check for orphaned Job records\n"
-" 14) Check for all Admin records\n"
-" 15) Check for all Restore records\n"
-" 16) All (3-15)\n"
-" 17) Quit\n"
+#: src/wx-console/wxbrestorepanel.cpp:872
+msgid "Restore job cancelled by user.\n"
msgstr ""
-#: src/tools/dbcheck.c:311
-msgid "Select function number: "
+#: src/wx-console/wxbrestorepanel.cpp:877
+msgid "Restore job is waiting on File daemon."
msgstr ""
-#: src/tools/dbcheck.c:317
-#, c-format
-msgid "Database will %sbe modified.\n"
+#: src/wx-console/wxbrestorepanel.cpp:881
+msgid "Restore job is waiting for new media."
msgstr ""
-#: src/tools/dbcheck.c:317
-msgid "NOT "
+#: src/wx-console/wxbrestorepanel.cpp:885
+msgid "Restore job is waiting for storage resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-#, c-format
-msgid "Verbose is %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:889
+msgid "Restore job is waiting for job resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-msgid "On"
+#: src/wx-console/wxbrestorepanel.cpp:893
+msgid "Restore job is waiting for Client resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-msgid "Off"
+#: src/wx-console/wxbrestorepanel.cpp:897
+msgid "Restore job is waiting for maximum jobs."
msgstr ""
-#: src/tools/dbcheck.c:404
-#, c-format
-msgid "JobId=%s Name=\"%s\" StartTime=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:901
+msgid "Restore job is waiting for start time."
msgstr ""
-#: src/tools/dbcheck.c:412
-#, c-format
-msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:905
+msgid "Restore job is waiting for higher priority jobs to finish."
msgstr ""
-#: src/tools/dbcheck.c:419
-#, c-format
-msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:954
+msgid ""
+"The restore job has not been started within one minute, wx-console will not "
+"wait for its completion anymore.\n"
msgstr ""
-#: src/tools/dbcheck.c:426
-#, c-format
-msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:955
+msgid ""
+"The restore job has not been started within one minute, wx-console will not "
+"wait for its completion anymore."
msgstr ""
-#: src/tools/dbcheck.c:433
-#, c-format
-msgid "Orphaned ClientId=%s Name=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:965
+msgid "Restore done successfully.\n"
msgstr ""
-#: src/tools/dbcheck.c:613
-#, c-format
-msgid "Checking for duplicate Path entries.\n"
+#: src/wx-console/wxbrestorepanel.cpp:966
+msgid "Restore done successfully."
msgstr ""
-#: src/tools/testfind.c:49
-#, c-format
-msgid ""
-"\n"
-"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n"
-" -a print extended attributes (Win32 debug)\n"
-" -dnn set debug level to nn\n"
-" -e specify file of exclude patterns\n"
-" -i specify file of include patterns\n"
-" - read pattern(s) from stdin\n"
-" -? print this message.\n"
-"\n"
-"Patterns are used for file inclusion -- normally directories.\n"
-"Debug level >= 1 prints each file found.\n"
-"Debug level >= 10 prints path/file for catalog.\n"
-"Errors are always printed.\n"
-"Files/paths truncated is the number of files/paths with len > 255.\n"
-"Truncation is only in the catalog.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1037
+msgid "Applying restore configuration changes..."
msgstr ""
-#: src/tools/testfind.c:156
-#, c-format
-msgid ""
-"Total files : %d\n"
-"Max file length: %d\n"
-"Max path length: %d\n"
-"Files truncated: %d\n"
-"Paths truncated: %d\n"
-"Hard links : %d\n"
+#: src/wx-console/wxbrestorepanel.cpp:1088
+msgid "Failed to find the selected client."
msgstr ""
-#: src/tools/testfind.c:236 src/tools/testls.c:174
-#, c-format
-msgid "Err: Could not access %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1103
+msgid "Failed to find the selected fileset."
msgstr ""
-#: src/tools/testfind.c:239 src/tools/testls.c:177
-#, c-format
-msgid "Err: Could not follow ff->link %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1118
+msgid "Failed to find the selected storage."
msgstr ""
-#: src/tools/testfind.c:242 src/tools/testls.c:180
-#, c-format
-msgid "Err: Could not stat %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1135
+#: src/wx-console/wxbrestorepanel.cpp:1801
+msgid "Run Restore job"
msgstr ""
-#: src/tools/testfind.c:245 src/tools/testls.c:183
-#, c-format
-msgid "Skip: File not saved. No change. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1151
+msgid "Restore configuration changes were applied."
msgstr ""
-#: src/tools/testfind.c:248 src/tools/testls.c:186
-#, c-format
-msgid "Err: Attempt to backup archive. Not saved. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1160
+msgid "Restore cancelled.\n"
msgstr ""
-#: src/tools/testfind.c:251 src/tools/testls.c:195
-#, c-format
-msgid "Err: Could not open directory %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1161
+msgid "Restore cancelled."
msgstr ""
-#: src/tools/testfind.c:254 src/tools/testls.c:198
-#, c-format
-msgid "Err: Unknown file ff->type %d: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1182
+msgid "No results to list."
msgstr ""
-#: src/tools/testfind.c:304
-#, c-format
-msgid "===== Filename truncated to 255 chars: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1184
+msgid "No backup found for this client."
msgstr ""
-#: src/tools/testfind.c:321
-#, c-format
-msgid "========== Path name truncated to 255 chars: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1191
+msgid "ERROR"
msgstr ""
-#: src/tools/testfind.c:330
-#, c-format
-msgid "========== Path length is zero. File=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1192
+msgid "Query failed"
msgstr ""
-#: src/tools/testls.c:45
-#, c-format
-msgid ""
-"\n"
-"Usage: testls [-d debug_level] [-] [pattern1 ...]\n"
-" -a print extended attributes (Win32 debug)\n"
-" -dnn set debug level to nn\n"
-" -e specify file of exclude patterns\n"
-" -i specify file of include patterns\n"
-" - read pattern(s) from stdin\n"
-" -? print this message.\n"
-"\n"
-"Patterns are file inclusion -- normally directories.\n"
-"Debug level >= 1 prints each file found.\n"
-"Debug level >= 10 prints path/file for catalog.\n"
-"Errors always printed.\n"
-"Files/paths truncated is number with len > 255.\n"
-"Truncation is only in catalog.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1194
+msgid "Cannot get previous backups list, see console."
msgstr ""
-#: src/tools/testls.c:189
-#, c-format
-msgid "Recursion turned off. Directory not entered. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1811
+msgid "JobName:"
msgstr ""
-#: src/tools/testls.c:192
-#, c-format
-msgid "Skip: File system change prohibited. Directory not entered. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1815
+msgid "Where:"
msgstr ""
-#: src/tools/fstype.c:34
-#, c-format
-msgid ""
-"\n"
-"Usage: fstype [-d debug_level] path ...\n"
-"\n"
-" Print the file system type a given file/directory is on.\n"
-" The following options are supported:\n"
-"\n"
-" -v print both path and file system type.\n"
-" -? print this message.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1818
+msgid "Replace:"
msgstr ""
-#: src/tray-monitor/authenticate.c:78
-msgid ""
-"Director authorization problem.\n"
-"Most likely the passwords do not agree.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1821
+msgid "ifnewer"
msgstr ""
-#: src/tray-monitor/authenticate.c:127
-msgid ""
-"Director and Storage daemon passwords or names not the same.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1822
+msgid "ifolder"
msgstr ""
-#: src/tray-monitor/authenticate.c:172
-msgid ""
-"Director and File daemon passwords or names not the same.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1826
+msgid "FileSet:"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:102
-#, c-format
-msgid ""
-"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat (2004)\n"
-"\n"
-"Version: "
+#: src/wx-console/wxbrestorepanel.cpp:1942
+msgid "Restoring..."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:104
-#, c-format
-msgid ""
-") %s %s %s\n"
-"\n"
-"Usage: tray-monitor [-c config_file] [-d debug_level]\n"
-" -c <file> set configuration file to file\n"
-" -dnn set debug level to nn\n"
-" -t test - read configuration and exit\n"
-" -? print this message.\n"
-"\n"
+#: src/wx-console/wxbmainframe.cpp:227
+msgid "&About...\tF1"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:248
-#, c-format
-msgid ""
-"Error: %d Monitor resource defined in %s. You must define one and only one "
-"Monitor resource.\n"
+#: src/wx-console/wxbmainframe.cpp:227
+msgid "Show about dialog"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:279
-#, c-format
-msgid ""
-"No Client, Storage nor Director resource defined in %s\n"
-"Without that I don't how to get status from the File, Storage or Director "
-"Daemon :-(\n"
+#: src/wx-console/wxbmainframe.cpp:229 src/wx-console/wxbmainframe.cpp:590
+msgid "Connect to the director"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:301
-#, c-format
-msgid ""
-"Invalid refresh interval defined in %s\n"
-"This value must be greater or equal to 1 second and less or equal to 10 "
-"minutes (read value: %d).\n"
+#: src/wx-console/wxbmainframe.cpp:230
+msgid "Disconnect"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:359
-msgid " (DIR)"
+#: src/wx-console/wxbmainframe.cpp:230
+msgid "Disconnect of the director"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:363
-msgid " (FD)"
+#: src/wx-console/wxbmainframe.cpp:232
+msgid "Change of configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:367
-msgid " (SD)"
+#: src/wx-console/wxbmainframe.cpp:232
+msgid "Change your default configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:380
-msgid "Unknown status."
+#: src/wx-console/wxbmainframe.cpp:233
+msgid "Edit your configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:421
-msgid "Refresh interval in seconds: "
+#: src/wx-console/wxbmainframe.cpp:235
+msgid "E&xit\tAlt-X"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:429
-msgid "Refresh now"
+#: src/wx-console/wxbmainframe.cpp:235
+msgid "Quit this program"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:433
-msgid "About"
+#: src/wx-console/wxbmainframe.cpp:239
+msgid "&File"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:437
-msgid "Close"
+#: src/wx-console/wxbmainframe.cpp:240
+msgid "&Help"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:496
-msgid ""
-"<span size='x-large' weight='bold'>Bacula Tray Monitor</span>\n"
-"\n"
-"Copyright (C) 2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat\n"
-"\n"
-"<small>Version: "
+#: src/wx-console/wxbmainframe.cpp:257
+msgid "Console"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:499
-#, c-format
-msgid ") %s %s %s</small>"
+#: src/wx-console/wxbmainframe.cpp:264
+msgid ""
+"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:503
+#: src/wx-console/wxbmainframe.cpp:268
msgid ""
-"Bacula Tray Monitor\n"
-"\n"
-"Copyright (C) 2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat\n"
-"\n"
-"Version: "
+"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode "
+"support when handling non-ASCII filenames: Every non-ASCII character in such "
+"filenames will be replaced by an interrogation mark.\n"
+"If this behaviour disturbs you, please build wx-console against a Unicode "
+"version of wxWidgets for GTK+ 2.0.\n"
+"---\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:506
-#, c-format
-msgid ") %s %s %s"
+#: src/wx-console/wxbmainframe.cpp:279
+msgid "Send"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:690
-msgid "No current job."
+#: src/wx-console/wxbmainframe.cpp:356 src/wx-console/wxbmainframe.cpp:368
+msgid "Error while parsing command line arguments, using defaults.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:693
-msgid "No last job."
+#: src/wx-console/wxbmainframe.cpp:357 src/wx-console/wxbmainframe.cpp:369
+msgid "Usage: wx-console [-c configfile] [-w tmp]\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:701
+#: src/wx-console/wxbmainframe.cpp:397
#, c-format
-msgid "Job status: Created (%d error%s)"
+msgid ""
+"It seems that it is the first time you run wx-console.\n"
+"This file (%s) has been choosen as default configuration file.\n"
+"Do you want to edit it? (if you click No you will have to select another "
+"file)"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:705
-#, c-format
-msgid "Job status: Running (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:401
+msgid "First run"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:708
+#: src/wx-console/wxbmainframe.cpp:418
#, c-format
-msgid "Job status: Blocked (%d error%s)"
+msgid ""
+"Unable to read %s\n"
+"Error: %s\n"
+"Do you want to choose another one? (Press no to edit this file)"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:712
-#, c-format
-msgid "Job status: Terminated (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:421
+msgid "Unable to read configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:716
-#, c-format
-msgid "Job status: Terminated in error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:433
+msgid "Please choose a configuration file to use"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:721
-#, c-format
-msgid "Job status: Error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:446
+msgid "This configuration file has been successfully read, use it as default?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:724
-#, c-format
-msgid "Job status: Fatal error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:447
+msgid "Configuration file read successfully"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:728
+#: src/wx-console/wxbmainframe.cpp:457
#, c-format
-msgid "Job status: Verify differences (%d error%s)"
+msgid "Using this configuration file: %s\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:732
-#, c-format
-msgid "Job status: Canceled (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:462
+msgid "Connecting to the director..."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:736
-#, c-format
-msgid "Job status: Waiting on File daemon (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:477
+msgid "Failed to unregister a data parser !"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:740
-#, c-format
-msgid "Job status: Waiting on the Storage daemon (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:485
+msgid "Quitting.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:744
-#, c-format
-msgid "Job status: Waiting for new media (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:500
+msgid ""
+"Welcome to Bacula wx-console.\n"
+"Written by Nicolas Boichat <nicolas@boichat.ch>\n"
+"(C) 2004 Kern Sibbald and John Walker\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:748
-#, c-format
-msgid "Job status: Waiting for Mount (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:502
+msgid "About Bacula wx-console"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:752
-#, c-format
-msgid "Job status: Waiting for storage resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:508
+msgid "Please choose your default configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:756
-#, c-format
-msgid "Job status: Waiting for job resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:512
+msgid "Use this configuration file as default?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:760
-#, c-format
-msgid "Job status: Waiting for Client resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:513
+msgid "Configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:764
-#, c-format
-msgid "Job status: Waiting for maximum jobs (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:577
+msgid "Console thread terminated."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:768
-#, c-format
-msgid "Job status: Waiting for start time (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:581
+msgid "Connection to the director lost. Quit program?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:772
-#, c-format
-msgid "Job status: Waiting for higher priority jobs to finish (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:582
+msgid "Connection lost"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:777
-#, c-format
-msgid "Job status: Unknown(%c) (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:598
+msgid "Connected to the director."
msgstr ""
-#: src/wx-console/console_thread.cpp:100
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Director \"%s\" in config file.\n"
-" At least one CA certificate store is required.\n"
+#: src/wx-console/wxbmainframe.cpp:612
+msgid "Reconnect"
msgstr ""
-#: src/wx-console/console_thread.cpp:109
-msgid ""
-"No Director resource defined in config file.\n"
-"Without that I don't how to speak to the Director :-(\n"
+#: src/wx-console/wxbmainframe.cpp:613
+msgid "Reconnect to the director"
msgstr ""
-#: src/wx-console/console_thread.cpp:129
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Console \"%s\" in config file.\n"
+#: src/wx-console/wxbmainframe.cpp:623
+msgid "Disconnected of the director."
msgstr ""
-#: src/wx-console/console_thread.cpp:235
-msgid "Please correct configuration file.\n"
+#: src/wx-console/wxbmainframe.cpp:642
+msgid "Unexpected question has been received.\n"
+msgstr ""
+
+#: src/wx-console/wxbmainframe.cpp:665 src/wx-console/wxbmainframe.cpp:680
+msgid "wx-console: unexpected director's question."
msgstr ""
msgstr ""
"Project-Id-Version: Bacula 1.38\n"
"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2005-08-08 17:56+0200\n"
+"POT-Creation-Date: 2005-08-10 18:10+0200\n"
"PO-Revision-Date: 2005-08-08 17:50+0200\n"
"Last-Translator: <fparacchini@alteanet.it>\n"
"Language-Team: Italian <bacula-devel@lists.sourceforge.net>\n"
msgid "Create DB Job record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:91 src/dird/expand.c:145 src/dird/ua_cmds.c:422
-#: src/dird/ua_prune.c:455 src/dird/ua_purge.c:171 src/dird/ua_run.c:643
-#: src/dird/ua_select.c:228 src/dird/ua_select.c:249 src/dird/pythondir.c:61
-#: src/stored/pythonsd.c:58
+#: src/cats/sql_create.c:91 src/dird/dird_conf.c:532 src/dird/expand.c:145
+#: src/dird/ua_cmds.c:422 src/dird/ua_prune.c:455 src/dird/ua_purge.c:171
+#: src/dird/ua_run.c:643 src/dird/ua_select.c:228 src/dird/ua_select.c:249
+#: src/dird/pythondir.c:61 src/stored/pythonsd.c:58
msgid "Job"
msgstr ""
#: src/cats/sql_create.c:201 src/dird/expand.c:152 src/dird/ua_run.c:650
#: src/dird/ua_select.c:464 src/dird/ua_select.c:554 src/dird/ua_update.c:356
#: src/dird/ua_update.c:426 src/dird/pythondir.c:67 src/stored/pythonsd.c:64
+#: src/wx-console/wxbrestorepanel.cpp:362
+#: src/wx-console/wxbrestorepanel.cpp:548
+#: src/wx-console/wxbrestorepanel.cpp:558
+#: src/wx-console/wxbrestorepanel.cpp:1754
msgid "Pool"
msgstr ""
msgid "Create DB Storage record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:306 src/dird/expand.c:153 src/dird/ua_cmds.c:829
-#: src/dird/ua_run.c:642 src/dird/ua_select.c:152 src/dird/ua_status.c:128
-#: src/dird/pythondir.c:68
+#: src/cats/sql_create.c:306 src/dird/expand.c:153 src/dird/ua_run.c:642
+#: src/dird/ua_select.c:152 src/dird/ua_status.c:128 src/dird/pythondir.c:68
+#: src/wx-console/wxbrestorepanel.cpp:363
+#: src/wx-console/wxbrestorepanel.cpp:379
+#: src/wx-console/wxbrestorepanel.cpp:500
+#: src/wx-console/wxbrestorepanel.cpp:501
+#: src/wx-console/wxbrestorepanel.cpp:511
+#: src/wx-console/wxbrestorepanel.cpp:512
+#: src/wx-console/wxbrestorepanel.cpp:1116
+#: src/wx-console/wxbrestorepanel.cpp:1765
+#: src/wx-console/wxbrestorepanel.cpp:1831
msgid "Storage"
msgstr ""
msgid "Create DB Client record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:507 src/dird/expand.c:150 src/dird/ua_cmds.c:830
-#: src/dird/ua_purge.c:173 src/dird/ua_purge.c:178 src/dird/ua_run.c:645
-#: src/dird/ua_select.c:272 src/dird/ua_select.c:379 src/dird/ua_status.c:129
-#: src/dird/pythondir.c:65 src/filed/pythonfd.c:77 src/stored/pythonsd.c:63
+#: src/cats/sql_create.c:507 src/dird/expand.c:150 src/dird/ua_purge.c:173
+#: src/dird/ua_purge.c:178 src/dird/ua_run.c:645 src/dird/ua_select.c:272
+#: src/dird/ua_select.c:379 src/dird/ua_status.c:129 src/dird/pythondir.c:65
+#: src/filed/pythonfd.c:77 src/stored/pythonsd.c:63
+#: src/wx-console/wxbrestorepanel.cpp:360
+#: src/wx-console/wxbrestorepanel.cpp:378
+#: src/wx-console/wxbrestorepanel.cpp:452
+#: src/wx-console/wxbrestorepanel.cpp:453
+#: src/wx-console/wxbrestorepanel.cpp:463
+#: src/wx-console/wxbrestorepanel.cpp:464
+#: src/wx-console/wxbrestorepanel.cpp:707
+#: src/wx-console/wxbrestorepanel.cpp:1086
+#: src/wx-console/wxbrestorepanel.cpp:1173
+#: src/wx-console/wxbrestorepanel.cpp:1758
+#: src/wx-console/wxbrestorepanel.cpp:1760
+#: src/wx-console/wxbrestorepanel.cpp:1829
+#: src/wx-console/wxbrestorepanel.cpp:1884
msgid "Client"
msgstr ""
msgid "Create DB FileSet record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:618 src/dird/ua_restore.c:1010 src/dird/ua_run.c:644
+#: src/cats/sql_create.c:618 src/dird/ua_restore.c:1035 src/dird/ua_run.c:644
#: src/dird/ua_select.c:173
msgid "FileSet"
msgstr ""
msgid "Create db File record %s failed. ERR=%s"
msgstr ""
-#: src/cats/sql_create.c:738
+#: src/cats/sql_create.c:738 src/gnome2-console/restore.c:121
msgid "File"
msgstr ""
msgid "Create db Filename record %s failed. ERR=%s\n"
msgstr ""
-#: src/cats/sql_create.c:856
+#: src/cats/sql_create.c:856 src/wx-console/wxbrestorepanel.cpp:314
msgid "Filename"
msgstr ""
msgid "Unable to open Database=%s. ERR=%s\n"
msgstr ""
-#: src/cats/sqlite.c:162
+#: src/cats/sqlite.c:162 src/lib/bnet_server.c:378
msgid "unknown"
msgstr ""
msgid "next_index update error: ERR=%s\n"
msgstr ""
+#: src/console/authenticate.c:41
+#, c-format
+msgid "Hello %s calling\n"
+msgstr ""
+
+#: src/console/authenticate.c:44
+msgid "1000 OK:"
+msgstr ""
+
#: src/console/authenticate.c:104 src/dird/authenticate.c:106
#: src/dird/authenticate.c:206 src/filed/authenticate.c:124
#: src/filed/authenticate.c:220 src/stored/authenticate.c:128
msgstr ""
#: src/console/authenticate.c:140 src/gnome2-console/authenticate.c:95
-#: src/tray-monitor/authenticate.c:94
+#: src/tray-monitor/authenticate.c:94 src/wx-console/authenticate.c:133
msgid "Director rejected Hello command\n"
msgstr ""
"help.\n"
msgstr ""
-#: src/console/console.c:102 src/filed/filed.c:62
+#: src/console/console.c:102
#, c-format
msgid ""
"Copyright (C) 2000-2005 Kern Sibbald\n"
"Version: "
msgstr ""
-#: src/console/console.c:103 src/dird/admin.c:108 src/dird/backup.c:489
-#: src/dird/dird.c:72 src/dird/mac.c:377 src/dird/restore.c:275
-#: src/dird/verify.c:415 src/dird/verify.c:448 src/filed/filed.c:63
-#: src/gnome2-console/console.c:89 src/stored/bcopy.c:59
-#: src/stored/bscan.c:110 src/stored/btape.c:2541 src/stored/stored.c:66
-#: src/tray-monitor/tray-monitor.c:104 src/tray-monitor/tray-monitor.c:499
-#: src/tray-monitor/tray-monitor.c:506
+#: src/console/console.c:103 src/dird/admin.c:108
#, c-format
msgid " ("
msgstr ""
msgstr ""
#: src/console/console.c:152 src/dird/ua_cmds.c:106 src/dird/ua_tree.c:72
+#: src/stored/btape.c:2536
msgid "quit"
msgstr ""
msgid ": is an illegal command\n"
msgstr ""
-#: src/console/console.c:397 src/dird/dird.c:193 src/filed/filed.c:180
-#: src/gnome2-console/console.c:267 src/stored/stored.c:186
-#: src/wx-console/console_thread.cpp:231
+#: src/console/console.c:400 src/dird/dird.c:196 src/filed/filed.c:183
+#: src/gnome2-console/console.c:271 src/stored/stored.c:189
+#: src/wx-console/console_thread.cpp:230
msgid "TLS library initialization failed.\n"
msgstr ""
-#: src/console/console.c:401 src/dird/dird.c:197 src/dird/dird.c:407
-#: src/dird/dird.c:410 src/filed/filed.c:185 src/gnome2-console/console.c:271
-#: src/stored/stored.c:190
+#: src/console/console.c:404 src/dird/dird.c:200 src/dird/dird.c:410
+#: src/dird/dird.c:413 src/filed/filed.c:188 src/gnome2-console/console.c:275
+#: src/stored/stored.c:193
#, c-format
msgid "Please correct configuration file: %s\n"
msgstr ""
-#: src/console/console.c:418
+#: src/console/console.c:421
msgid "Available Directors:\n"
msgstr ""
-#: src/console/console.c:422
+#: src/console/console.c:425
#, c-format
msgid "%d %s at %s:%d\n"
msgstr ""
-#: src/console/console.c:426
+#: src/console/console.c:429
msgid "Select Director: "
msgstr ""
-#: src/console/console.c:432
+#: src/console/console.c:435
#, c-format
msgid "You must enter a number between 1 and %d\n"
msgstr ""
-#: src/console/console.c:452
+#: src/console/console.c:455 src/tray-monitor/tray-monitor.c:858
#, c-format
msgid "Connecting to Director %s:%d\n"
msgstr ""
-#: src/console/console.c:468 src/gnome2-console/console.c:504
-#: src/wx-console/console_thread.cpp:365
+#: src/console/console.c:471 src/gnome2-console/console.c:508
+#: src/wx-console/console_thread.cpp:364
#, c-format
msgid "Failed to initialize TLS context for Console \"%s\".\n"
msgstr ""
-#: src/console/console.c:489 src/gnome2-console/console.c:526
-#: src/wx-console/console_thread.cpp:386
+#: src/console/console.c:492 src/gnome2-console/console.c:530
+#: src/wx-console/console_thread.cpp:385
#, c-format
msgid "Failed to initialize TLS context for Director \"%s\".\n"
msgstr ""
-#: src/console/console.c:512
+#: src/console/console.c:515
msgid "Enter a period to cancel a command.\n"
msgstr ""
-#: src/console/console.c:579 src/console/console.c:608 src/dird/dird.c:493
-#: src/dird/dird.c:708 src/dird/dird.c:774 src/dird/dird.c:826
-#: src/filed/filed.c:299 src/filed/filed.c:345
+#: src/console/console.c:582 src/console/console.c:611 src/dird/dird.c:496
+#: src/dird/dird.c:711 src/dird/dird.c:777 src/dird/dird.c:829
+#: src/filed/filed.c:302 src/filed/filed.c:348
#: src/gnome2-console/console.c:140 src/gnome2-console/console.c:169
-#: src/stored/stored.c:307 src/wx-console/console_thread.cpp:93
+#: src/stored/stored.c:310 src/wx-console/console_thread.cpp:93
#: src/wx-console/console_thread.cpp:122
msgid "TLS required but not configured in Bacula.\n"
msgstr ""
-#: src/console/console.c:586 src/gnome2-console/console.c:147
+#: src/console/console.c:589 src/gnome2-console/console.c:147
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Director \"%s\" in %s. At least one CA certificate store is required.\n"
msgstr ""
-#: src/console/console.c:595 src/gnome2-console/console.c:156
+#: src/console/console.c:598 src/gnome2-console/console.c:156
#, c-format
msgid ""
"No Director resource defined in %s\n"
"Without that I don't how to speak to the Director :-(\n"
msgstr ""
-#: src/console/console.c:615 src/gnome2-console/console.c:176
+#: src/console/console.c:618 src/gnome2-console/console.c:176
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Console \"%s\" in %s.\n"
msgstr ""
-#: src/console/console.c:760
+#: src/console/console.c:763
msgid "Too many arguments on input command.\n"
msgstr ""
-#: src/console/console.c:764
+#: src/console/console.c:767
msgid "First argument to input command must be a filename.\n"
msgstr ""
-#: src/console/console.c:769
+#: src/console/console.c:772
#, c-format
msgid "Cannot open file %s for input. ERR=%s\n"
msgstr ""
-#: src/console/console.c:799
+#: src/console/console.c:802
msgid "Too many arguments on output/tee command.\n"
msgstr ""
-#: src/console/console.c:815
+#: src/console/console.c:818
#, c-format
msgid "Cannot open file %s for output. ERR=%s\n"
msgstr ""
+#: src/console/console_conf.c:123 src/gnome2-console/console_conf.c:122
+#: src/wx-console/console_conf.c:124
+#, c-format
+msgid "No record for %d %s\n"
+msgstr ""
+
+#: src/console/console_conf.c:132 src/wx-console/console_conf.c:133
+#, c-format
+msgid "Console: name=%s rcfile=%s histfile=%s\n"
+msgstr ""
+
+#: src/console/console_conf.c:136 src/gnome2-console/console_conf.c:131
+#: src/wx-console/console_conf.c:137
+#, c-format
+msgid "Director: name=%s address=%s DIRport=%d\n"
+msgstr ""
+
+#: src/console/console_conf.c:140 src/console/console_conf.c:216
+#: src/console/console_conf.c:261 src/console/console_conf.c:288
+#: src/filed/filed_conf.c:268 src/filed/filed_conf.c:327
+#: src/filed/filed_conf.c:357 src/gnome2-console/console_conf.c:142
+#: src/gnome2-console/console_conf.c:220 src/gnome2-console/console_conf.c:268
+#: src/gnome2-console/console_conf.c:298 src/stored/stored_conf.c:467
+#: src/stored/stored_conf.c:555 src/stored/stored_conf.c:590
+#: src/wx-console/console_conf.c:141 src/wx-console/console_conf.c:216
+#: src/wx-console/console_conf.c:261 src/wx-console/console_conf.c:288
+#, c-format
+msgid "Unknown resource type %d\n"
+msgstr ""
+
+#: src/console/console_conf.c:242 src/dird/dird_conf.c:1109
+#: src/dird/dird_conf.c:1124 src/filed/filed_conf.c:296
+#: src/gnome2-console/console_conf.c:246 src/tray-monitor/tray_conf.c:262
+#: src/wx-console/console_conf.c:242
+#, c-format
+msgid "%s item is required in %s resource, but not found.\n"
+msgstr ""
+
#: src/console/console_conf.c:304 src/dird/dird_conf.c:1296
#: src/filed/filed_conf.c:374 src/gnome2-console/console_conf.c:314
#: src/tray-monitor/tray_conf.c:341 src/wx-console/console_conf.c:304
msgid "Inappropriate term code: %c\n"
msgstr ""
-#: src/dird/admin.c:108 src/dird/backup.c:489 src/dird/mac.c:377
-#: src/dird/restore.c:275 src/dird/verify.c:415 src/dird/verify.c:448
+#: src/dird/admin.c:108
msgid "Bacula "
msgstr ""
msgstr ""
#: src/dird/authenticate.c:123 src/dird/authenticate.c:223
+#: src/dird/authenticate.c:356 src/filed/authenticate.c:141
+#: src/filed/authenticate.c:237 src/stored/authenticate.c:145
+#: src/stored/authenticate.c:249
msgid "TLS negotiation failed.\n"
msgstr ""
msgid "Unable to authenticate console \"%s\" at %s:%s:%d.\n"
msgstr ""
+#: src/dird/authenticate.c:373
+#, c-format
+msgid "1000 OK: %s Version: %s (%s)\n"
+msgstr ""
+
#: src/dird/autoprune.c:57
msgid "Begin pruning Jobs.\n"
msgstr ""
msgid "Backup OK -- with warnings"
msgstr ""
-#: src/dird/backup.c:424 src/dird/mac.c:313 src/stored/bscan.c:1045
+#: src/dird/backup.c:424 src/dird/mac.c:313 src/stored/bscan.c:1054
msgid "Backup OK"
msgstr ""
-#: src/dird/backup.c:429 src/dird/mac.c:318 src/stored/bscan.c:1049
+#: src/dird/backup.c:429 src/dird/mac.c:318 src/stored/bscan.c:1058
msgid "*** Backup Error ***"
msgstr ""
-#: src/dird/backup.c:439 src/dird/mac.c:328 src/stored/bscan.c:1052
+#: src/dird/backup.c:439 src/dird/mac.c:328 src/stored/bscan.c:1061
msgid "Backup Canceled"
msgstr ""
#: src/dird/backup.c:489
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Backup Level: %s%s\n"
msgid "No Volumes found to restore.\n"
msgstr ""
+#: src/dird/catreq.c:109 src/dird/catreq.c:298
+#, c-format
+msgid "1990 Invalid Catalog Request: %s"
+msgstr ""
+
#: src/dird/catreq.c:110
#, c-format
msgid "Invalid Catalog request; DB not open: %s"
msgstr ""
+#: src/dird/catreq.c:131
+msgid "1901 No Media.\n"
+msgstr ""
+
+#: src/dird/catreq.c:159
+msgid "not in Pool"
+msgstr ""
+
+#: src/dird/catreq.c:161
+msgid "not correct MediaType"
+msgstr ""
+
+#: src/dird/catreq.c:187
+#, c-format
+msgid "1998 Volume \"%s\" status is %s, %s.\n"
+msgstr ""
+
+#: src/dird/catreq.c:192
+#, c-format
+msgid "1997 Volume \"%s\" not in catalog.\n"
+msgstr ""
+
#: src/dird/catreq.c:213
#, c-format
msgid "Unable to get Media record for Volume %s: ERR=%s\n"
msgstr ""
+#: src/dird/catreq.c:215
+#, c-format
+msgid "1991 Catalog Request for vol=%s failed: %s"
+msgstr ""
+
#: src/dird/catreq.c:235
#, c-format
msgid ""
"Volume Files at %u being set to %u for Volume \"%s\". This is incorrect.\n"
msgstr ""
+#: src/dird/catreq.c:238 src/dird/catreq.c:270
+msgid "1992 Update Media error\n"
+msgstr ""
+
#: src/dird/catreq.c:268
#, c-format
msgid "Catalog error updating Media record. %s"
msgid "Catalog error creating JobMedia record. %s"
msgstr ""
+#: src/dird/catreq.c:289
+msgid "1991 Update JobMedia error\n"
+msgstr ""
+
#: src/dird/catreq.c:299
#, c-format
msgid "Invalid Catalog request: %s"
msgstr ""
+#: src/dird/catreq.c:398
+msgid "Got MD5/SHA1 but not same File as attributes\n"
+msgstr ""
+
#: src/dird/catreq.c:422
#, c-format
msgid "Catalog error updating MD5/SHA1. %s"
msgstr ""
-#: src/dird/dird.c:71 src/stored/btape.c:2540 src/stored/stored.c:65
+#: src/dird/dird.c:71
#, c-format
msgid ""
"Copyright (C) 2000-2005 Kern Sibbald.\n"
"\n"
-"Version: "
-msgstr ""
-
-#: src/dird/dird.c:72
-#, c-format
-msgid ""
-")\n"
+"Version: %s (%s)\n"
"\n"
"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n"
" -c <file> set configuration file to file\n"
"\n"
msgstr ""
-#: src/dird/dird.c:393
+#: src/dird/dird.c:396
msgid "Too many open reload requests. Request ignored.\n"
msgstr ""
-#: src/dird/dird.c:408
+#: src/dird/dird.c:411
msgid "Out of reload table entries. Giving up.\n"
msgstr ""
-#: src/dird/dird.c:411
+#: src/dird/dird.c:414
msgid "Resetting previous configuration.\n"
msgstr ""
-#: src/dird/dird.c:471
+#: src/dird/dird.c:474
#, c-format
msgid ""
"No Director resource defined in %s\n"
"Without that I don't know who I am :-(\n"
msgstr ""
-#: src/dird/dird.c:479 src/filed/filed.c:292
+#: src/dird/dird.c:482 src/filed/filed.c:295
#, c-format
msgid "No Messages resource defined in %s\n"
msgstr ""
-#: src/dird/dird.c:484
+#: src/dird/dird.c:487
#, c-format
msgid "Only one Director resource permitted in %s\n"
msgstr ""
-#: src/dird/dird.c:499 src/filed/filed.c:354 src/stored/stored.c:359
+#: src/dird/dird.c:502 src/filed/filed.c:357 src/stored/stored.c:362
#, c-format
msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:505 src/filed/filed.c:360 src/stored/stored.c:365
+#: src/dird/dird.c:508 src/filed/filed.c:363 src/stored/stored.c:368
#, c-format
msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:511 src/filed/filed.c:366 src/stored/stored.c:371
+#: src/dird/dird.c:514 src/filed/filed.c:369 src/stored/stored.c:374
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/dird/dird.c:530 src/filed/filed.c:385 src/stored/stored.c:390
+#: src/dird/dird.c:533 src/filed/filed.c:388 src/stored/stored.c:393
#, c-format
msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:538
+#: src/dird/dird.c:541
#, c-format
msgid "No Job records defined in %s\n"
msgstr ""
-#: src/dird/dird.c:669 src/dird/job.c:101 src/dird/ua_cmds.c:1424
+#: src/dird/dird.c:585 src/dird/dird.c:598
+#, c-format
+msgid "Hey something is wrong. p=0x%lu\n"
+msgstr ""
+
+#: src/dird/dird.c:647
+#, c-format
+msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n"
+msgstr ""
+
+#: src/dird/dird.c:654
+msgid "Too many items in Job resource\n"
+msgstr ""
+
+#: src/dird/dird.c:672 src/dird/job.c:101 src/dird/ua_cmds.c:1424
#: src/dird/ua_output.c:598
#, c-format
msgid "Could not open database \"%s\".\n"
msgstr ""
-#: src/dird/dird.c:672
+#: src/dird/dird.c:675
#, c-format
msgid "%s"
msgstr ""
-#: src/dird/dird.c:714
+#: src/dird/dird.c:717
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"Storage \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:730 src/stored/stored.c:345
+#: src/dird/dird.c:733 src/stored/stored.c:348
#, c-format
msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:781
+#: src/dird/dird.c:784
#, c-format
msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:787
+#: src/dird/dird.c:790
#, c-format
msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:793
+#: src/dird/dird.c:796
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/dird/dird.c:810 src/dird/dird.c:850 src/filed/filed.c:323
+#: src/dird/dird.c:813 src/dird/dird.c:853 src/filed/filed.c:326
#, c-format
msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n"
msgstr ""
-#: src/dird/dird.c:833
+#: src/dird/dird.c:836
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"File daemon \"%s\" in %s.\n"
msgstr ""
+#: src/dird/dird_conf.c:441 src/tray-monitor/tray_conf.c:152
+#, c-format
+msgid "No %s resource defined\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:450
+#, c-format
+msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:455
+#, c-format
+msgid " query_file=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:458 src/dird/dird_conf.c:483 src/dird/dird_conf.c:497
+#: src/dird/dird_conf.c:541 src/dird/dird_conf.c:545 src/dird/dird_conf.c:549
+#: src/dird/dird_conf.c:573 src/dird/dird_conf.c:578 src/dird/dird_conf.c:582
+#: src/dird/dird_conf.c:586 src/dird/dird_conf.c:590 src/dird/dird_conf.c:594
+#: src/dird/dird_conf.c:604
+msgid " --> "
+msgstr ""
+
+#: src/dird/dird_conf.c:464 src/dird/dird_conf.c:467
+#, c-format
+msgid "Console: name=%s SSL=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:473
+#, c-format
+msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:478
+#, c-format
+msgid "Counter: name=%s min=%d max=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:489
+#, c-format
+msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:492
+#, c-format
+msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:504
+#, c-format
+msgid ""
+"Device: name=%s ok=%d num_writers=%d max_writers=%d\n"
+" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%"
+"d\n"
+" poolid=%s volname=%s MediaType=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:514
+#, c-format
+msgid ""
+"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n"
+" DeviceName=%s MediaType=%s StorageId=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:523
+#, c-format
+msgid ""
+"Catalog: name=%s address=%s DBport=%d db_name=%s\n"
+" db_user=%s MutliDBConn=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:531
+#, c-format
+msgid "%s: name=%s JobType=%d level=%s Priority=%d MaxJobs=%u\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:532
+msgid "JobDefs"
+msgstr ""
+
+#: src/dird/dird_conf.c:536
+#, c-format
+msgid " Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:553
+#, c-format
+msgid " --> Where=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:556
+#, c-format
+msgid " --> Bootstrap=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:559
+#, c-format
+msgid " --> RunBefore=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:562
+#, c-format
+msgid " --> RunAfter=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:565
+#, c-format
+msgid " --> RunAfterFailed=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:568
+#, c-format
+msgid " --> WriteBootstrap=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:600
+#, c-format
+msgid " --> Run=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:611
+#, c-format
+msgid "FileSet: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:673 src/dird/dird_conf.c:752
+#, c-format
+msgid "Schedule: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:678
+#, c-format
+msgid " --> Run Level=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:679
+msgid " hour="
+msgstr ""
+
+#: src/dird/dird_conf.c:688
+msgid " mday="
+msgstr ""
+
+#: src/dird/dird_conf.c:697
+msgid " month="
+msgstr ""
+
+#: src/dird/dird_conf.c:706
+msgid " wday="
+msgstr ""
+
+#: src/dird/dird_conf.c:715
+msgid " wom="
+msgstr ""
+
+#: src/dird/dird_conf.c:724
+msgid " woy="
+msgstr ""
+
+#: src/dird/dird_conf.c:733
+#, c-format
+msgid " mins=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:735 src/dird/dird_conf.c:739 src/dird/dird_conf.c:743
+msgid " --> "
+msgstr ""
+
+#: src/dird/dird_conf.c:756
+#, c-format
+msgid "Pool: name=%s PoolType=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:758
+#, c-format
+msgid " use_cat=%d use_once=%d acpt_any=%d cat_files=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:761
+#, c-format
+msgid " max_vols=%d auto_prune=%d VolRetention=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:764
+#, c-format
+msgid " VolUse=%s recycle=%d LabelFormat=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:768
+#, c-format
+msgid " CleaningPrefix=%s LabelType=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:770
+#, c-format
+msgid " RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:776
+#, c-format
+msgid "Messages: name=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:778
+#, c-format
+msgid " mailcmd=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:780
+#, c-format
+msgid " opcmd=%s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:783 src/tray-monitor/tray_conf.c:179
+#, c-format
+msgid "Unknown resource type %d in dump_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1077 src/tray-monitor/tray_conf.c:232
+#, c-format
+msgid "Unknown resource type %d in free_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1115 src/lib/parse_conf.c:211
+#: src/tray-monitor/tray_conf.c:268
+#, c-format
+msgid "Too many items in %s resource\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1149
+#, c-format
+msgid "Cannot find Console resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1155 src/filed/filed_conf.c:316
+#: src/stored/stored_conf.c:523
+#, c-format
+msgid "Cannot find Director resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1162 src/stored/stored_conf.c:529
+#, c-format
+msgid "Cannot find Storage resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1171
+#, c-format
+msgid "Cannot find Job resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1189
+#, c-format
+msgid "Cannot find Counter resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1197 src/filed/filed_conf.c:322
+#, c-format
+msgid "Cannot find Client resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1209
+#, c-format
+msgid "Cannot find Schedule resource %s\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1214 src/tray-monitor/tray_conf.c:287
+#, c-format
+msgid "Unknown resource type %d in save_resource.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1274 src/tray-monitor/tray_conf.c:322
+#, c-format
+msgid "Unknown resource type %d in save_resrouce.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1289
+#, c-format
+msgid "Name item is required in %s resource, but not found.\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1301
+#, c-format
+msgid "Inserting %s res: %s index=%d pass=%d\n"
+msgstr ""
+
+#: src/dird/dird_conf.c:1374
+#, c-format
+msgid "Expected a Job Type keyword, got: %s"
+msgstr ""
+
+#: src/dird/dird_conf.c:1398
+#, c-format
+msgid "Expected a Job Level keyword, got: %s"
+msgstr ""
+
+#: src/dird/dird_conf.c:1418
+#, c-format
+msgid "Expected a Restore replacement option, got: %s"
+msgstr ""
+
#: src/dird/expand.c:137
msgid "Year"
msgstr ""
msgid "Cannot destroy var context: ERR=%s\n"
msgstr ""
-#: src/dird/fd_cmds.c:73
+#: src/dird/fd_cmds.c:73 src/tray-monitor/tray-monitor.c:867
msgid "File daemon"
msgstr ""
msgid "FD gave bad response to JobId command: %s\n"
msgstr ""
+#: src/dird/fd_cmds.c:144 src/dird/fd_cmds.c:180
+msgid ", since="
+msgstr ""
+
#: src/dird/fd_cmds.c:164
msgid "No prior or suitable Full backup found. Doing FULL backup.\n"
msgstr ""
+#: src/dird/fd_cmds.c:165 src/dird/fd_cmds.c:173
+#, c-format
+msgid " (upgraded from %s)"
+msgstr ""
+
#: src/dird/fd_cmds.c:171
#, c-format
msgid "Prior failed job found. Upgrading to %s.\n"
msgstr ""
+#: src/dird/fd_cmds.c:196
+msgid "since_utime "
+msgstr ""
+
#: src/dird/fd_cmds.c:232
#, c-format
msgid "Unimplemented backup level %d %c\n"
"msglen=%d msg=%s\n"
msgstr ""
-#: src/dird/fd_cmds.c:571 src/dird/verify.c:692
+#: src/dird/fd_cmds.c:571 src/dird/verify.c:696
#, c-format
msgid "MD5/SHA1 index %d not same as attributes %d\n"
msgstr ""
#: src/dird/getmsg.c:318
#, c-format
-msgid "Bad response to %s command: wanted %s got: %s\n"
+msgid "Bad response to %s command: wanted %s, got %s\n"
msgstr ""
#: src/dird/getmsg.c:323
msgid "Socket error on %s command: ERR=%s\n"
msgstr ""
+#: src/dird/inc_conf.c:249
+#, c-format
+msgid "Expected a FileSet option keyword, got:%s:"
+msgstr ""
+
#: src/dird/inc_conf.c:282
msgid "Old style Include/Exclude not supported\n"
msgstr ""
msgid "Expecting keyword, got: %s\n"
msgstr ""
+#: src/dird/inc_conf.c:318 src/dird/inc_conf.c:583 src/lib/parse_conf.c:819
+#, c-format
+msgid "expected an equals, got: %s"
+msgstr ""
+
+#: src/dird/inc_conf.c:328 src/dird/inc_conf.c:592
+#, c-format
+msgid "Keyword %s not permitted in this resource"
+msgstr ""
+
#: src/dird/inc_conf.c:381
#, c-format
msgid "Regex compile error. ERR=%s\n"
msgid "Expected a filename, got: %s"
msgstr ""
-#: src/dird/job.c:50
+#: src/dird/inc_conf.c:562
+#, c-format
+msgid "Expecting open brace. Got %s"
+msgstr ""
+
+#: src/dird/inc_conf.c:617
+#, c-format
+msgid "Expected a FileSet keyword, got: %s"
+msgstr ""
+
+#: src/dird/job.c:50
#, c-format
msgid "Could not init job queue: ERR=%s\n"
msgstr ""
-#: src/dird/job.c:86 src/stored/dircmd.c:174 src/stored/stored.c:485
+#: src/dird/job.c:86 src/stored/dircmd.c:174 src/stored/stored.c:488
#, c-format
msgid "Unable to init job cond variable: ERR=%s\n"
msgstr ""
msgid "Job canceled because max start delay time exceeded.\n"
msgstr ""
+#: src/dird/job.c:229 src/dird/job.c:307
+#, c-format
+msgid "Unimplemented job type: %d\n"
+msgstr ""
+
#: src/dird/job.c:254
#, c-format
msgid "RunBefore: %s"
msgid "Unhandled job status code %d\n"
msgstr ""
-#: src/dird/job.c:621 src/stored/bscan.c:893
+#: src/dird/job.c:621 src/stored/bscan.c:902
#, c-format
msgid "Could not create Client record. ERR=%s\n"
msgstr ""
msgid "Error updating job record. %s"
msgstr ""
+#: src/dird/jobq.c:67
+#, c-format
+msgid "pthread_attr_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:76
+#, c-format
+msgid "pthread_mutex_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:82
+#, c-format
+msgid "pthread_cond_init: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:115 src/dird/jobq.c:242 src/dird/jobq.c:307
+#: src/dird/jobq.c:388
+#, c-format
+msgid "pthread_mutex_lock: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:128
+#, c-format
+msgid "pthread_cond_broadcast: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:136
+#, c-format
+msgid "pthread_cond_wait: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:144
+#, c-format
+msgid "pthread_mutex_unlock: ERR=%s\n"
+msgstr ""
+
#: src/dird/jobq.c:180
#, c-format
msgid "Job %s waiting %d seconds for scheduled start time.\n"
msgstr ""
+#: src/dird/jobq.c:235
+#, c-format
+msgid "pthread_thread_create: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:353
+#, c-format
+msgid "pthread_cond_signal: ERR=%s\n"
+msgstr ""
+
+#: src/dird/jobq.c:362
+#, c-format
+msgid "pthread_create: ERR=%s\n"
+msgstr ""
+
#: src/dird/jobq.c:487
#, c-format
msgid "Rescheduled Job %s at %s to re-run in %d seconds.\n"
#: src/dird/mac.c:377
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Backup Level: %s%s\n"
msgstr ""
#: src/dird/msgchan.c:78 src/filed/job.c:1128
+#: src/tray-monitor/tray-monitor.c:874
msgid "Storage daemon"
msgstr ""
msgid "Catalog error updating volume \"%s\". ERR=%s"
msgstr ""
+#: src/dird/next_vol.c:262
+msgid "volume has expired"
+msgstr ""
+
+#: src/dird/next_vol.c:280 src/dird/next_vol.c:316
+#, c-format
+msgid "Recycled current volume \"%s\"\n"
+msgstr ""
+
+#: src/dird/next_vol.c:285
+msgid "and recycling of current volume failed"
+msgstr ""
+
+#: src/dird/next_vol.c:291
+msgid "but should be Append, Purged or Recycle"
+msgstr ""
+
+#: src/dird/next_vol.c:319
+msgid ""
+"but should be Append, Purged or Recycle (recycling of the current volume "
+"failed)"
+msgstr ""
+
+#: src/dird/next_vol.c:323
+msgid ""
+"but should be Append, Purged or Recycle (cannot automatically recycle "
+"current volume, as it still contains unpruned data)"
+msgstr ""
+
+#: src/dird/recycle.c:102
+#, c-format
+msgid "Recycled volume \"%s\"\n"
+msgstr ""
+
#: src/dird/restore.c:70
msgid "Cannot restore without bootstrap file.\n"
msgstr ""
#: src/dird/restore.c:275
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Client: %s\n"
msgid "fifth"
msgstr ""
-#: src/dird/run_conf.c:201 src/dird/run_conf.c:213 src/lib/parse_conf.c:699
+#: src/dird/run_conf.c:188
+#, c-format
+msgid "Expected an equals, got: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:201 src/dird/run_conf.c:213
#, c-format
msgid "Expect a YES or NO, got: %s"
msgstr ""
msgid "Job level field: %s not found in run record"
msgstr ""
+#: src/dird/run_conf.c:245
+#, c-format
+msgid "Could not find specified Pool Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:270
+#, c-format
+msgid "Could not find specified Storage Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:282
+#, c-format
+msgid "Could not find specified Messages Resource: %s"
+msgstr ""
+
+#: src/dird/run_conf.c:290
+#, c-format
+msgid "Expected a keyword name, got: %s"
+msgstr ""
+
#: src/dird/run_conf.c:325
msgid "Day number out of range (1-31)"
msgstr ""
msgid "Job %s not found\n"
msgstr ""
+#: src/dird/scheduler.c:102
+msgid "Walk queue"
+msgstr ""
+
+#: src/dird/scheduler.c:112
+msgid "Dequeued job"
+msgstr ""
+
#: src/dird/scheduler.c:115
msgid "Scheduler logic error\n"
msgstr ""
+#: src/dird/scheduler.c:132
+msgid "Run job"
+msgstr ""
+
+#: src/dird/scheduler.c:345
+msgid "Inserted job"
+msgstr ""
+
+#: src/dird/scheduler.c:353
+msgid "Appended job"
+msgstr ""
+
+#: src/dird/scheduler.c:357
+msgid "Run queue"
+msgstr ""
+
#: src/dird/ua_cmds.c:88
msgid "add"
msgstr ""
msgstr ""
#: src/dird/ua_cmds.c:97 src/dird/ua_output.c:112 src/dird/ua_tree.c:64
+#: src/stored/btape.c:2533
msgid "help"
msgstr ""
-#: src/dird/ua_cmds.c:97
+#: src/dird/ua_cmds.c:97 src/stored/btape.c:2533
msgid "print this command"
msgstr ""
"from catalog"
msgstr ""
-#: src/dird/ua_cmds.c:99
+#: src/dird/ua_cmds.c:99 src/stored/btape.c:2534
msgid "label"
msgstr ""
msgid "run <job-name>"
msgstr ""
-#: src/dird/ua_cmds.c:113
+#: src/dird/ua_cmds.c:113 src/stored/btape.c:2543
msgid "status"
msgstr ""
msgid "use SQL to query catalog"
msgstr ""
-#: src/dird/ua_cmds.c:119 src/dird/ua_cmds.c:768
+#: src/dird/ua_cmds.c:119
msgid "trace"
msgstr ""
msgid "off"
msgstr ""
-#: src/dird/ua_cmds.c:368 src/dird/ua_cmds.c:1055 src/dird/ua_cmds.c:1071
-#: src/dird/ua_cmds.c:1115 src/dird/ua_output.c:272 src/dird/ua_output.c:296
-#: src/dird/ua_output.c:315 src/dird/ua_output.c:346 src/dird/ua_select.c:618
-#: src/dird/ua_select.c:793
+#: src/dird/ua_cmds.c:368 src/dird/ua_cmds.c:1055 src/dird/ua_cmds.c:1115
+#: src/dird/ua_output.c:272 src/dird/ua_output.c:296 src/dird/ua_output.c:315
+#: src/dird/ua_output.c:346 src/dird/ua_select.c:618 src/dird/ua_select.c:793
msgid "jobid"
msgstr ""
msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n"
msgstr ""
-#: src/dird/ua_cmds.c:379 src/dird/ua_cmds.c:919 src/dird/ua_output.c:282
-#: src/dird/ua_output.c:291 src/dird/ua_output.c:310 src/dird/ua_output.c:341
-#: src/dird/ua_select.c:615 src/dird/ua_select.c:807
+#: src/dird/ua_cmds.c:379 src/dird/ua_output.c:282 src/dird/ua_output.c:291
+#: src/dird/ua_output.c:310 src/dird/ua_output.c:341 src/dird/ua_select.c:615
+#: src/dird/ua_select.c:807
msgid "job"
msgstr ""
msgid "Warning Job %s is not running. Continuing anyway ...\n"
msgstr ""
-#: src/dird/ua_cmds.c:407 src/filed/status.c:193 src/stored/status.c:311
+#: src/dird/ua_cmds.c:407 src/filed/status.c:193 src/stored/status.c:315
msgid "No Jobs running.\n"
msgstr ""
msgid "Select Job:\n"
msgstr ""
+#: src/dird/ua_cmds.c:417
+#, c-format
+msgid "JobId=%s Job=%s"
+msgstr ""
+
#: src/dird/ua_cmds.c:422
msgid "Choose Job to cancel"
msgstr ""
msgid "Client \"%s\" address set to %s\n"
msgstr ""
-#: src/dird/ua_cmds.c:616 src/dird/ua_status.c:281
+#: src/dird/ua_cmds.c:616 src/dird/ua_status.c:286
#, c-format
msgid "Connecting to Storage daemon %s at %s:%d\n"
msgstr ""
-#: src/dird/ua_cmds.c:622 src/dird/ua_status.c:292
+#: src/dird/ua_cmds.c:622 src/dird/ua_status.c:297
msgid "Connected to storage daemon\n"
msgstr ""
-#: src/dird/ua_cmds.c:642 src/dird/ua_cmds.c:982 src/dird/ua_status.c:319
+#: src/dird/ua_cmds.c:642 src/dird/ua_cmds.c:982 src/dird/ua_status.c:324
#, c-format
msgid "Connecting to Client %s at %s:%d\n"
msgstr ""
msgid "Failed to connect to Client.\n"
msgstr ""
-#: src/dird/ua_cmds.c:756 src/dird/ua_cmds.c:935
-msgid "level"
-msgstr ""
-
#: src/dird/ua_cmds.c:761
msgid "Enter new debug level: "
msgstr ""
-#: src/dird/ua_cmds.c:778 src/dird/ua_output.c:111 src/dird/ua_status.c:101
-msgid "all"
-msgstr ""
-
-#: src/dird/ua_cmds.c:782 src/dird/ua_status.c:104 src/dird/ua_tree.c:59
-msgid "dir"
-msgstr ""
-
-#: src/dird/ua_cmds.c:783 src/dird/ua_status.c:105
-msgid "director"
-msgstr ""
-
-#: src/dird/ua_cmds.c:788 src/dird/ua_cmds.c:912 src/dird/ua_restore.c:272
-#: src/dird/ua_select.c:288 src/dird/ua_select.c:325 src/dird/ua_status.c:108
-#: src/lib/bnet_server.c:291
-msgid "client"
-msgstr ""
-
-#: src/dird/ua_cmds.c:789 src/dird/ua_cmds.c:913 src/dird/ua_select.c:289
-#: src/dird/ua_select.c:326
-msgid "fd"
-msgstr ""
-
-#: src/dird/ua_cmds.c:805
-msgid "store"
-msgstr ""
-
-#: src/dird/ua_cmds.c:806 src/dird/ua_select.c:788
-msgid "storage"
-msgstr ""
-
-#: src/dird/ua_cmds.c:807 src/dird/ua_select.c:789
-msgid "sd"
-msgstr ""
-
#: src/dird/ua_cmds.c:827
msgid "Available daemons are: \n"
msgstr ""
-#: src/dird/ua_cmds.c:828 src/dird/ua_status.c:127
-msgid "Director"
-msgstr ""
-
-#: src/dird/ua_cmds.c:831 src/dird/ua_status.c:130
-msgid "All"
-msgstr ""
-
#: src/dird/ua_cmds.c:832
msgid "Select daemon type to set debug level"
msgstr ""
-#: src/dird/ua_cmds.c:925
-msgid "fileset"
-msgstr ""
-
-#: src/dird/ua_cmds.c:931
-msgid "listing"
-msgstr ""
-
#: src/dird/ua_cmds.c:937 src/dird/ua_run.c:478
#, c-format
msgid "Level %s not valid.\n"
msgid "Using Catalog name=%s DB=%s\n"
msgstr ""
-#: src/dird/ua_cmds.c:1369 src/dird/ua_tree.c:590 src/stored/btape.c:2531
+#: src/dird/ua_cmds.c:1369 src/dird/ua_tree.c:594 src/stored/btape.c:2580
#, c-format
msgid ""
" Command Description\n"
" ======= ===========\n"
msgstr ""
-#: src/dird/ua_cmds.c:1371 src/dird/ua_tree.c:592
+#: src/dird/ua_cmds.c:1371
#, c-format
msgid " %-10s %s\n"
msgstr ""
"\n"
msgstr ""
-#: src/dird/ua_cmds.c:1382
+#: src/dird/ua_cmds.c:1389
#, c-format
-msgid "%s %s\n"
+msgid "%s Version: %s (%s)\n"
msgstr ""
#: src/dird/ua_cmds.c:1408
msgid ".exit"
msgstr ""
-#: src/dird/ua_dotcmds.c:221 src/dird/ua_restore.c:739
-#: src/dird/ua_restore.c:777
+#: src/dird/ua_dotcmds.c:121
+msgid "The Director will segment fault.\n"
+msgstr ""
+
+#: src/dird/ua_dotcmds.c:221 src/dird/ua_restore.c:747
+#: src/dird/ua_restore.c:785
#, c-format
msgid "Query failed: %s. ERR=%s\n"
msgstr ""
-#: src/dird/ua_input.c:120 src/dird/ua_restore.c:228 src/dird/ua_run.c:487
+#: src/dird/ua_input.c:82
+msgid "Enter slot"
+msgstr ""
+
+#: src/dird/ua_input.c:86 src/dird/ua_input.c:92
+#, c-format
+msgid "Expected a positive integer, got: %s\n"
+msgstr ""
+
+#: src/dird/ua_input.c:120 src/dird/ua_restore.c:232 src/dird/ua_run.c:487
#: src/dird/ua_run.c:860 src/dird/ua_select.c:54 src/dird/ua_update.c:232
#: src/dird/ua_update.c:247 src/dird/ua_update.c:495
+#: src/stored/parse_bsr.c:741 src/tools/dbcheck.c:1098
msgid "yes"
msgstr ""
#: src/dird/ua_input.c:124 src/dird/ua_select.c:57 src/dird/ua_update.c:234
#: src/dird/ua_update.c:247 src/dird/ua_update.c:495
+#: src/stored/parse_bsr.c:741
msgid "no"
msgstr ""
msgid "Slot too large.\n"
msgstr ""
-#: src/dird/ua_label.c:170
+#: src/dird/ua_label.c:170 src/stored/btape.c:2541
msgid "scan"
msgstr ""
"==============\n"
msgstr ""
-#: src/dird/ua_label.c:484
+#: src/dird/ua_label.c:484 src/stored/btape.c:608
msgid "Do you want to continue? (y/n): "
msgstr ""
msgid "Media record for Slot %d Volume \"%s\" already exists.\n"
msgstr ""
+#: src/dird/ua_label.c:511
+#, c-format
+msgid "Error setting InChanger: ERR=%s"
+msgstr ""
+
#: src/dird/ua_label.c:536
#, c-format
msgid "Catalog record for cleaning tape \"%s\" successfully created.\n"
msgstr ""
+#: src/dird/ua_label.c:543
+#, c-format
+msgid "Catalog error on cleaning tape: %s"
+msgstr ""
+
#: src/dird/ua_label.c:579
#, c-format
msgid "Illegal character \"%c\" in a volume name.\n"
msgid "pools"
msgstr ""
+#: src/dird/ua_output.c:111 src/dird/ua_status.c:101
+msgid "all"
+msgstr ""
+
#: src/dird/ua_output.c:178
msgid "Keywords for the show command are:\n"
msgstr ""
msgstr ""
#: src/dird/ua_prune.c:163 src/dird/ua_purge.c:174 src/dird/ua_purge.c:179
-#: src/stored/label.c:957
+#: src/stored/label.c:956
msgid "Volume"
msgstr ""
msgid "Pruned %d %s for client %s from catalog.\n"
msgstr ""
+#: src/dird/ua_prune.c:502
+#, c-format
+msgid "There are no Jobs associated with Volume \"%s\". Prune not needed.\n"
+msgstr ""
+
+#: src/dird/ua_prune.c:509 src/dird/ua_purge.c:488
+#, c-format
+msgid "There are no Jobs associated with Volume \"%s\". Marking it purged.\n"
+msgstr ""
+
#: src/dird/ua_prune.c:567
#, c-format
msgid "Pruned %d %s on Volume \"%s\" from catalog.\n"
msgid "%d File%s on Volume \"%s\" purged from catalog.\n"
msgstr ""
+#: src/dird/ua_purge.c:555
+#, c-format
+msgid ""
+"There are no more Jobs associated with Volume \"%s\". Marking it purged.\n"
+msgstr ""
+
#: src/dird/ua_purge.c:584
#, c-format
msgid "Cannot purge Volume with VolStatus=%s\n"
msgstr ""
+#: src/dird/ua_query.c:59 src/findlib/create_file.c:276
+#: src/findlib/create_file.c:333
+#, c-format
+msgid "Could not open %s: ERR=%s\n"
+msgstr ""
+
#: src/dird/ua_query.c:64
msgid "Available queries:\n"
msgstr ""
"Terminate query mode with a blank line.\n"
msgstr ""
-#: src/dird/ua_query.c:272
+#: src/dird/ua_query.c:255 src/dird/ua_query.c:272
msgid "Enter SQL query: "
msgstr ""
msgid "Unable to construct a valid BSR. Cannot continue.\n"
msgstr ""
-#: src/dird/ua_restore.c:182 src/dird/ua_restore.c:192
+#: src/dird/ua_restore.c:182 src/dird/ua_restore.c:196
msgid "No files selected to be restored.\n"
msgstr ""
-#: src/dird/ua_restore.c:189
+#: src/dird/ua_restore.c:190
+msgid ""
+"\n"
+"1 file selected to be restored.\n"
+"\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:193
#, c-format
msgid ""
"\n"
-"%u file%s selected to be restored.\n"
+"%u files selected to be restored.\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:207
+#: src/dird/ua_restore.c:211
msgid "No Restore Job resource found!\n"
msgstr ""
-#: src/dird/ua_restore.c:352
+#: src/dird/ua_restore.c:276 src/dird/ua_select.c:288 src/dird/ua_select.c:325
+#: src/dird/ua_status.c:108 src/lib/bnet_server.c:291
+#: src/lib/bnet_server.c:385
+msgid "client"
+msgstr ""
+
+#: src/dird/ua_restore.c:309
+msgid "List last 20 Jobs run"
+msgstr ""
+
+#: src/dird/ua_restore.c:310
+msgid "List Jobs where a given File is saved"
+msgstr ""
+
+#: src/dird/ua_restore.c:311
+msgid "Enter list of comma separated JobIds to select"
+msgstr ""
+
+#: src/dird/ua_restore.c:312
+msgid "Enter SQL list command"
+msgstr ""
+
+#: src/dird/ua_restore.c:313
+msgid "Select the most recent backup for a client"
+msgstr ""
+
+#: src/dird/ua_restore.c:314
+msgid "Select backup for a client before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:315
+msgid "Enter a list of files to restore"
+msgstr ""
+
+#: src/dird/ua_restore.c:316
+msgid "Enter a list of files to restore before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:317
+msgid "Find the JobIds of the most recent backup for a client"
+msgstr ""
+
+#: src/dird/ua_restore.c:318
+msgid "Find the JobIds for a backup for a client before a specified time"
+msgstr ""
+
+#: src/dird/ua_restore.c:319
+msgid "Enter a list of directories to restore for found JobIds"
+msgstr ""
+
+#: src/dird/ua_restore.c:320 src/dird/ua_status.c:702 src/filed/status.c:249
+#: src/stored/status.c:367 src/wx-console/wxbconfigpanel.cpp:191
+msgid "Cancel"
+msgstr ""
+
+#: src/dird/ua_restore.c:356
#, c-format
msgid "Unknown keyword: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:370
+#: src/dird/ua_restore.c:374
#, c-format
msgid "Improper date format: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:404 src/dird/ua_select.c:576
+#: src/dird/ua_restore.c:408 src/dird/ua_select.c:576
#, c-format
msgid "Error: Pool resource \"%s\" does not exist.\n"
msgstr ""
-#: src/dird/ua_restore.c:409
+#: src/dird/ua_restore.c:413
#, c-format
msgid "Error: Pool resource \"%s\" access not allowed.\n"
msgstr ""
-#: src/dird/ua_restore.c:428
+#: src/dird/ua_restore.c:432
msgid ""
"\n"
"First you select one or more JobIds that contain files\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:440
+#: src/dird/ua_restore.c:444
msgid "To select the JobIds, you have the following choices:\n"
msgstr ""
-#: src/dird/ua_restore.c:445
+#: src/dird/ua_restore.c:449
msgid "Select item: "
msgstr ""
-#: src/dird/ua_restore.c:459
+#: src/dird/ua_restore.c:463
msgid "Enter Filename (no path):"
msgstr ""
-#: src/dird/ua_restore.c:474 src/dird/ua_restore.c:574
+#: src/dird/ua_restore.c:478 src/dird/ua_restore.c:578
msgid "Enter JobId(s), comma separated, to restore: "
msgstr ""
-#: src/dird/ua_restore.c:480
+#: src/dird/ua_restore.c:484
msgid "Enter SQL list command: "
msgstr ""
-#: src/dird/ua_restore.c:508 src/dird/ua_restore.c:533
+#: src/dird/ua_restore.c:512 src/dird/ua_restore.c:537
msgid ""
"Enter file names with paths, or < to enter a filename\n"
"containg a list of file names with paths, and terminate\n"
"them with a blank line.\n"
msgstr ""
-#: src/dird/ua_restore.c:512 src/dird/ua_restore.c:537
+#: src/dird/ua_restore.c:516 src/dird/ua_restore.c:541
msgid "Enter full filename: "
msgstr ""
-#: src/dird/ua_restore.c:572
+#: src/dird/ua_restore.c:576
#, c-format
msgid "You have already seleted the following JobIds: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:587
+#: src/dird/ua_restore.c:591
msgid ""
"Enter full directory names or start the name\n"
"with a < to indicate it is a filename containg a list\n"
"of directories and terminate them with a blank line.\n"
msgstr ""
-#: src/dird/ua_restore.c:591
+#: src/dird/ua_restore.c:595
msgid "Enter directory name: "
msgstr ""
-#: src/dird/ua_restore.c:616
+#: src/dird/ua_restore.c:620
msgid "No Jobs selected.\n"
msgstr ""
-#: src/dird/ua_restore.c:619
+#: src/dird/ua_restore.c:624
+#, c-format
+msgid "You have selected the following JobIds: %s\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:627
#, c-format
-msgid "You have selected the following JobId%s: %s\n"
+msgid "You have selected the following JobId: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:628
+#: src/dird/ua_restore.c:636
msgid "Invalid JobId in list.\n"
msgstr ""
-#: src/dird/ua_restore.c:640
+#: src/dird/ua_restore.c:648
#, c-format
msgid "Unable to get Job record for JobId=%s: ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:645
+#: src/dird/ua_restore.c:653
#, c-format
msgid "No authorization. Job \"%s\" not selected.\n"
msgstr ""
-#: src/dird/ua_restore.c:659
+#: src/dird/ua_restore.c:667
msgid ""
"The restored files will the most current backup\n"
"BEFORE the date you specify below.\n"
"\n"
msgstr ""
-#: src/dird/ua_restore.c:662
+#: src/dird/ua_restore.c:670
msgid "Enter date as YYYY-MM-DD HH:MM:SS :"
msgstr ""
-#: src/dird/ua_restore.c:668
+#: src/dird/ua_restore.c:676
msgid "Improper date format.\n"
msgstr ""
-#: src/dird/ua_restore.c:689
+#: src/dird/ua_restore.c:697
#, c-format
msgid "Cannot open file %s: ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:697 src/dird/ua_restore.c:701
+#: src/dird/ua_restore.c:705 src/dird/ua_restore.c:709
#, c-format
msgid "Error occurred on line %d of %s\n"
msgstr ""
-#: src/dird/ua_restore.c:743 src/dird/ua_restore.c:781
+#: src/dird/ua_restore.c:751 src/dird/ua_restore.c:789
#, c-format
msgid "No database record found for: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:768
+#: src/dird/ua_restore.c:776
msgid "No JobId specified cannot continue.\n"
msgstr ""
-#: src/dird/ua_restore.c:887
+#: src/dird/ua_restore.c:895
#, c-format
msgid ""
"\n"
"Building directory tree for JobId %s ... "
msgstr ""
-#: src/dird/ua_restore.c:908
+#: src/dird/ua_restore.c:914
+msgid ""
+"\n"
+"There were no files inserted into the tree, so file selection\n"
+"is not possible.Most likely your retention policy pruned the files\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:916
msgid ""
"\n"
"Do you want to restore all the files? (yes|no): "
msgstr ""
-#: src/dird/ua_restore.c:929 src/dird/ua_tree.c:60
+#: src/dird/ua_restore.c:932
+#, c-format
+msgid ""
+"\n"
+"1 Job, %s files inserted into the tree and marked for extraction.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:936
+#, c-format
+msgid ""
+"\n"
+"1 Job, %s files inserted into the tree.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:942
+#, c-format
+msgid ""
+"\n"
+"%d Jobs, %s files inserted into the tree and marked for extraction.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:946
+#, c-format
+msgid ""
+"\n"
+"%d Jobs, %s files inserted into the tree.\n"
+msgstr ""
+
+#: src/dird/ua_restore.c:954 src/dird/ua_tree.c:60
msgid "done"
msgstr ""
-#: src/dird/ua_restore.c:998
+#: src/dird/ua_restore.c:1023
#, c-format
msgid "Error getting FileSet \"%s\": ERR=%s\n"
msgstr ""
-#: src/dird/ua_restore.c:1006 src/dird/ua_select.c:165
+#: src/dird/ua_restore.c:1031 src/dird/ua_select.c:165
msgid "The defined FileSet resources are:\n"
msgstr ""
-#: src/dird/ua_restore.c:1010 src/dird/ua_select.c:173
+#: src/dird/ua_restore.c:1035 src/dird/ua_select.c:173
msgid "Select FileSet resource"
msgstr ""
-#: src/dird/ua_restore.c:1017
+#: src/dird/ua_restore.c:1042
#, c-format
msgid "Error getting FileSet record: %s\n"
msgstr ""
-#: src/dird/ua_restore.c:1018
+#: src/dird/ua_restore.c:1043
msgid ""
"This probably means you modified the FileSet.\n"
"Continuing anyway.\n"
msgstr ""
-#: src/dird/ua_restore.c:1033
+#: src/dird/ua_restore.c:1058
#, c-format
msgid "Pool \"%s\" not found, using any pool.\n"
msgstr ""
-#: src/dird/ua_restore.c:1059 src/dird/ua_restore.c:1075
+#: src/dird/ua_restore.c:1084 src/dird/ua_restore.c:1100
#, c-format
msgid "No Full backup before %s found.\n"
msgstr ""
-#: src/dird/ua_restore.c:1098
+#: src/dird/ua_restore.c:1123
msgid "No jobs found.\n"
msgstr ""
-#: src/dird/ua_restore.c:1264
+#: src/dird/ua_restore.c:1289
msgid ""
"Warning, the JobIds that you selected refer to more than one MediaType.\n"
"Restore is not possible. The MediaTypes used are:\n"
msgstr ""
-#: src/dird/ua_restore.c:1272
+#: src/dird/ua_restore.c:1297
msgid "No MediaType found for your JobIds.\n"
msgstr ""
-#: src/dird/ua_restore.c:1304
+#: src/dird/ua_restore.c:1329
#, c-format
msgid "Warning default storage overridden by %s on command line.\n"
msgstr ""
-#: src/dird/ua_restore.c:1315
+#: src/dird/ua_restore.c:1340
#, c-format
msgid ""
"\n"
msgid "Parameters to modify:\n"
msgstr ""
-#: src/dird/ua_run.c:646
+#: src/dird/ua_run.c:646 src/wx-console/wxbrestorepanel.cpp:380
+#: src/wx-console/wxbrestorepanel.cpp:808
+#: src/wx-console/wxbrestorepanel.cpp:1833
msgid "When"
msgstr ""
#: src/dird/ua_run.c:647 src/dird/pythondir.c:73 src/dird/pythondir.c:83
+#: src/wx-console/wxbrestorepanel.cpp:381
+#: src/wx-console/wxbrestorepanel.cpp:1079
+#: src/wx-console/wxbrestorepanel.cpp:1835
msgid "Priority"
msgstr ""
msgid "Verify Job"
msgstr ""
-#: src/dird/ua_run.c:655
+#: src/dird/ua_run.c:655 src/wx-console/wxbrestorepanel.cpp:373
+#: src/wx-console/wxbrestorepanel.cpp:1814
msgid "Bootstrap"
msgstr ""
-#: src/dird/ua_run.c:656
+#: src/dird/ua_run.c:656 src/wx-console/wxbrestorepanel.cpp:374
+#: src/wx-console/wxbrestorepanel.cpp:1055
+#: src/wx-console/wxbrestorepanel.cpp:1816
msgid "Where"
msgstr ""
-#: src/dird/ua_run.c:657
+#: src/dird/ua_run.c:657 src/wx-console/wxbrestorepanel.cpp:376
+#: src/wx-console/wxbrestorepanel.cpp:1063
+#: src/wx-console/wxbrestorepanel.cpp:1820
+#: src/wx-console/wxbrestorepanel.cpp:1821
+#: src/wx-console/wxbrestorepanel.cpp:1822
+#: src/wx-console/wxbrestorepanel.cpp:1823
+#: src/wx-console/wxbrestorepanel.cpp:1824
msgid "Replace"
msgstr ""
msgstr ""
#: src/dird/ua_run.c:665 src/filed/status.c:368 src/lib/util.c:319
-#: src/stored/status.c:402
+#: src/stored/status.c:406
msgid "Base"
msgstr ""
-#: src/dird/ua_run.c:666 src/filed/status.c:370 src/lib/util.c:321
-#: src/stored/status.c:404
+#: src/dird/ua_run.c:666 src/dird/ua_update.c:106 src/dird/ua_update.c:438
+#: src/filed/status.c:370 src/lib/util.c:321 src/stored/status.c:408
msgid "Full"
msgstr ""
#: src/dird/ua_run.c:667 src/filed/status.c:373 src/lib/util.c:324
-#: src/stored/status.c:407
+#: src/stored/status.c:411
msgid "Incremental"
msgstr ""
#: src/dird/ua_run.c:668 src/filed/status.c:376 src/lib/util.c:327
-#: src/stored/status.c:410
+#: src/stored/status.c:414
msgid "Differential"
msgstr ""
#: src/dird/ua_run.c:669 src/filed/status.c:379 src/lib/util.c:330
-#: src/stored/status.c:413
+#: src/stored/status.c:417
msgid "Since"
msgstr ""
msgstr ""
#: src/dird/ua_run.c:693 src/filed/status.c:382 src/lib/util.c:333
-#: src/stored/status.c:416
+#: src/stored/status.c:420
msgid "Verify Catalog"
msgstr ""
msgid "Select Client (File daemon) resource"
msgstr ""
+#: src/dird/ua_select.c:289 src/dird/ua_select.c:326
+msgid "fd"
+msgstr ""
+
#: src/dird/ua_select.c:297
#, c-format
msgid "Error: Client resource %s does not exist.\n"
msgid "Storage name given twice.\n"
msgstr ""
+#: src/dird/ua_select.c:788
+msgid "storage"
+msgstr ""
+
+#: src/dird/ua_select.c:789
+msgid "sd"
+msgstr ""
+
#: src/dird/ua_select.c:796
#, c-format
msgid "Expecting jobid=nn command, got: %s\n"
msgid "Job \"%s\" is not running.\n"
msgstr ""
+#: src/dird/ua_select.c:829
+#, c-format
+msgid "Storage resource \"%s\": not found\n"
+msgstr ""
+
#: src/dird/ua_select.c:862
msgid "Media Types defined in conf file:\n"
msgstr ""
msgid "You have messages.\n"
msgstr ""
+#: src/dird/ua_status.c:104 src/dird/ua_tree.c:59
+msgid "dir"
+msgstr ""
+
+#: src/dird/ua_status.c:105
+msgid "director"
+msgstr ""
+
#: src/dird/ua_status.c:126
msgid "Status available for:\n"
msgstr ""
+#: src/dird/ua_status.c:127
+msgid "Director"
+msgstr ""
+
+#: src/dird/ua_status.c:130
+msgid "All"
+msgstr ""
+
#: src/dird/ua_status.c:132
msgid "Select daemon type for status"
msgstr ""
-#: src/dird/ua_status.c:248 src/filed/status.c:71 src/stored/status.c:69
+#: src/dird/ua_status.c:245
#, c-format
-msgid "Daemon started %s, %d Job%s run since started.\n"
+msgid "%s Version: %s (%s) %s %s %s\n"
+msgstr ""
+
+#: src/dird/ua_status.c:249 src/stored/status.c:70
+#, c-format
+msgid "Daemon started %s, 1 Job run since started.\n"
+msgstr ""
+
+#: src/dird/ua_status.c:252 src/stored/status.c:73
+#, c-format
+msgid "Daemon started %s, %d Jobs run since started.\n"
msgstr ""
-#: src/dird/ua_status.c:252 src/filed/status.c:119 src/stored/status.c:73
+#: src/dird/ua_status.c:257 src/filed/status.c:119 src/stored/status.c:77
#, c-format
msgid " Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"
msgstr ""
-#: src/dird/ua_status.c:284
+#: src/dird/ua_status.c:277 src/dird/ua_status.c:482 src/dird/ua_status.c:644
+#: src/filed/status.c:196 src/filed/status.c:275 src/stored/status.c:317
+#: src/stored/status.c:393
+msgid "====\n"
+msgstr ""
+
+#: src/dird/ua_status.c:289
#, c-format
msgid ""
"\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:322
+#: src/dird/ua_status.c:327
#, c-format
msgid ""
"Failed to connect to Client %s.\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:330
+#: src/dird/ua_status.c:335
msgid "Connected to file daemon\n"
msgstr ""
-#: src/dird/ua_status.c:345
+#: src/dird/ua_status.c:350
msgid ""
"\n"
"Scheduled Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:346
+#: src/dird/ua_status.c:351
msgid ""
"Level Type Pri Scheduled Name Volume\n"
msgstr ""
-#: src/dird/ua_status.c:347
+#: src/dird/ua_status.c:352
msgid "===================================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:394
+#: src/dird/ua_status.c:399
#, c-format
msgid "%-14s %-8s %3d %-18s %-18s %s\n"
msgstr ""
-#: src/dird/ua_status.c:475
+#: src/dird/ua_status.c:480
msgid "No Scheduled Jobs.\n"
msgstr ""
-#: src/dird/ua_status.c:492 src/stored/status.c:265
+#: src/dird/ua_status.c:497 src/stored/status.c:269
msgid ""
"\n"
"Running Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:501
+#: src/dird/ua_status.c:506
#, c-format
msgid "Console connected at %s\n"
msgstr ""
-#: src/dird/ua_status.c:509
+#: src/dird/ua_status.c:514
msgid ""
"No Jobs running.\n"
"====\n"
msgstr ""
-#: src/dird/ua_status.c:514
+#: src/dird/ua_status.c:519
msgid " JobId Level Name Status\n"
msgstr ""
-#: src/dird/ua_status.c:515 src/filed/status.c:219 src/stored/status.c:333
+#: src/dird/ua_status.c:520 src/filed/status.c:219 src/stored/status.c:337
msgid "======================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:524
+#: src/dird/ua_status.c:529
msgid "is waiting execution"
msgstr ""
-#: src/dird/ua_status.c:527
+#: src/dird/ua_status.c:532
msgid "is running"
msgstr ""
-#: src/dird/ua_status.c:530
+#: src/dird/ua_status.c:535
msgid "is blocked"
msgstr ""
-#: src/dird/ua_status.c:533
+#: src/dird/ua_status.c:538
msgid "has terminated"
msgstr ""
-#: src/dird/ua_status.c:536
+#: src/dird/ua_status.c:541
msgid "has erred"
msgstr ""
-#: src/dird/ua_status.c:539
+#: src/dird/ua_status.c:544
msgid "has errors"
msgstr ""
-#: src/dird/ua_status.c:542
+#: src/dird/ua_status.c:547
msgid "has a fatal error"
msgstr ""
-#: src/dird/ua_status.c:545
+#: src/dird/ua_status.c:550
msgid "has verify differences"
msgstr ""
-#: src/dird/ua_status.c:548
+#: src/dird/ua_status.c:553
msgid "has been canceled"
msgstr ""
-#: src/dird/ua_status.c:552
+#: src/dird/ua_status.c:557
#, c-format
msgid "is waiting on Client %s"
msgstr ""
-#: src/dird/ua_status.c:558
+#: src/dird/ua_status.c:563
#, c-format
msgid "is waiting on Storage %s"
msgstr ""
-#: src/dird/ua_status.c:563
+#: src/dird/ua_status.c:568
msgid "is waiting on max Storage jobs"
msgstr ""
-#: src/dird/ua_status.c:566
+#: src/dird/ua_status.c:571
msgid "is waiting on max Client jobs"
msgstr ""
-#: src/dird/ua_status.c:569
+#: src/dird/ua_status.c:574
msgid "is waiting on max Job jobs"
msgstr ""
-#: src/dird/ua_status.c:572
+#: src/dird/ua_status.c:577
msgid "is waiting on max total jobs"
msgstr ""
-#: src/dird/ua_status.c:575
+#: src/dird/ua_status.c:580
msgid "is waiting for its start time"
msgstr ""
-#: src/dird/ua_status.c:578
+#: src/dird/ua_status.c:583
msgid "is waiting for higher priority jobs to finish"
msgstr ""
-#: src/dird/ua_status.c:583
+#: src/dird/ua_status.c:588
#, c-format
msgid "is in unknown state %c"
msgstr ""
-#: src/dird/ua_status.c:597
+#: src/dird/ua_status.c:602
msgid "is waiting for a mount request"
msgstr ""
-#: src/dird/ua_status.c:604
+#: src/dird/ua_status.c:609
msgid "is waiting for an appendable Volume"
msgstr ""
-#: src/dird/ua_status.c:611
+#: src/dird/ua_status.c:616
#, c-format
msgid "is waiting for Client %s to connect to Storage %s"
msgstr ""
-#: src/dird/ua_status.c:627
+#: src/dird/ua_status.c:632
#, c-format
msgid "%6d %-6s %-20s %s\n"
msgstr ""
-#: src/dird/ua_status.c:649 src/filed/status.c:209 src/stored/status.c:324
+#: src/dird/ua_status.c:654 src/filed/status.c:209 src/stored/status.c:328
msgid "No Terminated Jobs.\n"
msgstr ""
-#: src/dird/ua_status.c:654 src/stored/status.c:329
+#: src/dird/ua_status.c:659 src/stored/status.c:333
msgid ""
"\n"
"Terminated Jobs:\n"
msgstr ""
-#: src/dird/ua_status.c:655
+#: src/dird/ua_status.c:660
msgid " JobId Level Files Bytes Status Finished Name \n"
msgstr ""
-#: src/dird/ua_status.c:656
+#: src/dird/ua_status.c:661
msgid "========================================================================\n"
msgstr ""
-#: src/dird/ua_status.c:706 src/filed/status.c:266 src/stored/status.c:380
+#: src/dird/ua_status.c:692 src/filed/status.c:239 src/lib/util.c:184
+#: src/stored/status.c:357
+msgid "Created"
+msgstr ""
+
+#: src/dird/ua_status.c:696 src/filed/status.c:243 src/lib/util.c:197
+#: src/lib/util.c:264 src/stored/status.c:361
+msgid "Error"
+msgstr ""
+
+#: src/dird/ua_status.c:699 src/filed/status.c:246 src/stored/status.c:364
+msgid "Diffs"
+msgstr ""
+
+#: src/dird/ua_status.c:705 src/filed/status.c:252 src/lib/util.c:193
+#: src/lib/util.c:260 src/stored/btape.c:1160 src/stored/status.c:370
+#: src/wx-console/wxbconfigpanel.cpp:180
+msgid "OK"
+msgstr ""
+
+#: src/dird/ua_status.c:708 src/filed/status.c:255 src/stored/status.c:373
+msgid "Other"
+msgstr ""
+
+#: src/dird/ua_status.c:711 src/filed/status.c:266 src/stored/status.c:384
#, c-format
msgid "%6d %-6s %8s %14s %-7s %-8s %s\n"
msgstr ""
+#: src/dird/ua_status.c:719 src/stored/btape.c:180
+msgid "\n"
+msgstr ""
+
#: src/dird/ua_tree.c:57
msgid "cd"
msgstr ""
"\n"
msgstr ""
-#: src/dird/ua_tree.c:102 src/dird/ua_tree.c:629 src/dird/ua_tree.c:637
+#: src/dird/ua_tree.c:102 src/dird/ua_tree.c:633 src/dird/ua_tree.c:641
#, c-format
msgid "cwd is: %s\n"
msgstr ""
msgid "Illegal command. Enter \"done\" to exit.\n"
msgstr ""
-#: src/dird/ua_tree.c:296 src/dird/ua_tree.c:307 src/dird/ua_tree.c:322
+#: src/dird/ua_tree.c:296 src/dird/ua_tree.c:307 src/dird/ua_tree.c:324
msgid "No files marked.\n"
msgstr ""
#: src/dird/ua_tree.c:309
+msgid "1 file marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:311
#, c-format
-msgid "%s file%s marked.\n"
+msgid "%s files marked.\n"
msgstr ""
-#: src/dird/ua_tree.c:336
+#: src/dird/ua_tree.c:338
msgid "No directories marked.\n"
msgstr ""
-#: src/dird/ua_tree.c:338
+#: src/dird/ua_tree.c:340
+msgid "1 directory marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:342
+#, c-format
+msgid "%s directories marked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:363
#, c-format
-msgid "%s director%s marked.\n"
+msgid "%s total files/dirs. %s marked to be restored.\n"
msgstr ""
-#: src/dird/ua_tree.c:370
+#: src/dird/ua_tree.c:374
msgid "No file specification given.\n"
msgstr ""
-#: src/dird/ua_tree.c:621
+#: src/dird/ua_tree.c:502
+#, c-format
+msgid "Node %s has no children.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:583
+#, c-format
+msgid "%d total files; %d marked to be restored; %s bytes.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:625
msgid "Invalid path given.\n"
msgstr ""
-#: src/dird/ua_tree.c:648 src/dird/ua_tree.c:659
+#: src/dird/ua_tree.c:652 src/dird/ua_tree.c:663
msgid "No files unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:661
+#: src/dird/ua_tree.c:665
+msgid "1 file unmarked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:667
#, c-format
-msgid "%d file%s unmarked.\n"
+msgid "%d files unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:672 src/dird/ua_tree.c:688
+#: src/dird/ua_tree.c:678 src/dird/ua_tree.c:694
msgid "No directories unmarked.\n"
msgstr ""
-#: src/dird/ua_tree.c:690
+#: src/dird/ua_tree.c:696
+msgid "1 directory unmarked.\n"
+msgstr ""
+
+#: src/dird/ua_tree.c:698
#, c-format
-msgid "%d director%s unmarked.\n"
+msgid "%d directories unmarked.\n"
msgstr ""
#: src/dird/verify.c:87
#: src/dird/verify.c:415
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" FileSet: %s\n"
"\n"
msgstr ""
-#: src/dird/verify.c:448
+#: src/dird/verify.c:450
#, c-format
msgid ""
-"): %s\n"
+"Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" FileSet: %s\n"
"\n"
msgstr ""
-#: src/dird/verify.c:522
+#: src/dird/verify.c:526
#, c-format
msgid ""
"bird<filed: bad attributes, expected 3 fields got %d\n"
" mslen=%d msg=%s\n"
msgstr ""
-#: src/dird/verify.c:566
+#: src/dird/verify.c:570
#, c-format
msgid "New file: %s\n"
msgstr ""
-#: src/dird/verify.c:567
+#: src/dird/verify.c:571
#, c-format
msgid "File not in catalog: %s\n"
msgstr ""
-#: src/dird/verify.c:591
+#: src/dird/verify.c:595
#, c-format
msgid " st_ino differ. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:600
+#: src/dird/verify.c:604
#, c-format
msgid " st_mode differ. Cat: %x File: %x\n"
msgstr ""
-#: src/dird/verify.c:608
+#: src/dird/verify.c:612
#, c-format
msgid " st_nlink differ. Cat: %d File: %d\n"
msgstr ""
-#: src/dird/verify.c:616
+#: src/dird/verify.c:620
#, c-format
msgid " st_uid differ. Cat: %u File: %u\n"
msgstr ""
-#: src/dird/verify.c:624
+#: src/dird/verify.c:628
#, c-format
msgid " st_gid differ. Cat: %u File: %u\n"
msgstr ""
-#: src/dird/verify.c:632
+#: src/dird/verify.c:636
#, c-format
msgid " st_size differ. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:641
+#: src/dird/verify.c:645
msgid " st_atime differs\n"
msgstr ""
-#: src/dird/verify.c:648
+#: src/dird/verify.c:652
msgid " st_mtime differs\n"
msgstr ""
-#: src/dird/verify.c:655
+#: src/dird/verify.c:659
msgid " st_ctime differs\n"
msgstr ""
-#: src/dird/verify.c:662
+#: src/dird/verify.c:666
#, c-format
msgid " st_size decrease. Cat: %s File: %s\n"
msgstr ""
-#: src/dird/verify.c:701
+#: src/dird/verify.c:705
#, c-format
msgid " %s not same. File=%s Cat=%s\n"
msgstr ""
-#: src/dird/verify.c:704
+#: src/dird/verify.c:708
#, c-format
msgid " %s differs.\n"
msgstr ""
-#: src/dird/verify.c:716
+#: src/dird/verify.c:720
#, c-format
msgid "bdird<filed: bad attributes from filed n=%d : %s\n"
msgstr ""
-#: src/dird/verify.c:753
+#: src/dird/verify.c:757
msgid "The following files are missing:\n"
msgstr ""
-#: src/dird/verify.c:767
+#: src/dird/verify.c:771 src/tools/testfind.c:338
#, c-format
msgid "File: %s\n"
msgstr ""
msgid "Choose catalog item to update"
msgstr ""
+#: src/dird/ua_update.c:103 src/dird/ua_update.c:435
+msgid "Append"
+msgstr ""
+
+#: src/dird/ua_update.c:104 src/dird/ua_update.c:436
+msgid "Archive"
+msgstr ""
+
+#: src/dird/ua_update.c:105 src/dird/ua_update.c:437
+msgid "Disabled"
+msgstr ""
+
+#: src/dird/ua_update.c:107 src/dird/ua_update.c:439
+msgid "Used"
+msgstr ""
+
+#: src/dird/ua_update.c:108 src/dird/ua_update.c:440
+msgid "Cleaning"
+msgstr ""
+
+#: src/dird/ua_update.c:109 src/dird/ua_update.c:355 src/dird/ua_update.c:442
+msgid "Recycle"
+msgstr ""
+
+#: src/dird/ua_update.c:110 src/dird/ua_update.c:444
+msgid "Read-Only"
+msgstr ""
+
#: src/dird/ua_update.c:122
#, c-format
msgid "Invalid VolStatus specified: %s\n"
msgid "MaxVolBytes"
msgstr ""
-#: src/dird/ua_update.c:355
-msgid "Recycle"
-msgstr ""
-
#: src/dird/ua_update.c:357
msgid "FromPool"
msgstr ""
msgid "Possible Values are:\n"
msgstr ""
+#: src/dird/ua_update.c:441
+msgid "Purged"
+msgstr ""
+
#: src/dird/ua_update.c:445
msgid "Choose new Volume Status"
msgstr ""
msgid "Enter new Pool name: "
msgstr ""
+#: src/dird/ua_update.c:598
+msgid "Selection done.\n"
+msgstr ""
+
#: src/dird/ua_update.c:631
#, c-format
msgid "db_update_pool_record returned %d. ERR=%s\n"
msgid "VolumeName"
msgstr ""
-#: src/filed/authenticate.c:49 src/filed/authenticate.c:50
+#: src/dird/pythondir.c:104 src/filed/pythonfd.c:102 src/filed/pythonfd.c:156
+#: src/filed/pythonfd.c:220 src/stored/pythonsd.c:95 src/stored/pythonsd.c:160
+msgid "Job pointer not found."
+msgstr ""
+
+#: src/dird/pythondir.c:136
+msgid "Pool record not found."
+msgstr ""
+
+#: src/dird/pythondir.c:163 src/filed/pythonfd.c:133 src/stored/pythonsd.c:137
#, c-format
-msgid "I only authenticate directors, not %d\n"
+msgid "Attribute %s not found."
+msgstr ""
+
+#: src/dird/pythondir.c:206 src/dird/pythondir.c:212 src/filed/pythonfd.c:175
+#: src/stored/pythonsd.c:177
+msgid "Read-only attribute"
msgstr ""
-#: src/filed/authenticate.c:54 src/filed/authenticate.c:56
-#: src/stored/authenticate.c:57 src/stored/authenticate.c:59
+#: src/filed/authenticate.c:50
#, c-format
-msgid "Bad Hello command from Director at %s. Len=%d.\n"
+msgid "I only authenticate directors, not %d\n"
msgstr ""
-#: src/filed/authenticate.c:66 src/filed/authenticate.c:68
-#: src/stored/authenticate.c:68 src/stored/authenticate.c:70
+#: src/filed/authenticate.c:56 src/stored/authenticate.c:59
#, c-format
-msgid "Bad Hello command from Director at %s: %s\n"
+msgid "Bad Hello command from Director at %s. Len=%d.\n"
msgstr ""
-#: src/filed/authenticate.c:80 src/stored/authenticate.c:83
+#: src/filed/authenticate.c:68 src/stored/authenticate.c:70
#, c-format
-msgid "Connection from unknown Director %s at %s rejected.\n"
+msgid "Bad Hello command from Director at %s: %s\n"
msgstr ""
#: src/filed/authenticate.c:82 src/stored/authenticate.c:85
msgid " Cannot open %s: ERR=%s.\n"
msgstr ""
-#: src/filed/backup.c:293
+#: src/filed/backup.c:293 src/filed/verify.c:229
#, c-format
msgid " Cannot open resource fork for %s: ERR=%s.\n"
msgstr ""
msgid "Too many errors.\n"
msgstr ""
-#: src/filed/filed.c:63
+#: src/filed/backup.c:535
+#, c-format
+msgid "Error reading ACL of %s\n"
+msgstr ""
+
+#: src/filed/filed.c:62
+#, c-format
msgid ""
-")\n"
+"Copyright (C) 2000-2005 Kern Sibbald\n"
+"\n"
+"Version: %s (%s)\n"
"\n"
"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n"
" -c <file> use <file> as configuration file\n"
"\n"
msgstr ""
-#: src/filed/filed.c:279
+#: src/filed/filed.c:282
#, c-format
msgid ""
"No File daemon resource defined in %s\n"
"Without that I don't know who I am :-(\n"
msgstr ""
-#: src/filed/filed.c:284
+#: src/filed/filed.c:287
#, c-format
msgid "Only one Client resource permitted in %s\n"
msgstr ""
-#: src/filed/filed.c:307
+#: src/filed/filed.c:310
#, c-format
msgid ""
"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
"File daemon in %s.\n"
msgstr ""
-#: src/filed/filed.c:336
+#: src/filed/filed.c:339
#, c-format
msgid "No Director resource defined in %s\n"
msgstr ""
-#: src/filed/filed_conf.c:296
-#, c-format
-msgid "%s item is required in %s resource, but not found.\n"
-msgstr ""
-
-#: src/filed/filed_conf.c:327 src/filed/filed_conf.c:357
+#: src/filed/job.c:323
#, c-format
-msgid "Unknown resource type %d\n"
+msgid "2901 Job %s not found.\n"
msgstr ""
#: src/filed/job.c:339
msgid "2902 Error scanning cancel command.\n"
msgstr ""
+#: src/filed/job.c:361
+#, c-format
+msgid "2991 Bad setdebug command: %s\n"
+msgstr ""
+
#: src/filed/job.c:377
#, c-format
msgid "Bad estimate command: %s"
msgstr ""
+#: src/filed/job.c:378
+msgid "2992 Bad estimate command.\n"
+msgstr ""
+
#: src/filed/job.c:401
#, c-format
msgid "Bad Job Command: %s"
msgid "Bad RunBeforeJob command: %s\n"
msgstr ""
+#: src/filed/job.c:422 src/filed/job.c:435
+msgid "2905 Bad RunBeforeJob command.\n"
+msgstr ""
+
#: src/filed/job.c:448
#, c-format
msgid "Bad RunAfter command: %s\n"
msgstr ""
+#: src/filed/job.c:449
+msgid "2905 Bad RunAfterJob command.\n"
+msgstr ""
+
#: src/filed/job.c:475
#, c-format
msgid "%s could not execute. ERR=%s\n"
msgid "Cannot open FileSet input file: %s. ERR=%s\n"
msgstr ""
+#: src/filed/job.c:678
+#, c-format
+msgid "REGEX %s compile error. ERR=%s\n"
+msgstr ""
+
+#: src/filed/job.c:732
+#, c-format
+msgid "Invalid FileSet command: %s\n"
+msgstr ""
+
+#: src/filed/job.c:901 src/findlib/match.c:184
+#, c-format
+msgid "Unknown include/exclude option: %c\n"
+msgstr ""
+
#: src/filed/job.c:961 src/stored/fd_cmds.c:329
#, c-format
msgid "Could not create bootstrap file %s: ERR=%s\n"
msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n"
msgstr ""
+#: src/filed/job.c:1068
+#, c-format
+msgid "Unknown backup level: %s\n"
+msgstr ""
+
#: src/filed/job.c:1080
#, c-format
msgid "Bad level command: %s\n"
msgstr ""
+#: src/filed/job.c:1101
+#, c-format
+msgid "Bad session command: %s"
+msgstr ""
+
#: src/filed/job.c:1122
#, c-format
msgid "Bad storage command: %s"
msgid "Bad status %d returned from Storage Daemon.\n"
msgstr ""
+#: src/filed/job.c:1331
+#, c-format
+msgid "2994 Bad verify command: %s\n"
+msgstr ""
+
+#: src/filed/job.c:1346 src/filed/job.c:1385
+#, c-format
+msgid "2994 Bad verify level: %s\n"
+msgstr ""
+
#: src/filed/job.c:1425
#, c-format
msgid "Bad replace command. CMD=%s\n"
msgstr ""
#: src/filed/restore.c:218 src/filed/verify_vol.c:142
-#: src/stored/bextract.c:285 src/stored/bls.c:368 src/stored/bscan.c:640
+#: src/stored/bextract.c:289 src/stored/bls.c:372 src/stored/bscan.c:649
#, c-format
msgid "Record header file index %ld not equal record index %ld\n"
msgstr ""
-#: src/filed/restore.c:231 src/stored/bextract.c:294
+#: src/filed/restore.c:231 src/stored/bextract.c:298
#, c-format
msgid "%s stream not supported on this Client.\n"
msgstr ""
#: src/filed/restore.c:308
#, c-format
-msgid " Cannot open resource fork for %s\n"
+msgid " Cannot open resource fork for %s.\n"
msgstr ""
#: src/filed/restore.c:331
msgid " Could not set Finder Info on %s\n"
msgstr ""
-#: src/filed/restore.c:391 src/stored/bextract.c:445
+#: src/filed/restore.c:347
+#, c-format
+msgid "Can't restore ACL of %s\n"
+msgstr ""
+
+#: src/filed/restore.c:359
+#, c-format
+msgid "Can't restore default ACL of %s\n"
+msgstr ""
+
+#: src/filed/restore.c:391 src/stored/bextract.c:449
#, c-format
msgid "Unknown stream=%d ignored. This shouldn't happen!\n"
msgstr ""
msgid "%d non-supported acl streams ignored.\n"
msgstr ""
-#: src/filed/restore.c:498 src/stored/bextract.c:383
+#: src/filed/restore.c:450
+msgid "None"
+msgstr ""
+
+#: src/filed/restore.c:454
+msgid "Zlib errno"
+msgstr ""
+
+#: src/filed/restore.c:456
+msgid "Zlib stream error"
+msgstr ""
+
+#: src/filed/restore.c:458
+msgid "Zlib data error"
+msgstr ""
+
+#: src/filed/restore.c:460
+msgid "Zlib memory error"
+msgstr ""
+
+#: src/filed/restore.c:462
+msgid "Zlib buffer error"
+msgstr ""
+
+#: src/filed/restore.c:464
+msgid "Zlib version error"
+msgstr ""
+
+#: src/filed/restore.c:466 src/lib/util.c:546 src/lib/util.c:556
+#: src/lib/util.c:564 src/lib/util.c:571 src/lib/util.c:578 src/lib/util.c:592
+#: src/lib/util.c:602 src/lib/util.c:609 src/lib/util.c:620
+msgid "*none*"
+msgstr ""
+
+#: src/filed/restore.c:498 src/stored/bextract.c:387
#, c-format
msgid "Seek to %s error on %s: ERR=%s\n"
msgstr ""
msgid "Uncompression error on file %s. ERR=%s\n"
msgstr ""
-#: src/filed/restore.c:530
+#: src/filed/restore.c:530 src/stored/bextract.c:421
msgid "GZIP data stream found, but GZIP not configured!\n"
msgstr ""
-#: src/filed/restore.c:539 src/stored/bextract.c:355 src/stored/bextract.c:405
+#: src/filed/restore.c:539 src/stored/bextract.c:359 src/stored/bextract.c:409
#, c-format
msgid "Write error on %s: %s\n"
msgstr ""
+#: src/filed/status.c:67
+#, c-format
+msgid "%s Version: %s (%s) %s %s %s %s\n"
+msgstr ""
+
+#: src/filed/status.c:71
+#, c-format
+msgid "Daemon started %s, %d Job%s run since started.\n"
+msgstr ""
+
#: src/filed/status.c:125
#, c-format
msgid " Sizeof: off_t=%d size_t=%d debug=%d trace=%d\n"
msgid " %s%s Job started: %s\n"
msgstr ""
-#: src/filed/status.c:165 src/stored/status.c:292
+#: src/filed/status.c:165 src/stored/status.c:296
#, c-format
msgid " Files=%s Bytes=%s Bytes/sec=%s\n"
msgstr ""
msgid " SDSocket closed.\n"
msgstr ""
-#: src/filed/status.c:196
-msgid "====\n"
-msgstr ""
-
#: src/filed/status.c:215
msgid "Terminated Jobs:\n"
msgstr ""
msgid " JobId Level Files Bytes Status Finished Name \n"
msgstr ""
-#: src/filed/status.c:321 src/filed/status.c:347 src/stored/status.c:464
-#: src/stored/status.c:489
+#: src/filed/status.c:321 src/filed/status.c:347 src/stored/status.c:468
+#: src/stored/status.c:493
#, c-format
msgid "Bad .status command: %s\n"
msgstr ""
-#: src/filed/status.c:385 src/stored/status.c:419
+#: src/filed/status.c:322
+msgid "2900 Bad .status command, missing argument.\n"
+msgstr ""
+
+#: src/filed/status.c:348
+msgid "2900 Bad .status command, wrong argument.\n"
+msgstr ""
+
+#: src/filed/status.c:385 src/stored/status.c:423
msgid "Init Catalog"
msgstr ""
-#: src/filed/status.c:388 src/stored/status.c:422
+#: src/filed/status.c:388 src/stored/status.c:426
msgid "Volume to Catalog"
msgstr ""
-#: src/filed/status.c:391 src/stored/status.c:425
+#: src/filed/status.c:391 src/stored/status.c:429
msgid "Disk to Catalog"
msgstr ""
-#: src/filed/status.c:394 src/stored/status.c:428
+#: src/filed/status.c:394 src/stored/status.c:432
msgid "Data"
msgstr ""
-#: src/filed/status.c:400 src/lib/util.c:351 src/stored/status.c:434
+#: src/filed/status.c:400 src/lib/util.c:351 src/stored/status.c:438
msgid "Unknown Job Level"
msgstr ""
msgid "Network error in send to Director: ERR=%s\n"
msgstr ""
-#: src/filed/verify.c:229
-#, c-format
-msgid " Cannot open resource fork for %s: ERR=%s\n"
-msgstr ""
-
#: src/filed/verify.c:284
#, c-format
msgid "Error reading file %s: ERR=%s\n"
msgid "FDName"
msgstr ""
+#: src/filed/pythonfd.c:150 src/stored/pythonsd.c:154
+#, c-format
+msgid "Cannot delete attribute %s"
+msgstr ""
+
+#: src/filed/pythonfd.c:168 src/filed/pythonfd.c:184 src/stored/pythonsd.c:187
+#, c-format
+msgid "Cannot find attribute %s"
+msgstr ""
+
#: src/findlib/attribs.c:340
#, c-format
msgid "File size of restored file %s not correct. Original %s, restored %s.\n"
msgid "Error in %s: ERR=%s\n"
msgstr ""
+#: src/findlib/bfile.c:67
+msgid "GZIP data"
+msgstr ""
+
+#: src/findlib/bfile.c:69
+msgid "GZIP sparse data"
+msgstr ""
+
+#: src/findlib/bfile.c:71
+msgid "Win32 data"
+msgstr ""
+
+#: src/findlib/bfile.c:73
+msgid "Win32 GZIP data"
+msgstr ""
+
+#: src/findlib/bfile.c:75
+msgid "File attributes"
+msgstr ""
+
+#: src/findlib/bfile.c:77
+msgid "File data"
+msgstr ""
+
+#: src/findlib/bfile.c:79
+msgid "MD5 signature"
+msgstr ""
+
+#: src/findlib/bfile.c:81
+msgid "Extended attributes"
+msgstr ""
+
+#: src/findlib/bfile.c:83
+msgid "Sparse data"
+msgstr ""
+
+#: src/findlib/bfile.c:85
+msgid "Program names"
+msgstr ""
+
+#: src/findlib/bfile.c:87
+msgid "Program data"
+msgstr ""
+
+#: src/findlib/bfile.c:89
+msgid "SHA1 signature"
+msgstr ""
+
+#: src/findlib/bfile.c:91
+msgid "HFS+ resource fork"
+msgstr ""
+
+#: src/findlib/bfile.c:93
+msgid "HFS+ Finder Info"
+msgstr ""
+
#: src/findlib/create_file.c:86
#, c-format
msgid "File skipped. Not newer: %s\n"
msgid "File %s already exists and could not be replaced. ERR=%s.\n"
msgstr ""
+#: src/findlib/create_file.c:170 src/findlib/create_file.c:271
+#: src/findlib/create_file.c:322
+#, c-format
+msgid "bpkt already open fid=%d\n"
+msgstr ""
+
#: src/findlib/create_file.c:192
msgid "Could not save_dirn"
msgstr ""
msgid "Cannot make node %s: ERR=%s\n"
msgstr ""
-#: src/findlib/create_file.c:276 src/findlib/create_file.c:333
-#, c-format
-msgid "Could not open %s: ERR=%s\n"
-msgstr ""
-
#: src/findlib/create_file.c:291
#, c-format
msgid "Could not symlink %s -> %s: ERR=%s\n"
msgid "Zero length filename: %s\n"
msgstr ""
+#: src/findlib/enable_priv.c:85
+msgid "AdjustTokenPrivileges set "
+msgstr ""
+
#: src/findlib/find_one.c:168
#, c-format
msgid "Top level directory \"%s\" has an unlisted fstype\n"
msgid "Cannot change permissions of %s: ERR=%s\n"
msgstr ""
+#: src/findlib/save-cwd.c:48
+#, c-format
+msgid "Cannot open current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:62
+#, c-format
+msgid "Current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:84
+#, c-format
+msgid "Cannot get current directory: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:105
+#, c-format
+msgid "Cannot return to %s from %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:109
+#, c-format
+msgid "Cannot return to saved working directory from %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:115
+#, c-format
+msgid "Cannot return to %s: %s\n"
+msgstr ""
+
+#: src/findlib/save-cwd.c:119
+#, c-format
+msgid "Cannot return to saved working directory: %s\n"
+msgstr ""
+
#: src/gnome2-console/authenticate.c:74
#, c-format
msgid "%s: Director authorization problem.\n"
msgid ""
"Copyright (C) 2002-2005 Kern Sibbald\n"
"\n"
-"Version: "
-msgstr ""
-
-#: src/gnome2-console/console.c:89
-#, c-format
-msgid ""
-") %s %s %s\n"
+"Version: %s (%s) %s %s %s\n"
"\n"
"Usage: gnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n"
" -c <file> set configuration file to file\n"
"\n"
msgstr ""
-#: src/gnome2-console/console.c:215
+#: src/gnome2-console/console.c:219
#, c-format
msgid "Pthread cond init error = %s\n"
msgstr ""
-#: src/gnome2-console/console.c:357
+#: src/gnome2-console/console.c:361
msgid " Not Connected"
msgstr ""
-#: src/gnome2-console/console.c:478
+#: src/gnome2-console/console.c:482
#, c-format
msgid " Connecting to Director %s:%d"
msgstr ""
-#: src/gnome2-console/console.c:479
+#: src/gnome2-console/console.c:483
#, c-format
msgid ""
"Connecting to Director %s:%d\n"
"\n"
msgstr ""
-#: src/gnome2-console/console.c:591
+#: src/gnome2-console/console.c:498 src/wx-console/console_thread.cpp:354
+#, c-format
+msgid "Passphrase for Console \"%s\" TLS private key: "
+msgstr ""
+
+#: src/gnome2-console/console.c:520 src/wx-console/console_thread.cpp:375
+#, c-format
+msgid "Passphrase for Director \"%s\" TLS private key: "
+msgstr ""
+
+#: src/gnome2-console/console.c:539 src/tray-monitor/tray-monitor.c:860
+#: src/wx-console/console_thread.cpp:393
+msgid "Director daemon"
+msgstr ""
+
+#: src/gnome2-console/console.c:551
+msgid " Initializing ..."
+msgstr ""
+
+#: src/gnome2-console/console.c:587
+msgid " Connected"
+msgstr ""
+
+#: src/gnome2-console/console.c:595
msgid " Processing command ..."
msgstr ""
-#: src/gnome2-console/console.c:626
+#: src/gnome2-console/console.c:630
msgid " At prompt waiting for input ..."
msgstr ""
+#: src/gnome2-console/console.c:750
+msgid " Ready"
+msgstr ""
+
+#: src/gnome2-console/console_conf.c:135
+#, c-format
+msgid "Console: name=%s\n"
+msgstr ""
+
+#: src/gnome2-console/console_conf.c:138
+#, c-format
+msgid "ConsoleFont: name=%s font face=%s\n"
+msgstr ""
+
#: src/gnome2-console/interface.c:32
msgid "_Connect"
msgstr ""
msgid "Bacula Console"
msgstr ""
-#: src/gnome2-console/interface.c:231
+#: src/gnome2-console/interface.c:231 src/wx-console/wxbmainframe.cpp:229
+#: src/wx-console/wxbmainframe.cpp:589
msgid "Connect"
msgstr ""
msgstr ""
#: src/gnome2-console/interface.c:261 src/lib/util.c:298
+#: src/wx-console/wxbrestorepanel.cpp:426
+#: src/wx-console/wxbrestorepanel.cpp:1915
msgid "Restore"
msgstr ""
msgid " Status: "
msgstr ""
-#: src/gnome2-console/interface.c:326 src/gnome2-console/interface.c:1692
+#: src/gnome2-console/interface.c:326
msgid " "
msgstr ""
msgid "Select Director"
msgstr ""
-#: src/gnome2-console/interface.c:565
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:708 src/gnome2-console/interface.c:1616
msgid "Job:"
msgstr ""
msgid " Type:"
msgstr ""
-#: src/gnome2-console/interface.c:747 src/gnome2-console/interface.c:777
-#: src/gnome2-console/interface.c:1273 src/gnome2-console/interface.c:1664
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:757 src/gnome2-console/interface.c:1644
+#: src/wx-console/wxbrestorepanel.cpp:1828
msgid "Client:"
msgstr ""
msgid "FileSet: "
msgstr ""
-#: src/gnome2-console/interface.c:813
+#: src/gnome2-console/interface.c:813 src/wx-console/wxbrestorepanel.cpp:1834
msgid "Priority:"
msgstr ""
msgid "Level:"
msgstr ""
-#: src/gnome2-console/interface.c:857
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:866 src/gnome2-console/interface.c:1418
#: src/gnome2-console/interface.c:1700
msgid "Pool:"
msgstr ""
-#: src/gnome2-console/interface.c:886 src/gnome2-console/interface.c:915
-#: src/gnome2-console/interface.c:943 src/gnome2-console/interface.c:961
-#: src/gnome2-console/interface.c:979 src/gnome2-console/interface.c:997
-#: src/gnome2-console/interface.c:1001 src/gnome2-console/interface.c:1471
-#: src/gnome2-console/interface.c:1720 src/gnome2-console/interface.c:1748
-#: src/gnome2-console/interface.c:1765 src/gnome2-console/interface.c:1769
-msgid " "
-msgstr ""
-
#: src/gnome2-console/interface.c:895 src/gnome2-console/interface.c:1393
-#: src/gnome2-console/interface.c:1728
+#: src/gnome2-console/interface.c:1728 src/wx-console/wxbrestorepanel.cpp:1830
msgid "Storage:"
msgstr ""
msgid "Where: "
msgstr ""
-#: src/gnome2-console/interface.c:970
+#: src/gnome2-console/interface.c:970 src/wx-console/wxbrestorepanel.cpp:1832
msgid "When:"
msgstr ""
-#: src/gnome2-console/interface.c:988
+#: src/gnome2-console/interface.c:988 src/wx-console/wxbrestorepanel.cpp:1813
msgid "Bootstrap:"
msgstr ""
msgid "Progress"
msgstr ""
-#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85
-#, c-format
+#: src/gnome2-console/restore.c:121
+msgid "Mark"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121
+msgid "Mode"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:330
+msgid "User"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:334
+msgid "Group"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:318
+msgid "Size"
+msgstr ""
+
+#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:322
+msgid "Date"
+msgstr ""
+
+#: src/gnome2-console/support.c:41
+#, c-format
+msgid "Widget not found: %s"
+msgstr ""
+
+#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85
+#, c-format
msgid "Couldn't find pixmap file: %s"
msgstr ""
+#: src/gnome2-console/support.c:92
+#, c-format
+msgid "Failed to load pixbuf file: %s: %s\n"
+msgstr ""
+
#: src/lib/address_conf.c:55
#, c-format
msgid "Only ipv4 and ipv6 are supported (%d)\n"
msgid "Can't add default address (%s)\n"
msgstr ""
+#: src/lib/address_conf.c:285
+msgid "the old style addresses cannot be mixed with new style"
+msgstr ""
+
+#: src/lib/address_conf.c:308
+#, c-format
+msgid "can't resolve service(%s)"
+msgstr ""
+
+#: src/lib/address_conf.c:318
+#, c-format
+msgid "can't resolve hostname(%s) %s"
+msgstr ""
+
#: src/lib/address_conf.c:407
#, c-format
msgid "Expected a block begin { , got: %s"
msgid "Error scanning attributes: %s\n"
msgstr ""
+#: src/lib/berrno.c:66
+msgid "Child exited normally."
+msgstr ""
+
+#: src/lib/berrno.c:73
+msgid "Unknown error during program execvp"
+msgstr ""
+
+#: src/lib/berrno.c:76
+#, c-format
+msgid "Child exited with code %d"
+msgstr ""
+
+#: src/lib/berrno.c:84
+#, c-format
+msgid "Child died from signal %d: %s"
+msgstr ""
+
#: src/lib/berrno.c:90
msgid "Invalid errno. No error message possible."
msgstr ""
+#: src/lib/bget_msg.c:91
+msgid "Status OK\n"
+msgstr ""
+
+#: src/lib/bget_msg.c:95
+#, c-format
+msgid "bget_msg: unknown signal %d\n"
+msgstr ""
+
#: src/lib/bnet.c:102
#, c-format
msgid "Attr spool write error. ERR=%s\n"
msgid "TLS not configured.\n"
msgstr ""
+#: src/lib/bnet.c:607
+msgid "No problem."
+msgstr ""
+
+#: src/lib/bnet.c:610
+msgid "Authoritative answer for host not found."
+msgstr ""
+
+#: src/lib/bnet.c:613
+msgid "Non-authoritative for host not found, or ServerFail."
+msgstr ""
+
+#: src/lib/bnet.c:616
+msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP."
+msgstr ""
+
+#: src/lib/bnet.c:619
+msgid "Valid name, no data record of resquested type."
+msgstr ""
+
+#: src/lib/bnet.c:622
+msgid "Unknown error."
+msgstr ""
+
+#: src/lib/bnet.c:757
+#, c-format
+msgid "gethostbyname() for host \"%s\" failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:777
+#, c-format
+msgid "Socket open error. proto=%d port=%d. ERR=%s\n"
+msgstr ""
+
#: src/lib/bnet.c:786 src/lib/bnet.c:811 src/lib/bnet_server.c:200
#: src/lib/bnet_server.c:358
#, c-format
msgid "Cannot set SO_KEEPALIVE on socket: %s\n"
msgstr ""
-#: src/lib/bnet.c:847
+#: src/lib/bnet.c:842
+#, c-format
+msgid ""
+"Could not connect to %s on %s:%d. ERR=%s\n"
+"Retrying ...\n"
+msgstr ""
+
+#: src/lib/bnet.c:848
#, c-format
msgid "Unable to connect to %s on %s:%d. ERR=%s\n"
msgstr ""
-#: src/lib/bnet.c:925
+#: src/lib/bnet.c:926
msgid "Could not malloc BSOCK data buffer\n"
msgstr ""
-#: src/lib/bnet.c:932 src/lib/bnet.c:956
+#: src/lib/bnet.c:933 src/lib/bnet.c:957
#, c-format
msgid "sockopt error: %s\n"
msgstr ""
-#: src/lib/bnet.c:938 src/lib/bnet.c:962
+#: src/lib/bnet.c:939 src/lib/bnet.c:963
#, c-format
msgid "Warning network buffer = %d bytes not max size.\n"
msgstr ""
-#: src/lib/bnet.c:942 src/lib/bnet.c:966
+#: src/lib/bnet.c:943 src/lib/bnet.c:967
#, c-format
msgid "Network buffer size %d not multiple of tape block size.\n"
msgstr ""
+#: src/lib/bnet.c:987 src/lib/bnet.c:1020
+#, c-format
+msgid "fcntl F_GETFL error. ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:993 src/lib/bnet.c:1026 src/lib/bnet.c:1050
+#, c-format
+msgid "fcntl F_SETFL error. ERR=%s\n"
+msgstr ""
+
+#: src/lib/bnet.c:1104
+#, c-format
+msgid "Unknown sig %d"
+msgstr ""
+
#: src/lib/bnet_pkt.c:89 src/lib/bnet_pkt.c:147
#, c-format
msgid "Unknown BPKT type: %d\n"
#: src/lib/bnet_server.c:124
#, c-format
-msgid "Cannot bind port %d: ERR=%s. Retrying ...\n"
+msgid "Cannot bind port %d: ERR=%s: Retrying ...\n"
msgstr ""
#: src/lib/bnet_server.c:129
msgid "Socket accept error for %s. ERR=%s\n"
msgstr ""
+#: src/lib/bpipe.c:282 src/lib/bpipe.c:357
+msgid "Program killed by Bacula watchdog (timeout)\n"
+msgstr ""
+
+#: src/lib/bshm.c:69
+#, c-format
+msgid "shmget failure key = %x\n"
+msgstr ""
+
+#: src/lib/bshm.c:77
+#, c-format
+msgid "Could not get %d bytes of shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:102
+#, c-format
+msgid "Could not attach shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:123
+#, c-format
+msgid "Error detaching shared memory: %s\n"
+msgstr ""
+
+#: src/lib/bshm.c:139
+#, c-format
+msgid "Could not destroy shared memory: %s\n"
+msgstr ""
+
#: src/lib/bsys.c:176 src/lib/bsys.c:192 src/lib/bsys.c:202 src/lib/bsys.c:214
#, c-format
msgid "Out of memory: ERR=%s\n"
msgid "Mutex unlock failure. ERR=%s\n"
msgstr ""
+#: src/lib/bsys.c:396
+#, c-format
+msgid "Memset for %d bytes at %s:%d\n"
+msgstr ""
+
#: src/lib/bsys.c:425
#, c-format
msgid "Cannot open pid file. %s ERR=%s\n"
msgid "Could not open pid file. %s ERR=%s\n"
msgstr ""
-#: src/lib/bsys.c:535 src/lib/bsys.c:536
+#: src/lib/bsys.c:536
#, c-format
msgid "Could not create state file. %s ERR=%s\n"
msgstr ""
+#: src/lib/bsys.c:552
+#, c-format
+msgid "Write final hdr error: ERR=%s\n"
+msgstr ""
+
#: src/lib/bsys.c:574
#, c-format
msgid "Could not find specified group: %s\n"
msgid "Could not set specified userid: %s\n"
msgstr ""
+#: src/lib/btimers.c:239
+msgid "stop_btimer called with NULL btimer_id\n"
+msgstr ""
+
+#: src/lib/cram-md5.c:80 src/lib/cram-md5.c:105
+msgid "1999 Authorization failed.\n"
+msgstr ""
+
+#: src/lib/daemon.c:58
+#, c-format
+msgid "Cannot fork to become daemon: %s\n"
+msgstr ""
+
#: src/lib/edit.c:400
#, c-format
msgid "Illegal character \"%c\" in name.\n"
msgid "Name too long.\n"
msgstr ""
+#: src/lib/events.c:161
+msgid "Events not available"
+msgstr ""
+
+#: src/lib/jcr.c:277
+msgid "NULL jcr.\n"
+msgstr ""
+
#: src/lib/jcr.c:396
#, c-format
msgid "JCR use_count=%d JobId=%d\n"
"Watchdog sending kill after %d secs to thread stalled reading Director.\n"
msgstr ""
-#: src/lib/lex.c:79 src/wx-console/console_thread.cpp:190
+#: src/lib/lex.c:79 src/wx-console/console_thread.cpp:189
#, c-format
msgid "Problem probably begins at line %d.\n"
msgstr ""
-#: src/lib/lex.c:84
+#: src/lib/lex.c:84 src/wx-console/console_thread.cpp:194
#, c-format
msgid ""
"Config error: %s\n"
msgid "Config error: %s\n"
msgstr ""
+#: src/lib/lex.c:108
+msgid "Close of NULL file\n"
+msgstr ""
+
+#: src/lib/lex.c:181
+msgid "get_char: called after EOF\n"
+msgstr ""
+
#: src/lib/lex.c:220
#, c-format
msgid "Config token too long, file: %s, line %d, begins at line %d\n"
msgstr ""
+#: src/lib/lex.c:244
+msgid "none"
+msgstr ""
+
+#: src/lib/lex.c:245
+msgid "comment"
+msgstr ""
+
+#: src/lib/lex.c:246
+msgid "number"
+msgstr ""
+
+#: src/lib/lex.c:247
+msgid "ip_addr"
+msgstr ""
+
+#: src/lib/lex.c:248
+msgid "identifier"
+msgstr ""
+
+#: src/lib/lex.c:249
+msgid "string"
+msgstr ""
+
+#: src/lib/lex.c:250
+msgid "quoted_string"
+msgstr ""
+
#: src/lib/lex.c:286
#, c-format
msgid "expected a positive integer number, got: %s"
msgid "expected a string, got %s: %s"
msgstr ""
+#: src/lib/mem_pool.c:100
+#, c-format
+msgid "MemPool index %d larger than max %d\n"
+msgstr ""
+
+#: src/lib/mem_pool.c:118 src/lib/mem_pool.c:138 src/lib/mem_pool.c:173
+#: src/lib/mem_pool.c:244 src/lib/mem_pool.c:264 src/lib/mem_pool.c:302
+#: src/lib/mem_pool.c:521
+#, c-format
+msgid "Out of memory requesting %d bytes\n"
+msgstr ""
+
#: src/lib/message.c:253 src/lib/message.c:263
#, c-format
msgid "Could not open console message file %s: ERR=%s\n"
msgid "Could not get con mutex: ERR=%s\n"
msgstr ""
+#: src/lib/message.c:372
+#, c-format
+msgid "open mail pipe %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/message.c:378
+msgid "Bacula Message"
+msgstr ""
+
+#: src/lib/message.c:431
+msgid "open mail pipe failed.\n"
+msgstr ""
+
+#: src/lib/message.c:443
+#, c-format
+msgid "close error: ERR=%s\n"
+msgstr ""
+
#: src/lib/message.c:454
#, c-format
msgid "Mail prog: %s"
"ERR=%s\n"
msgstr ""
+#: src/lib/message.c:667 src/lib/message.c:689 src/lib/message.c:705
+#, c-format
+msgid "fopen %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/lib/message.c:933
+#, c-format
+msgid "%s: ABORTING due to ERROR in %s:%d\n"
+msgstr ""
+
+#: src/lib/message.c:937
+#, c-format
+msgid "%s: ERROR TERMINATION at %s:%d\n"
+msgstr ""
+
+#: src/lib/message.c:942
+#, c-format
+msgid "%s: Fatal Error because: "
+msgstr ""
+
+#: src/lib/message.c:944
+#, c-format
+msgid "%s: Fatal Error at %s:%d because:\n"
+msgstr ""
+
+#: src/lib/message.c:948
+#, c-format
+msgid "%s: ERROR: "
+msgstr ""
+
+#: src/lib/message.c:950
+#, c-format
+msgid "%s: ERROR in %s:%d "
+msgstr ""
+
+#: src/lib/message.c:953
+#, c-format
+msgid "%s: Warning: "
+msgstr ""
+
+#: src/lib/message.c:956
+#, c-format
+msgid "%s: Security violation: "
+msgstr ""
+
+#: src/lib/message.c:1032
+#, c-format
+msgid "%s ABORTING due to ERROR\n"
+msgstr ""
+
+#: src/lib/message.c:1035
+#, c-format
+msgid "%s ERROR TERMINATION\n"
+msgstr ""
+
+#: src/lib/message.c:1038
+#, c-format
+msgid "%s: %s Fatal error: "
+msgstr ""
+
+#: src/lib/message.c:1044
+#, c-format
+msgid "%s: %s Error: "
+msgstr ""
+
+#: src/lib/message.c:1050
+#, c-format
+msgid "%s: %s Warning: "
+msgstr ""
+
+#: src/lib/message.c:1053
+#, c-format
+msgid "%s: %s Security violation: "
+msgstr ""
+
#: src/lib/parse_conf.c:160
msgid "***UNKNOWN***"
msgstr ""
msgid "Unable to initialize resource lock. ERR=%s\n"
msgstr ""
-#: src/lib/parse_conf.c:211
-#, c-format
-msgid "Too many items in %s resource\n"
-msgstr ""
-
#: src/lib/parse_conf.c:262 src/lib/parse_conf.c:281
#, c-format
msgid "expected an =, got: %s"
msgid "expected a time period, got: %s"
msgstr ""
+#: src/lib/parse_conf.c:699
+#, c-format
+msgid "Expect a %s or %s, got: %s"
+msgstr ""
+
+#: src/lib/parse_conf.c:723
+#, c-format
+msgid "Expected a Tape Label keyword, got: %s"
+msgstr ""
+
#: src/lib/parse_conf.c:772
#, c-format
msgid "Cannot open config file \"%s\": %s\n"
msgid "not in resource definition: %s"
msgstr ""
-#: src/lib/parse_conf.c:819
-#, c-format
-msgid "expected an equals, got: %s"
-msgstr ""
-
#: src/lib/parse_conf.c:833
#, c-format
msgid ""
msgid "No previous regular expression"
msgstr ""
-#: src/lib/smartall.c:137 src/lib/smartall.c:228 src/lib/smartall.c:243
-msgid "Out of memory\n"
-msgstr ""
-
-#: src/lib/util.c:184
-msgid "Created"
+#: src/lib/rwlock.c:289
+msgid "rwl_writeunlock called too many times.\n"
msgstr ""
-#: src/lib/util.c:187
-msgid "Running"
+#: src/lib/rwlock.c:293
+msgid "rwl_writeunlock by non-owner.\n"
msgstr ""
-#: src/lib/util.c:190
-msgid "Blocked"
+#: src/lib/rwlock.c:358 src/lib/semlock.c:248
+#, c-format
+msgid "Write lock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:193 src/lib/util.c:260
-msgid "OK"
+#: src/lib/rwlock.c:365 src/lib/semlock.c:255
+#, c-format
+msgid "Write unlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:197 src/lib/util.c:264
-msgid "Error"
+#: src/lib/rwlock.c:375 src/lib/semlock.c:265
+#, c-format
+msgid "Read lock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:200
-msgid "Non-fatal error"
+#: src/lib/rwlock.c:382 src/lib/semlock.c:272
+#, c-format
+msgid "Read unlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:203 src/lib/util.c:270
-msgid "Canceled"
+#: src/lib/rwlock.c:391 src/lib/semlock.c:281
+#, c-format
+msgid "Thread %d found unchanged elements %d times\n"
msgstr ""
-#: src/lib/util.c:206
-msgid "Verify differences"
+#: src/lib/rwlock.c:423 src/lib/semlock.c:313
+#, c-format
+msgid "Init rwlock failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:209
-msgid "Waiting on FD"
+#: src/lib/rwlock.c:438 src/lib/semlock.c:328
+#, c-format
+msgid "Create thread failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:212
-msgid "Wait on SD"
+#: src/lib/rwlock.c:449 src/lib/semlock.c:339
+#, c-format
+msgid "Join thread failed. ERR=%s\n"
msgstr ""
-#: src/lib/util.c:215
-msgid "Wait for new Volume"
+#: src/lib/rwlock.c:452 src/lib/semlock.c:342
+#, c-format
+msgid "%02d: interval %d, writes %d, reads %d\n"
msgstr ""
-#: src/lib/util.c:218
-msgid "Waiting for mount"
+#: src/lib/rwlock.c:462 src/lib/semlock.c:352
+#, c-format
+msgid "data %02d: value %d, %d writes\n"
msgstr ""
-#: src/lib/util.c:221
-msgid "Waiting for Storage resource"
+#: src/lib/rwlock.c:467 src/lib/semlock.c:357
+#, c-format
+msgid "Total: %d thread writes, %d data writes\n"
msgstr ""
-#: src/lib/util.c:224
-msgid "Waiting for Job resource"
+#: src/lib/rwlock.c:539 src/lib/semlock.c:429
+msgid "Try write lock"
msgstr ""
-#: src/lib/util.c:227
-msgid "Waiting for Client resource"
+#: src/lib/rwlock.c:545 src/lib/semlock.c:435
+msgid "Try read lock"
msgstr ""
-#: src/lib/util.c:230
-msgid "Waiting on Max Jobs"
+#: src/lib/rwlock.c:600 src/lib/semlock.c:490
+msgid "Create thread"
msgstr ""
-#: src/lib/util.c:233
-msgid "Waiting for Start Time"
+#: src/lib/rwlock.c:610 src/lib/semlock.c:500
+msgid "Join thread"
msgstr ""
-#: src/lib/util.c:236
-msgid "Waiting on Priority"
+#: src/lib/rwlock.c:612 src/lib/semlock.c:502
+#, c-format
+msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n"
msgstr ""
-#: src/lib/util.c:243
+#: src/lib/rwlock.c:624 src/lib/semlock.c:514
#, c-format
-msgid "Unknown Job termination status=%d"
+msgid "data %02d: value %d, %d updates\n"
msgstr ""
-#: src/lib/util.c:267
-msgid "Fatal Error"
+#: src/lib/semlock.c:185
+msgid "sem_unlock by non-owner.\n"
msgstr ""
-#: src/lib/util.c:273
-msgid "Differences"
+#: src/lib/signal.c:61
+msgid "Invalid signal number"
msgstr ""
-#: src/lib/util.c:276
-msgid "Unknown term code"
+#: src/lib/signal.c:87
+#, c-format
+msgid "Bacula interrupted by signal %d: %s\n"
msgstr ""
-#: src/lib/util.c:304
-msgid "Unknown Type"
+#: src/lib/signal.c:100
+#, c-format
+msgid "Kaboom! %s, %s got signal %d. Attempting traceback.\n"
msgstr ""
-#: src/lib/util.c:336
-msgid "Verify Init Catalog"
+#: src/lib/signal.c:102
+#, c-format
+msgid "Kaboom! exepath=%s\n"
msgstr ""
-#: src/lib/util.c:345
-msgid "Verify Data"
+#: src/lib/signal.c:136
+#, c-format
+msgid "Fork error: ERR=%s\n"
msgstr ""
-#: src/lib/util.c:647
-msgid "Working directory not defined. Cannot continue.\n"
+#: src/lib/signal.c:143
+#, c-format
+msgid "Calling: %s %s %s\n"
msgstr ""
-#: src/lib/util.c:650
+#: src/lib/signal.c:145
#, c-format
-msgid "Working Directory: \"%s\" not found. Cannot continue.\n"
+msgid "execv: %s failed: ERR=%s\n"
msgstr ""
-#: src/lib/util.c:654
+#: src/lib/signal.c:160
#, c-format
-msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n"
+msgid "Traceback complete, attempting cleanup ...\n"
msgstr ""
-#: src/lib/watchdog.c:74
+#: src/lib/signal.c:168
#, c-format
-msgid "Unable to initialize watchdog lock. ERR=%s\n"
+msgid "It looks like the traceback worked ...\n"
msgstr ""
-#: src/lib/tls.c:108
+#: src/lib/signal.c:197
#, c-format
-msgid ""
-"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n"
+msgid "BA_NSIG too small (%d) should be (%d)\n"
msgstr ""
-#: src/lib/tls.c:155
-msgid "Error initializing SSL context"
+#: src/lib/signal.c:203
+msgid "UNKNOWN SIGNAL"
msgstr ""
-#: src/lib/tls.c:176
-msgid "Error loading certificate verification stores"
+#: src/lib/signal.c:204
+msgid "Hangup"
msgstr ""
-#: src/lib/tls.c:181
-msgid ""
-"Either a certificate file or a directory must be specified as a verification "
-"store\n"
+#: src/lib/signal.c:205
+msgid "Interrupt"
msgstr ""
-#: src/lib/tls.c:192
-msgid "Error loading certificate file"
+#: src/lib/signal.c:206
+msgid "Quit"
msgstr ""
-#: src/lib/tls.c:200
-msgid "Error loading private key"
+#: src/lib/signal.c:207
+msgid "Illegal instruction"
msgstr ""
-#: src/lib/tls.c:208
-msgid "Unable to open DH parameters file"
+#: src/lib/signal.c:208
+msgid "Trace/Breakpoint trap"
msgstr ""
-#: src/lib/tls.c:214
-msgid "Unable to load DH parameters from specified file"
+#: src/lib/signal.c:209
+msgid "Abort"
msgstr ""
-#: src/lib/tls.c:218
-msgid "Failed to set TLS Diffie-Hellman parameters"
+#: src/lib/signal.c:211
+msgid "EMT instruction (Emulation Trap)"
msgstr ""
-#: src/lib/tls.c:227
-msgid "Error setting cipher list, no valid ciphers available\n"
+#: src/lib/signal.c:214
+msgid "IOT trap"
msgstr ""
-#: src/lib/tls.c:275
-msgid "Peer failed to present a TLS certificate\n"
+#: src/lib/signal.c:216
+msgid "BUS error"
msgstr ""
-#: src/lib/tls.c:317
-#, c-format
-msgid "Peer %s failed to present a TLS certificate\n"
+#: src/lib/signal.c:217
+msgid "Floating-point exception"
msgstr ""
-#: src/lib/tls.c:587 src/lib/tls.c:591
-msgid "TLS shutdown failure."
+#: src/lib/signal.c:218
+msgid "Kill, unblockable"
msgstr ""
-#: src/lib/tls.c:642 src/lib/tls.c:658
-msgid "TLS read/write failure."
+#: src/lib/signal.c:219
+msgid "User-defined signal 1"
msgstr ""
-#: src/lib/tls.c:880
-msgid "Failed to seed OpenSSL PRNG\n"
+#: src/lib/signal.c:220
+msgid "Segmentation violation"
msgstr ""
-#: src/lib/tls.c:906
-msgid "Failed to save OpenSSL PRNG\n"
+#: src/lib/signal.c:221
+msgid "User-defined signal 2"
msgstr ""
-#: src/stored/acquire.c:98
-#, c-format
-msgid "Hey! num_writers=%d!!!!\n"
+#: src/lib/signal.c:222
+msgid "Broken pipe"
msgstr ""
-#: src/stored/acquire.c:146
-#, c-format
-msgid "Num_writers=%d not zero. Job %d canceled.\n"
+#: src/lib/signal.c:223
+msgid "Alarm clock"
msgstr ""
-#: src/stored/acquire.c:154
-#, c-format
-msgid "No volumes specified. Job %d canceled.\n"
+#: src/lib/signal.c:224
+msgid "Termination"
msgstr ""
-#: src/stored/acquire.c:182 src/stored/mount.c:72
-#, c-format
-msgid "Job %d canceled.\n"
+#: src/lib/signal.c:226
+msgid "Stack fault"
msgstr ""
-#: src/stored/acquire.c:193
-#, c-format
-msgid "Open device %s Volume \"%s\" failed (EIO): ERR=%s\n"
+#: src/lib/signal.c:228
+msgid "Child status has changed"
msgstr ""
-#: src/stored/acquire.c:208
-#, c-format
-msgid "Open device %s Volume \"%s\" failed: ERR=%s\n"
+#: src/lib/signal.c:229
+msgid "Continue"
msgstr ""
-#: src/stored/acquire.c:273 src/stored/mount.c:66
-#, c-format
-msgid "Too many errors trying to mount device %s.\n"
+#: src/lib/signal.c:230
+msgid "Stop, unblockable"
msgstr ""
-#: src/stored/acquire.c:282
-#, c-format
-msgid "Ready to read from volume \"%s\" on device %s.\n"
+#: src/lib/signal.c:231
+msgid "Keyboard stop"
msgstr ""
-#: src/stored/acquire.c:328 src/stored/reserve.c:617
-#, c-format
-msgid "Device %s is busy reading.\n"
+#: src/lib/signal.c:232
+msgid "Background read from tty"
msgstr ""
-#: src/stored/acquire.c:357
-#, c-format
-msgid "Wanted Volume \"%s\", but device %s is busy writing on \"%s\" .\n"
+#: src/lib/signal.c:233
+msgid "Background write to tty"
msgstr ""
-#: src/stored/acquire.c:374
-#, c-format
-msgid ""
-"Cannot recycle volume \"%s\" on device %s because it is in use by another "
-"job.\n"
+#: src/lib/signal.c:234
+msgid "Urgent condition on socket"
msgstr ""
-#: src/stored/acquire.c:396
-#, c-format
-msgid "Could not ready device %s for append.\n"
+#: src/lib/signal.c:235
+msgid "CPU limit exceeded"
msgstr ""
-#: src/stored/acquire.c:459 src/stored/block.c:353 src/stored/block.c:676
-#: src/stored/block.c:744
-#, c-format
-msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n"
+#: src/lib/signal.c:236
+msgid "File size limit exceeded"
msgstr ""
-#: src/stored/acquire.c:501
-#, c-format
-msgid "Alert: %s"
+#: src/lib/signal.c:237
+msgid "Virtual alarm clock"
msgstr ""
-#: src/stored/acquire.c:509
-#, c-format
-msgid "3997 Bad alert command: %s: ERR=%s.\n"
+#: src/lib/signal.c:238
+msgid "Profiling alarm clock"
msgstr ""
-#: src/stored/append.c:60
-msgid "Unable to set network buffer size.\n"
+#: src/lib/signal.c:239
+msgid "Window size change"
msgstr ""
-#: src/stored/append.c:88 src/stored/btape.c:1810
-#, c-format
-msgid "Write session label failed. ERR=%s\n"
+#: src/lib/signal.c:240
+msgid "I/O now possible"
msgstr ""
-#: src/stored/append.c:100
-#, c-format
-msgid "Network send error to FD. ERR=%s\n"
+#: src/lib/signal.c:242
+msgid "Power failure restart"
msgstr ""
-#: src/stored/append.c:137
-#, c-format
-msgid "Error reading data header from FD. ERR=%s\n"
+#: src/lib/signal.c:245
+msgid "No runnable lwp"
msgstr ""
-#: src/stored/append.c:159
-#, c-format
-msgid "Malformed data header from FD: %s\n"
+#: src/lib/signal.c:248
+msgid "SIGLWP special signal used by thread library"
msgstr ""
-#: src/stored/append.c:169
-msgid "File index from FD not positive or sequential\n"
+#: src/lib/signal.c:251
+msgid "Checkpoint Freeze"
msgstr ""
-#: src/stored/append.c:199 src/stored/append.c:269 src/stored/spool.c:242
-#, c-format
-msgid "Fatal append error on device %s: ERR=%s\n"
+#: src/lib/signal.c:254
+msgid "Checkpoint Thaw"
msgstr ""
-#: src/stored/append.c:224
-#, c-format
-msgid "Error updating file attributes. ERR=%s\n"
+#: src/lib/signal.c:257
+msgid "Thread Cancellation"
msgstr ""
-#: src/stored/append.c:237
-#, c-format
-msgid "Network error on data channel. ERR=%s\n"
+#: src/lib/signal.c:260
+msgid "Resource Lost (e.g. record-lock lost)"
msgstr ""
-#: src/stored/append.c:258 src/stored/btape.c:1926
-#, c-format
-msgid "Error writting end session label. ERR=%s\n"
+#: src/lib/smartall.c:137 src/lib/smartall.c:228 src/lib/smartall.c:243
+msgid "Out of memory\n"
msgstr ""
-#: src/stored/append.c:271
-msgid "Set ok=FALSE after write_block_to_device.\n"
+#: src/lib/smartall.c:165
+#, c-format
+msgid "Attempt to free NULL called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:161
-msgid "Network error on bnet_recv in req_vol_info.\n"
+#: src/lib/smartall.c:181
+#, c-format
+msgid "qp->qnext->qprev != qp called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:178
+#: src/lib/smartall.c:185
#, c-format
-msgid "Error getting Volume info: %s\n"
+msgid "qp->qprev->qnext != qp called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:284
-msgid "NULL Volume name. This shouldn't happen!!!\n"
+#: src/lib/smartall.c:194
+#, c-format
+msgid "Buffer overrun called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:289
-msgid "Attempt to update_volume_info in read mode!!!\n"
+#: src/lib/smartall.c:265
+#, c-format
+msgid "sm_realloc size: %d\n"
msgstr ""
-#: src/stored/askdir.c:349
+#: src/lib/smartall.c:306
#, c-format
-msgid "Error creating JobMedia record: ERR=%s\n"
+msgid "sm_realloc %d at %x from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:356
+#: src/lib/smartall.c:368
#, c-format
-msgid "Error creating JobMedia record: %s\n"
+msgid ""
+"\n"
+"Orphaned buffers exist. Dump terminated following\n"
+" discovery of bad links in chain of orphaned buffers.\n"
+" Buffer address with bad links: %lx\n"
msgstr ""
-#: src/stored/askdir.c:424
+#: src/lib/smartall.c:379
#, c-format
-msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n"
+msgid "Orphaned buffer: %6u bytes allocated at line %d of %s %s\n"
msgstr ""
-#: src/stored/askdir.c:452
+#: src/lib/smartall.c:415
#, c-format
-msgid ""
-"Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
-"Use \"mount\" command to release Job.\n"
+msgid "Damaged buffer found. Called from %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:462
+#: src/lib/smartall.c:445
#, c-format
msgid ""
-"Job %s waiting. Cannot find any appendable volumes.\n"
-"Please use the \"label\" command to create a new Volume for:\n"
-" Storage: %s\n"
-" Media type: %s\n"
-" Pool: %s\n"
+"\n"
+"Damaged buffers found at %s:%d\n"
msgstr ""
-#: src/stored/askdir.c:486 src/stored/askdir.c:590
+#: src/lib/smartall.c:448
#, c-format
-msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n"
+msgid " discovery of bad prev link.\n"
msgstr ""
-#: src/stored/askdir.c:496 src/stored/askdir.c:503
+#: src/lib/smartall.c:451
#, c-format
-msgid "pthread error in mount_next_volume stat=%d ERR=%s\n"
+msgid " discovery of bad next link.\n"
msgstr ""
-#: src/stored/askdir.c:514
+#: src/lib/smartall.c:454
#, c-format
-msgid ""
-"Someone woke me up, but I cannot find any appendable\n"
-"volumes for Job=%s.\n"
+msgid " discovery of data overrun.\n"
msgstr ""
-#: src/stored/askdir.c:559
-msgid "Cannot request another volume: no volume name given.\n"
+#: src/lib/smartall.c:457
+#, c-format
+msgid " Buffer address: %lx\n"
msgstr ""
-#: src/stored/askdir.c:565
+#: src/lib/smartall.c:464
#, c-format
-msgid "Job %s canceled while waiting for mount on Storage Device %s.\n"
+msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n"
msgstr ""
-#: src/stored/askdir.c:571
-msgid "Please mount"
+#: src/lib/util.c:187
+msgid "Running"
msgstr ""
-#: src/stored/askdir.c:572
-#, c-format
-msgid "%s Volume \"%s\" on Storage Device %s for Job %s\n"
+#: src/lib/util.c:190
+msgid "Blocked"
msgstr ""
-#: src/stored/askdir.c:600
-#, c-format
-msgid "pthread error in mount_volume stat=%d ERR=%s\n"
+#: src/lib/util.c:200
+msgid "Non-fatal error"
msgstr ""
-#: src/stored/askdir.c:607
-#, c-format
-msgid "pthread error in mount_next_volume stat=%d: ERR=%s\n"
+#: src/lib/util.c:203 src/lib/util.c:270
+msgid "Canceled"
msgstr ""
-#: src/stored/authenticate.c:52 src/stored/authenticate.c:53
-#, c-format
-msgid "I only authenticate Directors, not %d\n"
+#: src/lib/util.c:206
+msgid "Verify differences"
msgstr ""
-#: src/stored/authenticate.c:120
-msgid ""
-"Incorrect password given by Director.\n"
-"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
-"help.\n"
+#: src/lib/util.c:209
+msgid "Waiting on FD"
msgstr ""
-#: src/stored/authenticate.c:177 src/stored/authenticate.c:178
-#, c-format
-msgid "Unable to authenticate Director at %s.\n"
+#: src/lib/util.c:212
+msgid "Wait on SD"
msgstr ""
-#: src/stored/authenticate.c:223 src/stored/authenticate.c:259
-#, c-format
-msgid ""
-"Incorrect authorization key from File daemon at %s rejected.\n"
-"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
-"help.\n"
+#: src/lib/util.c:215
+msgid "Wait for new Volume"
msgstr ""
-#: src/stored/autochanger.c:87
-#, c-format
-msgid "3303 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+#: src/lib/util.c:218
+msgid "Waiting for mount"
msgstr ""
-#: src/stored/autochanger.c:96
-#, c-format
-msgid "3992 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:221
+msgid "Waiting for Storage resource"
msgstr ""
-#: src/stored/autochanger.c:109
-#, c-format
-msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n"
+#: src/lib/util.c:224
+msgid "Waiting for Job resource"
msgstr ""
-#: src/stored/autochanger.c:116
-#, c-format
-msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n"
+#: src/lib/util.c:227
+msgid "Waiting for Client resource"
msgstr ""
-#: src/stored/autochanger.c:122
-#, c-format
-msgid "3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:230
+msgid "Waiting on Max Jobs"
msgstr ""
-#: src/stored/autochanger.c:167
-#, c-format
-msgid "3301 Issuing autochanger \"loaded drive %d\" command.\n"
+#: src/lib/util.c:233
+msgid "Waiting for Start Time"
msgstr ""
-#: src/stored/autochanger.c:176
-#, c-format
-msgid "3302 Autochanger \"loaded drive %d\", result is Slot %d.\n"
+#: src/lib/util.c:236
+msgid "Waiting on Priority"
msgstr ""
-#: src/stored/autochanger.c:180
+#: src/lib/util.c:243
#, c-format
-msgid "3302 Autochanger \"loaded drive %d\", result: nothing loaded.\n"
+msgid "Unknown Job termination status=%d"
msgstr ""
-#: src/stored/autochanger.c:187
-#, c-format
-msgid "3991 Bad autochanger \"loaded drive %d\" command: ERR=%s.\n"
+#: src/lib/util.c:267
+msgid "Fatal Error"
msgstr ""
-#: src/stored/autochanger.c:235
-#, c-format
-msgid "3993 Device %s not an autochanger device.\n"
+#: src/lib/util.c:273
+msgid "Differences"
msgstr ""
-#: src/stored/autochanger.c:253
-#, c-format
-msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+#: src/lib/util.c:276
+msgid "Unknown term code"
msgstr ""
-#: src/stored/autochanger.c:265
-#, c-format
-msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+#: src/lib/util.c:304
+msgid "Unknown Type"
msgstr ""
-#: src/stored/autochanger.c:277
-#, c-format
-msgid "3306 Issuing autochanger \"%s\" command.\n"
+#: src/lib/util.c:336
+msgid "Verify Init Catalog"
msgstr ""
-#: src/stored/autochanger.c:282
-msgid "3996 Open bpipe failed.\n"
+#: src/lib/util.c:345
+msgid "Verify Data"
msgstr ""
-#: src/stored/bcopy.c:58
-#, c-format
-msgid ""
-"Copyright (C) 2002-2005 Kern Sibbald.\n"
-"\n"
-"Version: "
+#: src/lib/util.c:647
+msgid "Working directory not defined. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:59
+#: src/lib/util.c:650
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: bcopy [-d debug_level] <input-archive> <output-archive>\n"
-" -b bootstrap specify a bootstrap file\n"
-" -c <file> specify configuration file\n"
-" -d <nn> set debug level to nn\n"
-" -i specify input Volume names (separated by |)\n"
-" -o specify output Volume names (separated by |)\n"
-" -p proceed inspite of errors\n"
-" -v verbose\n"
-" -w <dir> specify working directory (default /tmp)\n"
-" -? print this message\n"
-"\n"
-msgstr ""
-
-#: src/stored/bcopy.c:133 src/stored/bscan.c:217
-msgid "Wrong number of arguments: \n"
+msgid "Working Directory: \"%s\" not found. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:168 src/stored/btape.c:330 src/stored/device.c:273
+#: src/lib/util.c:654
#, c-format
-msgid "dev open failed: %s\n"
+msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n"
msgstr ""
-#: src/stored/bcopy.c:181
-msgid "Write of last block failed.\n"
+#: src/lib/var.c:2659
+msgid "everything ok"
msgstr ""
-#: src/stored/bcopy.c:184
-#, c-format
-msgid "%u Jobs copied. %u records copied.\n"
+#: src/lib/var.c:2660
+msgid "incomplete named character"
msgstr ""
-#: src/stored/bcopy.c:201 src/stored/bscan.c:380
-#, c-format
-msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n"
+#: src/lib/var.c:2661
+msgid "incomplete hexadecimal value"
msgstr ""
-#: src/stored/bcopy.c:231 src/stored/bcopy.c:238 src/stored/bcopy.c:261
-#: src/stored/btape.c:2286
-#, c-format
-msgid "Cannot fixup device error. %s\n"
+#: src/lib/var.c:2662
+msgid "invalid hexadecimal value"
msgstr ""
-#: src/stored/bextract.c:274
-msgid "Logic error output file should be open but is not.\n"
+#: src/lib/var.c:2663
+msgid "octal value too large"
msgstr ""
-#: src/stored/bextract.c:281 src/stored/bls.c:361 src/stored/bscan.c:636
-msgid "Cannot continue.\n"
+#: src/lib/var.c:2664
+msgid "invalid octal value"
msgstr ""
-#: src/stored/bextract.c:343
-#, c-format
-msgid "Seek error on %s: %s\n"
+#: src/lib/var.c:2665
+msgid "incomplete octal value"
msgstr ""
-#: src/stored/bextract.c:396
-#, c-format
-msgid "Uncompression error. ERR=%d\n"
+#: src/lib/var.c:2666
+msgid "incomplete grouped hexadecimal value"
msgstr ""
-#: src/stored/block.c:147
-#, c-format
-msgid "%d block read errors not printed.\n"
+#: src/lib/var.c:2667
+msgid "incorrect character class specification"
msgstr ""
-#: src/stored/block.c:235 src/stored/block.c:251 src/stored/block.c:261
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer "
-"discarded.\n"
+#: src/lib/var.c:2668
+msgid "invalid expansion configuration"
msgstr ""
-#: src/stored/block.c:275
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Block length %u is insane (too large), probably "
-"due to a bad archive.\n"
+#: src/lib/var.c:2669
+msgid "out of memory"
msgstr ""
-#: src/stored/block.c:301
-#, c-format
-msgid ""
-"Volume data error at %u:%u!\n"
-"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n"
+#: src/lib/var.c:2670
+msgid "incomplete variable specification"
msgstr ""
-#: src/stored/block.c:409
-msgid "Cannot write block. Device at EOM.\n"
+#: src/lib/var.c:2671
+msgid "undefined variable"
msgstr ""
-#: src/stored/block.c:414
-msgid "Attempt to write on read-only Volume.\n"
+#: src/lib/var.c:2672
+msgid "input is neither text nor variable"
msgstr ""
-#: src/stored/block.c:466
-#, c-format
-msgid "User defined maximum volume capacity %s exceeded on device %s.\n"
+#: src/lib/var.c:2673
+msgid "unknown command character in variable"
msgstr ""
-#: src/stored/block.c:481
-#, c-format
-msgid "Unable to write EOF. ERR=%s\n"
+#: src/lib/var.c:2674
+msgid "malformatted search and replace operation"
msgstr ""
-#: src/stored/block.c:536
-#, c-format
-msgid "Write error at %u:%u on device %s. ERR=%s.\n"
+#: src/lib/var.c:2675
+msgid "unknown flag in search and replace operation"
msgstr ""
-#: src/stored/block.c:543
-#, c-format
-msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n"
+#: src/lib/var.c:2676
+msgid "invalid regex in search and replace operation"
msgstr ""
-#: src/stored/block.c:618 src/stored/block.c:624
-#, c-format
-msgid "Backspace file at EOT failed. ERR=%s\n"
+#: src/lib/var.c:2677
+msgid "missing parameter in command"
msgstr ""
-#: src/stored/block.c:631
-#, c-format
-msgid "Backspace record at EOT failed. ERR=%s\n"
+#: src/lib/var.c:2678
+msgid "empty search string in search and replace operation"
msgstr ""
-#: src/stored/block.c:648
-#, c-format
-msgid "Re-read last block at EOT failed. ERR=%s"
+#: src/lib/var.c:2679
+msgid "start offset missing in cut operation"
msgstr ""
-#: src/stored/block.c:652
-msgid "Re-read of last block succeeded.\n"
+#: src/lib/var.c:2680
+msgid "offsets in cut operation delimited by unknown character"
msgstr ""
-#: src/stored/block.c:655
-#, c-format
-msgid "Re-read of last block failed. Last block=%u Current block=%u.\n"
+#: src/lib/var.c:2681
+msgid "range out of bounds in cut operation"
msgstr ""
-#: src/stored/block.c:790 src/stored/dvd.c:621
-#, c-format
-msgid ""
-"Error while writing, current part number is less than the total number of "
-"parts (%d/%d, device=%s)\n"
+#: src/lib/var.c:2682
+msgid "offset out of bounds in cut operation"
msgstr ""
-#: src/stored/block.c:798 src/stored/block.c:908
-#, c-format
-msgid "Unable to open device next part %s: ERR=%s\n"
+#: src/lib/var.c:2683
+msgid "logic error in cut operation"
msgstr ""
-#: src/stored/block.c:816
-#, c-format
-msgid ""
-"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
-"free_space_errno=%d, errmsg=%s).\n"
+#: src/lib/var.c:2684
+msgid "malformatted transpose operation"
msgstr ""
-#: src/stored/block.c:829
-#, c-format
-msgid ""
-"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
-"free_space_errno=%d).\n"
+#: src/lib/var.c:2685
+msgid "source and target class mismatch in transpose operation"
msgstr ""
-#: src/stored/block.c:883
-#, c-format
-msgid "Block buffer size looping problem on device %s\n"
+#: src/lib/var.c:2686
+msgid "empty character class in transpose operation"
msgstr ""
-#: src/stored/block.c:934
-#, c-format
-msgid "Read error at file:blk %u:%u on device %s. ERR=%s.\n"
+#: src/lib/var.c:2687
+msgid "incorrect character class in transpose operation"
msgstr ""
-#: src/stored/block.c:947
-#, c-format
-msgid "Read zero bytes at %u:%u on device %s.\n"
+#: src/lib/var.c:2688
+msgid "malformatted padding operation"
msgstr ""
-#: src/stored/block.c:960
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Very short block of %d bytes on device %s "
-"discarded.\n"
+#: src/lib/var.c:2689
+msgid "width parameter missing in padding operation"
msgstr ""
-#: src/stored/block.c:985
-#, c-format
-msgid "Block length %u is greater than buffer %u. Attempting recovery.\n"
+#: src/lib/var.c:2690
+msgid "fill string missing in padding operation"
msgstr ""
-#: src/stored/block.c:1004
-#, c-format
-msgid "Setting block buffer size to %u bytes.\n"
+#: src/lib/var.c:2691
+msgid "unknown quoted pair in search and replace operation"
msgstr ""
-#: src/stored/block.c:1019
-#, c-format
-msgid ""
-"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n"
+#: src/lib/var.c:2692
+msgid "sub-matching reference out of range"
msgstr ""
-#: src/stored/bls.c:125
-#, c-format
-msgid "Could not open exclude file: %s, ERR=%s\n"
+#: src/lib/var.c:2693
+msgid "invalid argument"
msgstr ""
-#: src/stored/bls.c:139
-#, c-format
-msgid "Could not open include file: %s, ERR=%s\n"
+#: src/lib/var.c:2694
+msgid "incomplete quoted pair"
msgstr ""
-#: src/stored/bls.c:186
-msgid "No archive name specified\n"
+#: src/lib/var.c:2695
+msgid "lookup function does not support variable arrays"
msgstr ""
-#: src/stored/bls.c:264
-#, c-format
-msgid "Got EOM at file %u on device %s, Volume \"%s\"\n"
+#: src/lib/var.c:2696
+msgid "index of array variable contains an invalid character"
msgstr ""
-#: src/stored/bls.c:275
-#, c-format
-msgid "Mounted Volume \"%s\".\n"
+#: src/lib/var.c:2697
+msgid "index of array variable is incomplete"
msgstr ""
-#: src/stored/bls.c:277
-#, c-format
-msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+#: src/lib/var.c:2698
+msgid "bracket expression in array variable's index not closed"
msgstr ""
-#: src/stored/bscan.c:109
-#, c-format
-msgid ""
-"Copyright (C) 2001-2005 Kern Sibbald.\n"
-"\n"
-"Version: "
+#: src/lib/var.c:2699
+msgid "division by zero error in index specification"
msgstr ""
-#: src/stored/bscan.c:110
-#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: bscan [ options ] <bacula-archive>\n"
-" -b bootstrap specify a bootstrap file\n"
-" -c <file> specify configuration file\n"
-" -d <nn> set debug level to nn\n"
-" -m update media info in database\n"
-" -n <name> specify the database name (default bacula)\n"
-" -u <user> specify database user name (default bacula)\n"
-" -P <password specify database password (default none)\n"
-" -h <host> specify database host (default NULL)\n"
-" -p proceed inspite of I/O errors\n"
-" -r list records\n"
-" -s synchronize or store in database\n"
-" -S show scan progress periodically\n"
-" -v verbose\n"
-" -V <Volumes> specify Volume names (separated by |)\n"
-" -w <dir> specify working directory (default from conf file)\n"
-" -? print this message\n"
-"\n"
+#: src/lib/var.c:2700
+msgid "unterminated loop construct"
msgstr ""
-#: src/stored/bscan.c:230 src/stored/stored.c:263
-#, c-format
-msgid "No Storage resource defined in %s. Cannot continue.\n"
+#: src/lib/var.c:2701
+msgid "invalid character in loop limits"
msgstr ""
-#: src/stored/bscan.c:238 src/stored/stored.c:294
-#, c-format
-msgid "No Working Directory defined in %s. Cannot continue.\n"
+#: src/lib/var.c:2702
+msgid "malformed operation argument list"
msgstr ""
-#: src/stored/bscan.c:246
-#, c-format
-msgid "Working Directory: %s not found. Cannot continue.\n"
+#: src/lib/var.c:2703
+msgid "undefined operation"
msgstr ""
-#: src/stored/bscan.c:250
-#, c-format
-msgid "Working Directory: %s is not a directory. Cannot continue.\n"
+#: src/lib/var.c:2704
+msgid "formatting failure"
msgstr ""
-#: src/stored/bscan.c:264 src/stored/bscan.c:331
-#, c-format
-msgid "First Volume Size = %sn"
+#: src/lib/var.c:2713
+msgid "unknown error"
msgstr ""
-#: src/stored/bscan.c:270
-msgid "Could not init Bacula database\n"
+#: src/lib/watchdog.c:74
+#, c-format
+msgid "Unable to initialize watchdog lock. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:277
-#, c-format
-msgid "Using Database: %s, User: %s\n"
+#: src/lib/watchdog.c:170
+msgid "BUG! register_watchdog called before start_watchdog\n"
msgstr ""
-#: src/stored/bscan.c:306
+#: src/lib/watchdog.c:173
#, c-format
-msgid "Create JobMedia for Job %s\n"
+msgid "BUG! Watchdog %p has NULL callback\n"
msgstr ""
-#: src/stored/bscan.c:316
+#: src/lib/watchdog.c:176
#, c-format
-msgid "Could not create JobMedia record for Volume=%s Job=%s\n"
+msgid "BUG! Watchdog %p has zero interval\n"
msgstr ""
-#: src/stored/bscan.c:396
-msgid "Volume is prelabeled. This tape cannot be scanned.\n"
+#: src/lib/watchdog.c:196
+msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n"
msgstr ""
-#: src/stored/bscan.c:408
+#: src/lib/watchdog.c:313
#, c-format
-msgid "Pool record for %s found in DB.\n"
+msgid "rwl_writelock failure. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:412
+#: src/lib/watchdog.c:327
#, c-format
-msgid "VOL_LABEL: Pool record not found for Pool: %s\n"
+msgid "rwl_writeunlock failure. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:418
-#, c-format
-msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n"
+#: src/lib/pythonlib.c:108
+msgid "Could not initialize Python\n"
msgstr ""
-#: src/stored/bscan.c:422
+#: src/lib/pythonlib.c:113
#, c-format
-msgid "Pool type \"%s\" is OK.\n"
+msgid "Could not Run Python string %s\n"
msgstr ""
-#: src/stored/bscan.c:432
-#, c-format
-msgid "Media record for %s found in DB.\n"
+#: src/lib/pythonlib.c:125
+msgid "Could not initialize Python Job type.\n"
msgstr ""
-#: src/stored/bscan.c:439
+#: src/lib/pythonlib.c:130
#, c-format
-msgid "VOL_LABEL: Media record not found for Volume: %s\n"
+msgid "Could not import Python script %s/%s. Python disabled.\n"
msgstr ""
-#: src/stored/bscan.c:446
-#, c-format
-msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n"
+#: src/lib/pythonlib.c:230
+msgid "Could not create Python Job Object.\n"
msgstr ""
-#: src/stored/bscan.c:450
+#: src/lib/pythonlib.c:243 src/lib/pythonlib.c:267
#, c-format
-msgid "Media type \"%s\" is OK.\n"
+msgid "Python function \"%s\" not found.\n"
msgstr ""
-#: src/stored/bscan.c:459
+#: src/lib/pythonlib.c:282
#, c-format
-msgid "VOL_LABEL: OK for Volume: %s\n"
+msgid "Unknown Python daemon event %s\n"
msgstr ""
-#: src/stored/bscan.c:466
+#: src/lib/res.c:66
#, c-format
-msgid "%d \"errors\" ignored before first Start of Session record.\n"
+msgid "rwl_writelock failure at %s:%d: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:477
+#: src/lib/res.c:76
#, c-format
-msgid "SOS_LABEL: Found Job record for JobId: %d\n"
+msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:482
+#: src/lib/tls.c:108
#, c-format
-msgid "SOS_LABEL: Job record not found for JobId: %d\n"
+msgid ""
+"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n"
msgstr ""
-#: src/stored/bscan.c:522
-#, c-format
-msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:155
+msgid "Error initializing SSL context"
msgstr ""
-#: src/stored/bscan.c:528
-#, c-format
-msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:176
+msgid "Error loading certificate verification stores"
msgstr ""
-#: src/stored/bscan.c:534
-#, c-format
-msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n"
+#: src/lib/tls.c:181
+msgid ""
+"Either a certificate file or a directory must be specified as a verification "
+"store\n"
msgstr ""
-#: src/stored/bscan.c:552 src/stored/bscan.c:998
-#, c-format
-msgid "Could not find SessId=%d SessTime=%d for EOS record.\n"
+#: src/lib/tls.c:192
+msgid "Error loading certificate file"
msgstr ""
-#: src/stored/bscan.c:595
-#, c-format
-msgid "Could not update job record. ERR=%s\n"
+#: src/lib/tls.c:200
+msgid "Error loading private key"
msgstr ""
-#: src/stored/bscan.c:606
-#, c-format
-msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n"
+#: src/lib/tls.c:208
+msgid "Unable to open DH parameters file"
msgstr ""
-#: src/stored/bscan.c:618
-#, c-format
-msgid "Could not find Job for SessId=%d SessTime=%d record.\n"
+#: src/lib/tls.c:214
+msgid "Unable to load DH parameters from specified file"
msgstr ""
-#: src/stored/bscan.c:654
-#, c-format
-msgid "%s file records. At file:blk=%s:%s bytes=%s\n"
+#: src/lib/tls.c:218
+msgid "Failed to set TLS Diffie-Hellman parameters"
msgstr ""
-#: src/stored/bscan.c:697
-#, c-format
-msgid "Got MD5 record: %s\n"
+#: src/lib/tls.c:227
+msgid "Error setting cipher list, no valid ciphers available\n"
msgstr ""
-#: src/stored/bscan.c:706
-#, c-format
-msgid "Got SHA1 record: %s\n"
+#: src/lib/tls.c:275
+msgid "Peer failed to present a TLS certificate\n"
msgstr ""
-#: src/stored/bscan.c:714
+#: src/lib/tls.c:317
#, c-format
-msgid "Got Prog Names Stream: %s\n"
+msgid "Peer %s failed to present a TLS certificate\n"
msgstr ""
-#: src/stored/bscan.c:720
-msgid "Got Prog Data Stream record.\n"
+#: src/lib/tls.c:416
+msgid "Error creating file descriptor-based BIO"
msgstr ""
-#: src/stored/bscan.c:724
-#, c-format
-msgid "Unknown stream type!!! stream=%d data=%s\n"
+#: src/lib/tls.c:427
+msgid "Error creating new SSL object"
msgstr ""
-#: src/stored/bscan.c:784
-#, c-format
-msgid "Could not create File Attributes record. ERR=%s\n"
+#: src/lib/tls.c:493 src/lib/tls.c:510
+msgid "Connect failure"
msgstr ""
-#: src/stored/bscan.c:790
-#, c-format
-msgid "Created File record: %s\n"
+#: src/lib/tls.c:587 src/lib/tls.c:591
+msgid "TLS shutdown failure."
msgstr ""
-#: src/stored/bscan.c:827
-#, c-format
-msgid "Could not create media record. ERR=%s\n"
+#: src/lib/tls.c:642 src/lib/tls.c:658
+msgid "TLS read/write failure."
msgstr ""
-#: src/stored/bscan.c:831 src/stored/bscan.c:852
+#: src/lib/tls.c:716 src/lib/tls.c:773 src/stored/dev.c:212
+#: src/stored/dev.c:230 src/stored/dev.c:236 src/stored/stored_conf.c:550
#, c-format
-msgid "Could not update media record. ERR=%s\n"
+msgid "Unable to init mutex: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:835
+#: src/lib/tls.c:736 src/lib/tls.c:805
#, c-format
-msgid "Created Media record for Volume: %s\n"
+msgid "Unable to destroy mutex: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:856
+#: src/lib/tls.c:870
#, c-format
-msgid "Updated Media record at end of Volume: %s\n"
+msgid "Unable to init OpenSSL threading: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:873
-#, c-format
-msgid "Could not create pool record. ERR=%s\n"
+#: src/lib/tls.c:880
+msgid "Failed to seed OpenSSL PRNG\n"
msgstr ""
-#: src/stored/bscan.c:877
-#, c-format
-msgid "Created Pool record for Pool: %s\n"
+#: src/lib/tls.c:906
+msgid "Failed to save OpenSSL PRNG\n"
msgstr ""
-#: src/stored/bscan.c:897
+#: src/stored/acquire.c:98
#, c-format
-msgid "Created Client record for Client: %s\n"
+msgid "Hey! num_writers=%d!!!!\n"
msgstr ""
-#: src/stored/bscan.c:914
+#: src/stored/acquire.c:146
#, c-format
-msgid "Fileset \"%s\" already exists.\n"
+msgid "Num_writers=%d not zero. Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:918
+#: src/stored/acquire.c:154
#, c-format
-msgid "Could not create FileSet record \"%s\". ERR=%s\n"
+msgid "No volumes specified. Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:923
+#: src/stored/acquire.c:182 src/stored/mount.c:72
#, c-format
-msgid "Created FileSet record \"%s\"\n"
+msgid "Job %d canceled.\n"
msgstr ""
-#: src/stored/bscan.c:970
+#: src/stored/acquire.c:193
#, c-format
-msgid "Could not create JobId record. ERR=%s\n"
+msgid "Open device %s Volume \"%s\" failed (EIO): ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:976
+#: src/stored/acquire.c:208
#, c-format
-msgid "Could not update job start record. ERR=%s\n"
+msgid "Open device %s Volume \"%s\" failed: ERR=%s\n"
msgstr ""
-#: src/stored/bscan.c:979
+#: src/stored/acquire.c:273 src/stored/mount.c:66
#, c-format
-msgid "Created new JobId=%u record for original JobId=%u\n"
+msgid "Too many errors trying to mount device %s.\n"
msgstr ""
-#: src/stored/bscan.c:1029
+#: src/stored/acquire.c:282
#, c-format
-msgid "Could not update JobId=%u record. ERR=%s\n"
+msgid "Ready to read from volume \"%s\" on device %s.\n"
msgstr ""
-#: src/stored/bscan.c:1034
+#: src/stored/acquire.c:328 src/stored/reserve.c:617
#, c-format
-msgid "Updated Job termination record for JobId=%u TermStat=%c\n"
+msgid "Device %s is busy reading.\n"
msgstr ""
-#: src/stored/bscan.c:1056
+#: src/stored/acquire.c:357
#, c-format
-msgid "Job Termination code: %d"
+msgid "Wanted Volume \"%s\", but device %s is busy writing on \"%s\" .\n"
msgstr ""
-#: src/stored/bscan.c:1061
+#: src/stored/acquire.c:374
#, c-format
msgid ""
-"%s\n"
-"JobId: %d\n"
-"Job: %s\n"
-"FileSet: %s\n"
-"Backup Level: %s\n"
-"Client: %s\n"
-"Start time: %s\n"
-"End time: %s\n"
-"Files Written: %s\n"
-"Bytes Written: %s\n"
-"Volume Session Id: %d\n"
-"Volume Session Time: %d\n"
-"Last Volume Bytes: %s\n"
-"Termination: %s\n"
-"\n"
+"Cannot recycle volume \"%s\" on device %s because it is in use by another "
+"job.\n"
msgstr ""
-#: src/stored/bscan.c:1125
+#: src/stored/acquire.c:396
#, c-format
-msgid "Could not create JobMedia record. ERR=%s\n"
+msgid "Could not ready device %s for append.\n"
msgstr ""
-#: src/stored/bscan.c:1129
+#: src/stored/acquire.c:459 src/stored/block.c:353 src/stored/block.c:676
+#: src/stored/block.c:744
#, c-format
-msgid "Created JobMedia record JobId %d, MediaId %d\n"
+msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n"
msgstr ""
-#: src/stored/bscan.c:1145
+#: src/stored/acquire.c:501
#, c-format
-msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n"
+msgid "Alert: %s"
msgstr ""
-#: src/stored/bscan.c:1159
+#: src/stored/acquire.c:509
#, c-format
-msgid "Could not add MD5/SHA1 to File record. ERR=%s\n"
+msgid "3997 Bad alert command: %s: ERR=%s.\n"
msgstr ""
-#: src/stored/bscan.c:1164
-msgid "Updated MD5/SHA1 record\n"
+#: src/stored/append.c:60
+msgid "Unable to set network buffer size.\n"
msgstr ""
-#: src/stored/btape.c:483
-msgid "Moved to end of medium.\n"
+#: src/stored/append.c:73 src/stored/append.c:82 src/stored/append.c:94
+#: src/stored/append.c:249 src/stored/append.c:264 src/stored/append.c:276
+#: src/stored/askdir.c:284 src/stored/askdir.c:285
+msgid "NULL Volume name. This shouldn't happen!!!\n"
msgstr ""
-#: src/stored/btape.c:510
+#: src/stored/append.c:88 src/stored/btape.c:1853
#, c-format
-msgid "Bad status from bsf. ERR=%s\n"
+msgid "Write session label failed. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:512
+#: src/stored/append.c:100
#, c-format
-msgid "Backspaced %d file%s.\n"
+msgid "Network send error to FD. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:529
+#: src/stored/append.c:137
#, c-format
-msgid "Bad status from bsr. ERR=%s\n"
+msgid "Error reading data header from FD. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:531
+#: src/stored/append.c:159
#, c-format
-msgid "Backspaced %d record%s.\n"
+msgid "Malformed data header from FD: %s\n"
msgstr ""
-#: src/stored/btape.c:541 src/stored/status.c:216
-#, c-format
-msgid "Configured device capabilities:\n"
+#: src/stored/append.c:169
+msgid "File index from FD not positive or sequential\n"
msgstr ""
-#: src/stored/btape.c:559
+#: src/stored/append.c:199 src/stored/append.c:269 src/stored/spool.c:247
#, c-format
-msgid "Device status:\n"
+msgid "Fatal append error on device %s: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:573 src/stored/status.c:248
+#: src/stored/append.c:224
#, c-format
-msgid "Device parameters:\n"
+msgid "Error updating file attributes. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:643
-msgid "Skipping read backwards test because BSR turned off.\n"
+#: src/stored/append.c:237
+#, c-format
+msgid "Network error on data channel. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:647
-msgid ""
-"\n"
-"=== Write, backup, and re-read test ===\n"
-"\n"
-"I'm going to write three records and an EOF\n"
-"then backup over the EOF and re-read the last record.\n"
-"Bacula does this after writing the last block on the\n"
-"tape to verify that the block was written correctly.\n"
-"\n"
-"This is not an *essential* feature ...\n"
-"\n"
+#: src/stored/append.c:258 src/stored/btape.c:1969
+#, c-format
+msgid "Error writting end session label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:660 src/stored/btape.c:671 src/stored/btape.c:682
-#: src/stored/btape.c:780 src/stored/btape.c:796 src/stored/btape.c:892
-#: src/stored/btape.c:908 src/stored/btape.c:1508 src/stored/btape.c:2351
-msgid "Error writing record to block.\n"
+#: src/stored/append.c:271
+msgid "Set ok=FALSE after write_block_to_device.\n"
msgstr ""
-#: src/stored/btape.c:664 src/stored/btape.c:675 src/stored/btape.c:686
-#: src/stored/btape.c:784 src/stored/btape.c:800 src/stored/btape.c:896
-#: src/stored/btape.c:912 src/stored/btape.c:1512 src/stored/btape.c:2355
-msgid "Error writing block to device.\n"
+#: src/stored/askdir.c:161
+msgid "Network error on bnet_recv in req_vol_info.\n"
msgstr ""
-#: src/stored/btape.c:667
+#: src/stored/askdir.c:178
#, c-format
-msgid "Wrote first record of %d bytes.\n"
+msgid "Error getting Volume info: %s\n"
msgstr ""
-#: src/stored/btape.c:678
-#, c-format
-msgid "Wrote second record of %d bytes.\n"
+#: src/stored/askdir.c:289 src/stored/askdir.c:290
+msgid "Attempt to update_volume_info in read mode!!!\n"
msgstr ""
-#: src/stored/btape.c:689
+#: src/stored/askdir.c:318
#, c-format
-msgid "Wrote third record of %d bytes.\n"
+msgid "Didn't get vol info vol=%s: ERR=%s"
msgstr ""
-#: src/stored/btape.c:696 src/stored/btape.c:701
+#: src/stored/askdir.c:349
#, c-format
-msgid "Backspace file failed! ERR=%s\n"
+msgid "Error creating JobMedia record: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:707
+#: src/stored/askdir.c:356
#, c-format
-msgid "Backspace record failed! ERR=%s\n"
+msgid "Error creating JobMedia record: %s\n"
msgstr ""
-#: src/stored/btape.c:713 src/stored/btape.c:719
+#: src/stored/askdir.c:424
#, c-format
-msgid "Read block failed! ERR=%s\n"
+msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n"
msgstr ""
-#: src/stored/btape.c:724
-msgid "Bad data in record. Test failed!\n"
+#: src/stored/askdir.c:452
+#, c-format
+msgid ""
+"Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
+"Use \"mount\" command to release Job.\n"
msgstr ""
-#: src/stored/btape.c:728
+#: src/stored/askdir.c:462
+#, c-format
msgid ""
-"\n"
-"Block re-read correct. Test succeeded!\n"
+"Job %s waiting. Cannot find any appendable volumes.\n"
+"Please use the \"label\" command to create a new Volume for:\n"
+" Storage: %s\n"
+" Media type: %s\n"
+" Pool: %s\n"
msgstr ""
-#: src/stored/btape.c:729
-msgid ""
-"=== End Write, backup, and re-read test ===\n"
-"\n"
+#: src/stored/askdir.c:486 src/stored/askdir.c:588
+#, c-format
+msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n"
msgstr ""
-#: src/stored/btape.c:736
-msgid ""
-"This is not terribly serious since Bacula only uses\n"
-"this function to verify the last block written to the\n"
-"tape. Bacula will skip the last block verification\n"
-"if you add:\n"
-"\n"
-"Backward Space Record = No\n"
-"\n"
-"to your Storage daemon's Device resource definition.\n"
+#: src/stored/askdir.c:496 src/stored/askdir.c:503
+#, c-format
+msgid "pthread error in mount_next_volume stat=%d ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:760
+#: src/stored/askdir.c:514
+#, c-format
msgid ""
-"\n"
-"=== Write, rewind, and re-read test ===\n"
-"\n"
-"I'm going to write 1000 records and an EOF\n"
-"then write 1000 records and an EOF, then rewind,\n"
-"and re-read the data to verify that it is correct.\n"
-"\n"
-"This is an *essential* feature ...\n"
-"\n"
+"Someone woke me up, but I cannot find any appendable\n"
+"volumes for Job=%s.\n"
msgstr ""
-#: src/stored/btape.c:788 src/stored/btape.c:804 src/stored/btape.c:900
-#: src/stored/btape.c:916
-#, c-format
-msgid "Wrote 1000 blocks of %d bytes.\n"
+#: src/stored/askdir.c:558
+msgid "Cannot request another volume: no volume name given.\n"
msgstr ""
-#: src/stored/btape.c:820 src/stored/btape.c:974
-msgid "Got EOF on tape.\n"
+#: src/stored/askdir.c:564
+#, c-format
+msgid "Job %s canceled while waiting for mount on Storage Device %s.\n"
msgstr ""
-#: src/stored/btape.c:825
+#: src/stored/askdir.c:570
#, c-format
-msgid "Read block %d failed! ERR=%s\n"
+msgid "Please mount Volume \"%s\" on Storage Device %s for Job %s\n"
msgstr ""
-#: src/stored/btape.c:831
+#: src/stored/askdir.c:598
#, c-format
-msgid "Read record failed. Block %d! ERR=%s\n"
+msgid "pthread error in mount_volume stat=%d ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:837 src/stored/btape.c:1004
+#: src/stored/askdir.c:605
#, c-format
-msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n"
+msgid "pthread error in mount_next_volume stat=%d: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:844
-msgid "1000 blocks re-read correctly.\n"
+#: src/stored/authenticate.c:53
+#, c-format
+msgid "I only authenticate Directors, not %d\n"
msgstr ""
-#: src/stored/btape.c:847 src/stored/btape.c:1011
+#: src/stored/authenticate.c:120
msgid ""
-"=== Test Succeeded. End Write, rewind, and re-read test ===\n"
-"\n"
+"Incorrect password given by Director.\n"
+"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
+"help.\n"
msgstr ""
-#: src/stored/btape.c:872
-msgid ""
-"\n"
-"=== Write, rewind, and position test ===\n"
-"\n"
-"I'm going to write 1000 records and an EOF\n"
-"then write 1000 records and an EOF, then rewind,\n"
-"and position to a few blocks and verify that it is correct.\n"
-"\n"
-"This is an *essential* feature ...\n"
-"\n"
+#: src/stored/authenticate.c:178
+#, c-format
+msgid "Unable to authenticate Director at %s.\n"
msgstr ""
-#: src/stored/btape.c:980
+#: src/stored/authenticate.c:223 src/stored/authenticate.c:259
#, c-format
msgid ""
-"Read block %d failed! file=%d blk=%d. ERR=%s\n"
-"\n"
+"Incorrect authorization key from File daemon at %s rejected.\n"
+"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for "
+"help.\n"
msgstr ""
-#: src/stored/btape.c:982
-msgid ""
-"This may be because the tape drive block size is not\n"
+#: src/stored/autochanger.c:87
+#, c-format
+msgid "3303 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:96
+#, c-format
+msgid "3992 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:109
+#, c-format
+msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:116
+#, c-format
+msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:122
+#, c-format
+msgid "3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:167
+#, c-format
+msgid "3301 Issuing autochanger \"loaded drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:176
+#, c-format
+msgid "3302 Autochanger \"loaded drive %d\", result is Slot %d.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:180
+#, c-format
+msgid "3302 Autochanger \"loaded drive %d\", result: nothing loaded.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:187
+#, c-format
+msgid "3991 Bad autochanger \"loaded drive %d\" command: ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:235
+#, c-format
+msgid "3993 Device %s not an autochanger device.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:253
+#, c-format
+msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:265
+#, c-format
+msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:277
+#, c-format
+msgid "3306 Issuing autochanger \"%s\" command.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:282
+msgid "3996 Open bpipe failed.\n"
+msgstr ""
+
+#: src/stored/autochanger.c:306
+#, c-format
+msgid "Autochanger error: ERR=%s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:58
+#, c-format
+msgid ""
+"Copyright (C) 2002-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bcopy [-d debug_level] <input-archive> <output-archive>\n"
+" -b bootstrap specify a bootstrap file\n"
+" -c <file> specify configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -i specify input Volume names (separated by |)\n"
+" -o specify output Volume names (separated by |)\n"
+" -p proceed inspite of errors\n"
+" -v verbose\n"
+" -w <dir> specify working directory (default /tmp)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bcopy.c:137 src/stored/bextract.c:177 src/stored/bscan.c:221
+msgid "Wrong number of arguments: \n"
+msgstr ""
+
+#: src/stored/bcopy.c:172 src/stored/btape.c:334 src/stored/device.c:273
+#, c-format
+msgid "dev open failed: %s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:185
+msgid "Write of last block failed.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:188
+#, c-format
+msgid "%u Jobs copied. %u records copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:205 src/stored/bscan.c:389
+#, c-format
+msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n"
+msgstr ""
+
+#: src/stored/bcopy.c:220
+msgid "Volume is prelabeled. This volume cannot be copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:223
+msgid "Volume label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:235 src/stored/bcopy.c:242 src/stored/bcopy.c:265
+#: src/stored/btape.c:2335
+#, c-format
+msgid "Cannot fixup device error. %s\n"
+msgstr ""
+
+#: src/stored/bcopy.c:247
+msgid "EOM label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:250
+msgid "EOT label not copied.\n"
+msgstr ""
+
+#: src/stored/bcopy.c:290 src/stored/bextract.c:473 src/stored/bls.c:444
+#: src/stored/bscan.c:1227 src/stored/btape.c:2683
+#, c-format
+msgid "Mount Volume \"%s\" on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/bextract.c:70
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bextract <options> <bacula-archive-device-name> <directory-to-store-"
+"files>\n"
+" -b <file> specify a bootstrap file\n"
+" -c <file> specify a configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -e <file> exclude list\n"
+" -i <file> include list\n"
+" -p proceed inspite of I/O errors\n"
+" -v verbose\n"
+" -V <volumes> specify Volume names (separated by |)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bextract.c:127 src/stored/bls.c:129
+#, c-format
+msgid "Could not open exclude file: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:142 src/stored/bls.c:143
+#, c-format
+msgid "Could not open include file: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:198
+#, c-format
+msgid "%d Program Name and/or Program Data Stream records ignored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:202
+#, c-format
+msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:226
+#, c-format
+msgid "Cannot stat %s. It must exist. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bextract.c:230
+#, c-format
+msgid "%s must be a directory.\n"
+msgstr ""
+
+#: src/stored/bextract.c:251
+#, c-format
+msgid "%u files restored.\n"
+msgstr ""
+
+#: src/stored/bextract.c:278 src/stored/bextract.c:444
+msgid "Logic error output file should be open but is not.\n"
+msgstr ""
+
+#: src/stored/bextract.c:285 src/stored/bls.c:365 src/stored/bscan.c:645
+msgid "Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bextract.c:347
+#, c-format
+msgid "Seek error on %s: %s\n"
+msgstr ""
+
+#: src/stored/bextract.c:400
+#, c-format
+msgid "Uncompression error. ERR=%d\n"
+msgstr ""
+
+#: src/stored/bextract.c:408
+msgid "===Write error===\n"
+msgstr ""
+
+#: src/stored/bextract.c:435
+msgid "Got Program Name or Data Stream. Ignored.\n"
+msgstr ""
+
+#: src/stored/block.c:78
+#, c-format
+msgid ""
+"Dump block %s %x: size=%d BlkNum=%d\n"
+" Hdrcksum=%x cksum=%x\n"
+msgstr ""
+
+#: src/stored/block.c:91
+#, c-format
+msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n"
+msgstr ""
+
+#: src/stored/block.c:147
+#, c-format
+msgid "%d block read errors not printed.\n"
+msgstr ""
+
+#: src/stored/block.c:235 src/stored/block.c:251 src/stored/block.c:261
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer "
+"discarded.\n"
+msgstr ""
+
+#: src/stored/block.c:275
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Block length %u is insane (too large), probably "
+"due to a bad archive.\n"
+msgstr ""
+
+#: src/stored/block.c:301
+#, c-format
+msgid ""
+"Volume data error at %u:%u!\n"
+"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n"
+msgstr ""
+
+#: src/stored/block.c:409
+msgid "Cannot write block. Device at EOM.\n"
+msgstr ""
+
+#: src/stored/block.c:414
+msgid "Attempt to write on read-only Volume.\n"
+msgstr ""
+
+#: src/stored/block.c:466
+#, c-format
+msgid "User defined maximum volume capacity %s exceeded on device %s.\n"
+msgstr ""
+
+#: src/stored/block.c:481
+#, c-format
+msgid "Unable to write EOF. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:507 src/stored/block.c:518
+msgid "Write block header zeroed.\n"
+msgstr ""
+
+#: src/stored/block.c:536
+#, c-format
+msgid "Write error at %u:%u on device %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/block.c:543
+#, c-format
+msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n"
+msgstr ""
+
+#: src/stored/block.c:618 src/stored/block.c:624
+#, c-format
+msgid "Backspace file at EOT failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:631
+#, c-format
+msgid "Backspace record at EOT failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:648
+#, c-format
+msgid "Re-read last block at EOT failed. ERR=%s"
+msgstr ""
+
+#: src/stored/block.c:652
+msgid "Re-read of last block succeeded.\n"
+msgstr ""
+
+#: src/stored/block.c:655
+#, c-format
+msgid "Re-read of last block failed. Last block=%u Current block=%u.\n"
+msgstr ""
+
+#: src/stored/block.c:684
+#, c-format
+msgid ""
+"Error writing final EOF to tape. This tape may not be readable.\n"
+"%s"
+msgstr ""
+
+#: src/stored/block.c:790 src/stored/dvd.c:622
+#, c-format
+msgid ""
+"Error while writing, current part number is less than the total number of "
+"parts (%d/%d, device=%s)\n"
+msgstr ""
+
+#: src/stored/block.c:798 src/stored/block.c:908
+#, c-format
+msgid "Unable to open device next part %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/block.c:816
+#, c-format
+msgid ""
+"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
+"free_space_errno=%d, errmsg=%s).\n"
+msgstr ""
+
+#: src/stored/block.c:829
+#, c-format
+msgid ""
+"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, "
+"free_space_errno=%d).\n"
+msgstr ""
+
+#: src/stored/block.c:883
+#, c-format
+msgid "Block buffer size looping problem on device %s\n"
+msgstr ""
+
+#: src/stored/block.c:934
+#, c-format
+msgid "Read error at file:blk %u:%u on device %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/block.c:947
+#, c-format
+msgid "Read zero bytes at %u:%u on device %s.\n"
+msgstr ""
+
+#: src/stored/block.c:960
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Very short block of %d bytes on device %s "
+"discarded.\n"
+msgstr ""
+
+#: src/stored/block.c:985
+#, c-format
+msgid "Block length %u is greater than buffer %u. Attempting recovery.\n"
+msgstr ""
+
+#: src/stored/block.c:1004
+#, c-format
+msgid "Setting block buffer size to %u bytes.\n"
+msgstr ""
+
+#: src/stored/block.c:1019
+#, c-format
+msgid ""
+"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n"
+msgstr ""
+
+#: src/stored/bls.c:69
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bls [options] <device-name>\n"
+" -b <file> specify a bootstrap file\n"
+" -c <file> specify a config file\n"
+" -d <level> specify debug level\n"
+" -e <file> exclude list\n"
+" -i <file> include list\n"
+" -j list jobs\n"
+" -k list blocks\n"
+" (no j or k option) list saved files\n"
+" -L dump label\n"
+" -p proceed inspite of errors\n"
+" -v be verbose\n"
+" -V specify Volume names (separated by |)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bls.c:190
+msgid "No archive name specified\n"
+msgstr ""
+
+#: src/stored/bls.c:226
+#, c-format
+msgid ""
+"\n"
+"Warning, this Volume is a continuation of Volume %s\n"
+msgstr ""
+
+#: src/stored/bls.c:268
+#, c-format
+msgid "Got EOM at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/bls.c:279
+#, c-format
+msgid "Mounted Volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/bls.c:281
+#, c-format
+msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/bls.c:305
+#, c-format
+msgid ""
+"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%"
+"s rlen=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:314
+#, c-format
+msgid "Block: %d size=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:381
+#, c-format
+msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/bls.c:398 src/stored/read_record.c:321
+msgid "Fresh Volume Label"
+msgstr ""
+
+#: src/stored/bls.c:401 src/stored/read_record.c:324
+msgid "Volume Label"
+msgstr ""
+
+#: src/stored/bls.c:405 src/stored/label.c:959
+msgid "Begin Job Session"
+msgstr ""
+
+#: src/stored/bls.c:409 src/stored/label.c:962
+msgid "End Job Session"
+msgstr ""
+
+#: src/stored/bls.c:412
+msgid "End of Medium"
+msgstr ""
+
+#: src/stored/bls.c:415 src/stored/label.c:971
+msgid "Unknown"
+msgstr ""
+
+#: src/stored/bls.c:421 src/stored/read_record.c:342
+#, c-format
+msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:109
+#, c-format
+msgid ""
+"Copyright (C) 2001-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: bscan [ options ] <bacula-archive>\n"
+" -b bootstrap specify a bootstrap file\n"
+" -c <file> specify configuration file\n"
+" -d <nn> set debug level to nn\n"
+" -m update media info in database\n"
+" -n <name> specify the database name (default bacula)\n"
+" -u <user> specify database user name (default bacula)\n"
+" -P <password specify database password (default none)\n"
+" -h <host> specify database host (default NULL)\n"
+" -p proceed inspite of I/O errors\n"
+" -r list records\n"
+" -s synchronize or store in database\n"
+" -S show scan progress periodically\n"
+" -v verbose\n"
+" -V <Volumes> specify Volume names (separated by |)\n"
+" -w <dir> specify working directory (default from conf file)\n"
+" -? print this message\n"
+"\n"
+msgstr ""
+
+#: src/stored/bscan.c:234 src/stored/stored.c:266
+#, c-format
+msgid "No Storage resource defined in %s. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:242 src/stored/stored.c:297
+#, c-format
+msgid "No Working Directory defined in %s. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:250
+#, c-format
+msgid "Working Directory: %s not found. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:254
+#, c-format
+msgid "Working Directory: %s is not a directory. Cannot continue.\n"
+msgstr ""
+
+#: src/stored/bscan.c:268 src/stored/bscan.c:340
+#, c-format
+msgid "First Volume Size = %sn"
+msgstr ""
+
+#: src/stored/bscan.c:274
+msgid "Could not init Bacula database\n"
+msgstr ""
+
+#: src/stored/bscan.c:281
+#, c-format
+msgid "Using Database: %s, User: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:315
+#, c-format
+msgid "Create JobMedia for Job %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:325
+#, c-format
+msgid "Could not create JobMedia record for Volume=%s Job=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:381
+#, c-format
+msgid "done: %d%%\n"
+msgstr ""
+
+#: src/stored/bscan.c:405
+msgid "Volume is prelabeled. This tape cannot be scanned.\n"
+msgstr ""
+
+#: src/stored/bscan.c:417
+#, c-format
+msgid "Pool record for %s found in DB.\n"
+msgstr ""
+
+#: src/stored/bscan.c:421
+#, c-format
+msgid "VOL_LABEL: Pool record not found for Pool: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:427
+#, c-format
+msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:431
+#, c-format
+msgid "Pool type \"%s\" is OK.\n"
+msgstr ""
+
+#: src/stored/bscan.c:441
+#, c-format
+msgid "Media record for %s found in DB.\n"
+msgstr ""
+
+#: src/stored/bscan.c:448
+#, c-format
+msgid "VOL_LABEL: Media record not found for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:455
+#, c-format
+msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:459
+#, c-format
+msgid "Media type \"%s\" is OK.\n"
+msgstr ""
+
+#: src/stored/bscan.c:468
+#, c-format
+msgid "VOL_LABEL: OK for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:475
+#, c-format
+msgid "%d \"errors\" ignored before first Start of Session record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:486
+#, c-format
+msgid "SOS_LABEL: Found Job record for JobId: %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:491
+#, c-format
+msgid "SOS_LABEL: Job record not found for JobId: %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:531
+#, c-format
+msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:537
+#, c-format
+msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:543
+#, c-format
+msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n"
+msgstr ""
+
+#: src/stored/bscan.c:561 src/stored/bscan.c:1007
+#, c-format
+msgid "Could not find SessId=%d SessTime=%d for EOS record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:604
+#, c-format
+msgid "Could not update job record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:615
+#, c-format
+msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:627
+#, c-format
+msgid "Could not find Job for SessId=%d SessTime=%d record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:663
+#, c-format
+msgid "%s file records. At file:blk=%s:%s bytes=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:706
+#, c-format
+msgid "Got MD5 record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:715
+#, c-format
+msgid "Got SHA1 record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:723
+#, c-format
+msgid "Got Prog Names Stream: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:729
+msgid "Got Prog Data Stream record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:733
+#, c-format
+msgid "Unknown stream type!!! stream=%d data=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:793
+#, c-format
+msgid "Could not create File Attributes record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:799
+#, c-format
+msgid "Created File record: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:836
+#, c-format
+msgid "Could not create media record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:840 src/stored/bscan.c:861
+#, c-format
+msgid "Could not update media record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:844
+#, c-format
+msgid "Created Media record for Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:865
+#, c-format
+msgid "Updated Media record at end of Volume: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:882
+#, c-format
+msgid "Could not create pool record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:886
+#, c-format
+msgid "Created Pool record for Pool: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:906
+#, c-format
+msgid "Created Client record for Client: %s\n"
+msgstr ""
+
+#: src/stored/bscan.c:923
+#, c-format
+msgid "Fileset \"%s\" already exists.\n"
+msgstr ""
+
+#: src/stored/bscan.c:927
+#, c-format
+msgid "Could not create FileSet record \"%s\". ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:932
+#, c-format
+msgid "Created FileSet record \"%s\"\n"
+msgstr ""
+
+#: src/stored/bscan.c:979
+#, c-format
+msgid "Could not create JobId record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:985
+#, c-format
+msgid "Could not update job start record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:988
+#, c-format
+msgid "Created new JobId=%u record for original JobId=%u\n"
+msgstr ""
+
+#: src/stored/bscan.c:1038
+#, c-format
+msgid "Could not update JobId=%u record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1043
+#, c-format
+msgid "Updated Job termination record for JobId=%u TermStat=%c\n"
+msgstr ""
+
+#: src/stored/bscan.c:1065
+#, c-format
+msgid "Job Termination code: %d"
+msgstr ""
+
+#: src/stored/bscan.c:1070
+#, c-format
+msgid ""
+"%s\n"
+"JobId: %d\n"
+"Job: %s\n"
+"FileSet: %s\n"
+"Backup Level: %s\n"
+"Client: %s\n"
+"Start time: %s\n"
+"End time: %s\n"
+"Files Written: %s\n"
+"Bytes Written: %s\n"
+"Volume Session Id: %d\n"
+"Volume Session Time: %d\n"
+"Last Volume Bytes: %s\n"
+"Termination: %s\n"
+"\n"
+msgstr ""
+
+#: src/stored/bscan.c:1134
+#, c-format
+msgid "Could not create JobMedia record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1138
+#, c-format
+msgid "Created JobMedia record JobId %d, MediaId %d\n"
+msgstr ""
+
+#: src/stored/bscan.c:1154
+#, c-format
+msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n"
+msgstr ""
+
+#: src/stored/bscan.c:1168
+#, c-format
+msgid "Could not add MD5/SHA1 to File record. ERR=%s\n"
+msgstr ""
+
+#: src/stored/bscan.c:1173
+msgid "Updated MD5/SHA1 record\n"
+msgstr ""
+
+#: src/stored/btape.c:157 src/stored/stored.c:107
+#, c-format
+msgid "Tape block size (%d) not multiple of system size (%d)\n"
+msgstr ""
+
+#: src/stored/btape.c:161 src/stored/stored.c:111
+#, c-format
+msgid "Tape block size (%d) is not a power of 2\n"
+msgstr ""
+
+#: src/stored/btape.c:164
+#, c-format
+msgid ""
+"\n"
+"\n"
+"!!!! Warning large disk addressing disabled. off_t=%d should be 8 or "
+"more !!!!!\n"
+"\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:171
+#, c-format
+msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n"
+msgstr ""
+
+#: src/stored/btape.c:180
+msgid "64 bit printf/scanf problem. i=%d x64=%"
+msgstr ""
+
+#: src/stored/btape.c:180
+msgid " y64=%"
+msgstr ""
+
+#: src/stored/btape.c:184
+#, c-format
+msgid "Tape block granularity is %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:251
+msgid "No archive name specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:255
+msgid "Improper number of arguments specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:340
+#, c-format
+msgid "open device %s: OK\n"
+msgstr ""
+
+#: src/stored/btape.c:361
+msgid "Enter Volume Name: "
+msgstr ""
+
+#: src/stored/btape.c:368
+#, c-format
+msgid "Device open failed. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:373
+#, c-format
+msgid "Wrote Volume label for volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/btape.c:387
+msgid "Volume has no label.\n"
+msgstr ""
+
+#: src/stored/btape.c:390
+msgid "Volume label read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:393
+#, c-format
+msgid "I/O error on device: ERR=%s"
+msgstr ""
+
+#: src/stored/btape.c:396
+msgid "Volume name error\n"
+msgstr ""
+
+#: src/stored/btape.c:399
+#, c-format
+msgid "Error creating label. ERR=%s"
+msgstr ""
+
+#: src/stored/btape.c:402
+msgid "Volume version error.\n"
+msgstr ""
+
+#: src/stored/btape.c:405
+msgid "Bad Volume label type.\n"
+msgstr ""
+
+#: src/stored/btape.c:408
+msgid "Unknown error.\n"
+msgstr ""
+
+#: src/stored/btape.c:426
+#, c-format
+msgid "Bad status from load. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:428
+#, c-format
+msgid "Loaded %s\n"
+msgstr ""
+
+#: src/stored/btape.c:437 src/stored/btape.c:777 src/stored/btape.c:819
+#: src/stored/btape.c:889 src/stored/btape.c:931 src/stored/btape.c:1200
+#, c-format
+msgid "Bad status from rewind. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:440 src/stored/btape.c:1208
+#, c-format
+msgid "Rewound %s\n"
+msgstr ""
+
+#: src/stored/btape.c:467 src/stored/btape.c:1212
+#, c-format
+msgid "Bad status from weof %d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:471
+#, c-format
+msgid "Wrote 1 EOF to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:474
+#, c-format
+msgid "Wrote %d EOFs to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:492
+msgid "Moved to end of medium.\n"
+msgstr ""
+
+#: src/stored/btape.c:519
+#, c-format
+msgid "Bad status from bsf. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:521
+#, c-format
+msgid "Backspaced %d file%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:538
+#, c-format
+msgid "Bad status from bsr. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:540
+#, c-format
+msgid "Backspaced %d record%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:550 src/stored/status.c:220
+#, c-format
+msgid "Configured device capabilities:\n"
+msgstr ""
+
+#: src/stored/btape.c:568
+#, c-format
+msgid "Device status:\n"
+msgstr ""
+
+#: src/stored/btape.c:582 src/stored/status.c:252
+#, c-format
+msgid "Device parameters:\n"
+msgstr ""
+
+#: src/stored/btape.c:587
+#, c-format
+msgid "Status:\n"
+msgstr ""
+
+#: src/stored/btape.c:602
+msgid ""
+"Test writting larger and larger records.\n"
+"This is a torture test for records.\n"
+"I am going to write\n"
+"larger and larger records. It will stop when the record size\n"
+"plus the header exceeds the block size (by default about 64K)\n"
+msgstr ""
+
+#: src/stored/btape.c:610 src/stored/btape.c:1814
+msgid "Command aborted.\n"
+msgstr ""
+
+#: src/stored/btape.c:626
+#, c-format
+msgid "Block %d i=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:652
+msgid "Skipping read backwards test because BSR turned off.\n"
+msgstr ""
+
+#: src/stored/btape.c:656
+msgid ""
+"\n"
+"=== Write, backup, and re-read test ===\n"
+"\n"
+"I'm going to write three records and an EOF\n"
+"then backup over the EOF and re-read the last record.\n"
+"Bacula does this after writing the last block on the\n"
+"tape to verify that the block was written correctly.\n"
+"\n"
+"This is not an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:669 src/stored/btape.c:680 src/stored/btape.c:691
+#: src/stored/btape.c:789 src/stored/btape.c:805 src/stored/btape.c:901
+#: src/stored/btape.c:917 src/stored/btape.c:1526 src/stored/btape.c:2400
+msgid "Error writing record to block.\n"
+msgstr ""
+
+#: src/stored/btape.c:673 src/stored/btape.c:684 src/stored/btape.c:695
+#: src/stored/btape.c:793 src/stored/btape.c:809 src/stored/btape.c:905
+#: src/stored/btape.c:921 src/stored/btape.c:1530 src/stored/btape.c:2404
+msgid "Error writing block to device.\n"
+msgstr ""
+
+#: src/stored/btape.c:676
+#, c-format
+msgid "Wrote first record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:687
+#, c-format
+msgid "Wrote second record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:698
+#, c-format
+msgid "Wrote third record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:705 src/stored/btape.c:710
+#, c-format
+msgid "Backspace file failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:714
+msgid "Backspaced over EOF OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:716
+#, c-format
+msgid "Backspace record failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:719
+msgid "Backspace record OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:722 src/stored/btape.c:728
+#, c-format
+msgid "Read block failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:733
+msgid "Bad data in record. Test failed!\n"
+msgstr ""
+
+#: src/stored/btape.c:737
+msgid ""
+"\n"
+"Block re-read correct. Test succeeded!\n"
+msgstr ""
+
+#: src/stored/btape.c:738
+msgid ""
+"=== End Write, backup, and re-read test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:745
+msgid ""
+"This is not terribly serious since Bacula only uses\n"
+"this function to verify the last block written to the\n"
+"tape. Bacula will skip the last block verification\n"
+"if you add:\n"
+"\n"
+"Backward Space Record = No\n"
+"\n"
+"to your Storage daemon's Device resource definition.\n"
+msgstr ""
+
+#: src/stored/btape.c:769
+msgid ""
+"\n"
+"=== Write, rewind, and re-read test ===\n"
+"\n"
+"I'm going to write 1000 records and an EOF\n"
+"then write 1000 records and an EOF, then rewind,\n"
+"and re-read the data to verify that it is correct.\n"
+"\n"
+"This is an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:797 src/stored/btape.c:813 src/stored/btape.c:909
+#: src/stored/btape.c:925
+#, c-format
+msgid "Wrote 1000 blocks of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:822 src/stored/btape.c:934
+msgid "Rewind OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:829 src/stored/btape.c:983
+msgid "Got EOF on tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:834
+#, c-format
+msgid "Read block %d failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:840
+#, c-format
+msgid "Read record failed. Block %d! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:846 src/stored/btape.c:1013
+#, c-format
+msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n"
+msgstr ""
+
+#: src/stored/btape.c:853
+msgid "1000 blocks re-read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:856 src/stored/btape.c:1020
+msgid ""
+"=== Test Succeeded. End Write, rewind, and re-read test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:881
+msgid ""
+"\n"
+"=== Write, rewind, and position test ===\n"
+"\n"
+"I'm going to write 1000 records and an EOF\n"
+"then write 1000 records and an EOF, then rewind,\n"
+"and position to a few blocks and verify that it is correct.\n"
+"\n"
+"This is an *essential* feature ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:974
+#, c-format
+msgid "Reposition to file:block %d:%d\n"
+msgstr ""
+
+#: src/stored/btape.c:976
+msgid "Reposition error.\n"
+msgstr ""
+
+#: src/stored/btape.c:989
+#, c-format
+msgid ""
+"Read block %d failed! file=%d blk=%d. ERR=%s\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:991
+msgid ""
+"This may be because the tape drive block size is not\n"
" set to variable blocking as normally used by Bacula.\n"
" Please see the Tape Testing chapter in the manual and \n"
" look for using mt with defblksize and setoptions\n"
" in your Device resource.\n"
msgstr ""
-#: src/stored/btape.c:998
+#: src/stored/btape.c:1007
+#, c-format
+msgid "Read record failed! ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1018
+#, c-format
+msgid "Block %d re-read correctly.\n"
+msgstr ""
+
+#: src/stored/btape.c:1039
+msgid ""
+"\n"
+"\n"
+"=== Append files test ===\n"
+"\n"
+"This test is essential to Bacula.\n"
+"\n"
+"I'm going to write one record in file 0,\n"
+" two records in file 1,\n"
+" and three records in file 2\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1063
+msgid "Now moving to end of medium.\n"
+msgstr ""
+
+#: src/stored/btape.c:1065 src/stored/btape.c:1295
+#, c-format
+msgid "We should be in file 3. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1066 src/stored/btape.c:1084 src/stored/btape.c:1284
+#: src/stored/btape.c:1296 src/stored/btape.c:1309 src/stored/btape.c:1326
+msgid "This is correct!"
+msgstr ""
+
+#: src/stored/btape.c:1066 src/stored/btape.c:1084 src/stored/btape.c:1284
+#: src/stored/btape.c:1296 src/stored/btape.c:1309 src/stored/btape.c:1326
+msgid "This is NOT correct!!!!"
+msgstr ""
+
+#: src/stored/btape.c:1072
+msgid ""
+"\n"
+"Now the important part, I am going to attempt to append to the tape.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1079
+msgid ""
+"Done appending, there should be no I/O errors\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1080
+msgid "Doing Bacula scan of blocks:\n"
+msgstr ""
+
+#: src/stored/btape.c:1082
+msgid "End scanning the tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:1083 src/stored/btape.c:1308
+#, c-format
+msgid "We should be in file 4. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1108
+msgid ""
+"\n"
+"Autochanger enabled, but no name or no command device specified.\n"
+msgstr ""
+
+#: src/stored/btape.c:1112
+msgid ""
+"\n"
+"Ah, I see you have an autochanger configured.\n"
+"To test the autochanger you must have a blank tape\n"
+" that I can write on in Slot 1.\n"
+msgstr ""
+
+#: src/stored/btape.c:1115
+msgid ""
+"\n"
+"Do you wish to continue with the Autochanger test? (y/n): "
+msgstr ""
+
+#: src/stored/btape.c:1122
+msgid ""
+"\n"
+"\n"
+"=== Autochanger test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1131
+msgid "3301 Issuing autochanger \"loaded\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1140
+#, c-format
+msgid "3991 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1141
+#, c-format
+msgid "3991 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1145
+#, c-format
+msgid "Slot %d loaded. I am going to unload it.\n"
+msgstr ""
+
+#: src/stored/btape.c:1147
+msgid "Nothing loaded in the drive. OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:1155
+#, c-format
+msgid "3302 Issuing autochanger \"unload %d %d\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1160
+#, c-format
+msgid "unload status=%s %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1160
+msgid "Bad"
+msgstr ""
+
+#: src/stored/btape.c:1163
+#, c-format
+msgid "3992 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1164
+#, c-format
+msgid "3992 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1174
+#, c-format
+msgid "3303 Issuing autochanger \"load %d %d\" command.\n"
+msgstr ""
+
+#: src/stored/btape.c:1182
+#, c-format
+msgid "3303 Autochanger \"load %d %d\" status is OK.\n"
+msgstr ""
+
+#: src/stored/btape.c:1186
+#, c-format
+msgid "3993 Bad autochanger command: %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1187
+#, c-format
+msgid "3993 result=\"%s\": ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1202
+msgid ""
+"\n"
+"The test failed, probably because you need to put\n"
+"a longer sleep time in the mtx-script in the load) case.\n"
+"Adding a 30 second sleep and trying again ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1215
+#, c-format
+msgid "Wrote EOF to %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1219
+#, c-format
+msgid ""
+"\n"
+"The test worked this time. Please add:\n"
+"\n"
+" sleep %d\n"
+"\n"
+"to your mtx-changer script in the load) case.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1224
+msgid ""
+"\n"
+"The test autochanger worked!!\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1235
+msgid "You must correct this error or the Autochanger will not work.\n"
+msgstr ""
+
+#: src/stored/btape.c:1253
+msgid ""
+"\n"
+"\n"
+"=== Forward space files test ===\n"
+"\n"
+"This test is essential to Bacula.\n"
+"\n"
+"I'm going to write five files then test forward spacing\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1278
+msgid "Now forward spacing 1 file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1280 src/stored/btape.c:1292 src/stored/btape.c:1305
+#: src/stored/btape.c:1323 src/stored/btape.c:1492
+#, c-format
+msgid "Bad status from fsr. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1283
+#, c-format
+msgid "We should be in file 1. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1290
+msgid "Now forward spacing 2 files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1303
+msgid "Now forward spacing 4 files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1315
+msgid ""
+"The test worked this time. Please add:\n"
+"\n"
+" Fast Forward Space File = no\n"
+"\n"
+"to your Device resource for this drive.\n"
+msgstr ""
+
+#: src/stored/btape.c:1321
+msgid "Now forward spacing 1 more file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1325
+#, c-format
+msgid "We should be in file 5. I am at file %d. %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1330
+msgid ""
+"\n"
+"=== End Forward space files test ===\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1334
+msgid ""
+"\n"
+"The forward space file test failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1336
+msgid ""
+"You have Fast Forward Space File enabled.\n"
+"I am turning it off then retrying the test.\n"
+msgstr ""
+
+#: src/stored/btape.c:1342
+msgid ""
+"You must correct this error or Bacula will not work.\n"
+"Some systems, e.g. OpenBSD, require you to set\n"
+" Use MTIOCGET= no\n"
+"in your device resource. Use with caution.\n"
+msgstr ""
+
+#: src/stored/btape.c:1374
+msgid ""
+"\n"
+"Append test failed. Attempting again.\n"
+"Setting \"Hardware End of Medium = no\n"
+" and \"Fast Forward Space File = no\n"
+"and retrying append test.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1382
+msgid ""
+"\n"
+"\n"
+"It looks like the test worked this time, please add:\n"
+"\n"
+" Hardware End of Medium = No\n"
+"\n"
+" Fast Forward Space File = No\n"
+"to your Device resource in the Storage conf file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1389
+msgid ""
+"\n"
+"\n"
+"That appears *NOT* to have corrected the problem.\n"
+msgstr ""
+
+#: src/stored/btape.c:1394
+msgid ""
+"\n"
+"\n"
+"It looks like the append failed. Attempting again.\n"
+"Setting \"BSF at EOM = yes\" and retrying append test.\n"
+msgstr ""
+
+#: src/stored/btape.c:1399
+msgid ""
+"\n"
+"\n"
+"It looks like the test worked this time, please add:\n"
+"\n"
+" Hardware End of Medium = No\n"
+" Fast Forward Space File = No\n"
+" BSF at EOM = yes\n"
+"\n"
+"to your Device resource in the Storage conf file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1410
+msgid ""
+"\n"
+"Append test failed.\n"
+"\n"
+"\n"
+"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
+"Unable to correct the problem. You MUST fix this\n"
+"problem before Bacula can use your tape drive correctly\n"
+"\n"
+"Perhaps running Bacula in fixed block mode will work.\n"
+"Do so by setting:\n"
+"\n"
+"Minimum Block Size = nnn\n"
+"Maximum Block Size = nnn\n"
+"\n"
+"in your Storage daemon's Device definition.\n"
+"nnn must match your tape driver's block size, which\n"
+"can be determined by reading your tape manufacturers\n"
+"information, and the information on your kernel dirver.\n"
+"Fixed block sizes, however, are not normally an ideal solution.\n"
+"\n"
+"Some systems, e.g. OpenBSD, require you to set\n"
+" Use MTIOCGET= no\n"
+"in your device resource. Use with caution.\n"
+msgstr ""
+
+#: src/stored/btape.c:1431
+msgid ""
+"\n"
+"The above Bacula scan should have output identical to what follows.\n"
+"Please double check it ...\n"
+"=== Sample correct output ===\n"
+"1 block of 64448 bytes in file 1\n"
+"End of File mark.\n"
+"2 blocks of 64448 bytes in file 2\n"
+"End of File mark.\n"
+"3 blocks of 64448 bytes in file 3\n"
+"End of File mark.\n"
+"1 block of 64448 bytes in file 4\n"
+"End of File mark.\n"
+"Total files=4, blocks=7, bytes = 451,136\n"
+"=== End sample correct output ===\n"
+"\n"
+"If the above scan output is not identical to the\n"
+"sample output, you MUST correct the problem\n"
+"or Bacula will not be able to write multiple Jobs to \n"
+"the tape.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1470
+#, c-format
+msgid "Bad status from fsf. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1474
+msgid "Forward spaced 1 file.\n"
+msgstr ""
+
+#: src/stored/btape.c:1477
+#, c-format
+msgid "Forward spaced %d files.\n"
+msgstr ""
+
+#: src/stored/btape.c:1496
+msgid "Forward spaced 1 record.\n"
+msgstr ""
+
+#: src/stored/btape.c:1499
+#, c-format
+msgid "Forward spaced %d records.\n"
+msgstr ""
+
+#: src/stored/btape.c:1533
+#, c-format
+msgid "Wrote one record of %d bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:1535
+msgid "Wrote block to device.\n"
+msgstr ""
+
+#: src/stored/btape.c:1550
+msgid "Enter length to read: "
+msgstr ""
+
+#: src/stored/btape.c:1555
+msgid "Bad length entered, using default of 1024 bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:1564
+#, c-format
+msgid "Read of %d bytes gives stat=%d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1587 src/stored/btape.c:1636
+#, c-format
+msgid "End of tape\n"
+msgstr ""
+
+#: src/stored/btape.c:1592
+#, c-format
+msgid "Starting scan at file %u\n"
+msgstr ""
+
+#: src/stored/btape.c:1597 src/stored/dev.c:1234
+#, c-format
+msgid "read error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/btape.c:1599
+#, c-format
+msgid "Bad status from read %d. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1602 src/stored/btape.c:1616 src/stored/btape.c:1679
+#: src/stored/btape.c:1691 src/stored/btape.c:1704 src/stored/btape.c:1720
+#, c-format
+msgid "1 block of %d bytes in file %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1605 src/stored/btape.c:1619 src/stored/btape.c:1682
+#: src/stored/btape.c:1694 src/stored/btape.c:1707 src/stored/btape.c:1723
+#, c-format
+msgid "%d blocks of %d bytes in file %d\n"
+msgstr ""
+
+#: src/stored/btape.c:1627 src/stored/btape.c:1698
+#, c-format
+msgid "End of File mark.\n"
+msgstr ""
+
+#: src/stored/btape.c:1648 src/stored/btape.c:1751
+#, c-format
+msgid "Total files=%d, blocks=%d, bytes = %s\n"
+msgstr ""
+
+#: src/stored/btape.c:1711
+#, c-format
+msgid "Short block read.\n"
+msgstr ""
+
+#: src/stored/btape.c:1714
+#, c-format
+msgid "Error reading block. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1738
+#, c-format
+msgid ""
+"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%"
+"s rlen=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:1760
+#, c-format
+msgid "Device status: %u. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:1788
+msgid ""
+"\n"
+"This command simulates Bacula writing to a tape.\n"
+"It requires either one or two blank tapes, which it\n"
+"will label and write.\n"
+"\n"
+"If you have an autochanger configured, it will use\n"
+"the tapes that are in slots 1 and 2, otherwise, you will\n"
+"be prompted to insert the tapes when necessary.\n"
+"\n"
+"It will print a status approximately\n"
+"every 322 MB, and write an EOF every 3.2 GB. If you have\n"
+"selected the simple test option, after writing the first tape\n"
+"it will rewind it and re-read the last block written.\n"
+"\n"
+"If you have selected the multiple tape test, when the first tape\n"
+"fills, it will ask for a second, and after writing a few more \n"
+"blocks, it will stop. Then it will begin re-reading the\n"
+"two tapes.\n"
+"\n"
+"This may take a long time -- hours! ...\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:1805
+msgid ""
+"Do you want to run the simplified test (s) with one tape\n"
+"or the complete multiple tape (m) test: (s/m) "
+msgstr ""
+
+#: src/stored/btape.c:1808
+msgid "Simple test (single tape) selected.\n"
+msgstr ""
+
+#: src/stored/btape.c:1811
+msgid "Multiple tape test selected.\n"
+msgstr ""
+
+#: src/stored/btape.c:1827
+msgid "Rewind failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1830
+msgid "Write EOF failed.\n"
+msgstr ""
+
+#: src/stored/btape.c:1857
+msgid "Wrote Start of Session label.\n"
+msgstr ""
+
+#: src/stored/btape.c:1886
+msgid "Begin writing Bacula records to tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1888
+msgid "Begin writing Bacula records to first tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:1928
+#, c-format
+msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:1935
+msgid "Flush block, write EOF\n"
+msgstr ""
+
+#: src/stored/btape.c:1946
+msgid "Not OK\n"
+msgstr ""
+
+#: src/stored/btape.c:1974
+msgid "Set ok=false after write_block_to_device.\n"
+msgstr ""
+
+#: src/stored/btape.c:1977
+msgid "Wrote End of Session label.\n"
+msgstr ""
+
+#: src/stored/btape.c:2001
+#, c-format
+msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2005
+#, c-format
+msgid "Could not create state file: %s ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2010
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Done filling tape at %d:%d. Now beginning re-read of tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2014
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2053
+msgid ""
+"\n"
+"The state file level has changed. You must redo\n"
+"the fill command.\n"
+msgstr ""
+
+#: src/stored/btape.c:2059
+#, c-format
+msgid ""
+"\n"
+"Could not find the state file: %s ERR=%s\n"
+"You must redo the fill command.\n"
+msgstr ""
+
+#: src/stored/btape.c:2101
+msgid "Mount first tape. Press enter when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2125
+msgid "Reading the first 10000 records.\n"
+msgstr ""
+
+#: src/stored/btape.c:2128 src/stored/btape.c:2195
+#, c-format
+msgid "Reposition from %u:%u to %u:%u\n"
+msgstr ""
+
+#: src/stored/btape.c:2131 src/stored/btape.c:2182 src/stored/btape.c:2198
+#, c-format
+msgid "Reposition error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2134
+#, c-format
+msgid "Reading block %u.\n"
+msgstr ""
+
+#: src/stored/btape.c:2136 src/stored/btape.c:2187 src/stored/btape.c:2203
+#, c-format
+msgid "Error reading block: ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2141
+msgid ""
+"\n"
+"The last block on the tape matches. Test succeeded.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2143
+msgid ""
+"\n"
+"The last block of the first tape matches.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2168
+msgid "Mount second tape. Press enter when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2180
+#, c-format
+msgid "Reposition from %u:%u to 0:1\n"
+msgstr ""
+
+#: src/stored/btape.c:2185 src/stored/btape.c:2201
+#, c-format
+msgid "Reading block %d.\n"
+msgstr ""
+
+#: src/stored/btape.c:2191
+msgid ""
+"\n"
+"The first block on the second tape matches.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2207
+msgid ""
+"\n"
+"The last block on the second tape matches. Test succeeded.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2221
+#, c-format
+msgid "ERROR! device at %d:%d count=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2227
+#, c-format
+msgid "1000 records read now at %d:%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2250 src/stored/btape.c:2261 src/stored/btape.c:2309
+msgid "Last block written"
+msgstr ""
+
+#: src/stored/btape.c:2252 src/stored/btape.c:2262
+msgid "Block read back"
+msgstr ""
+
+#: src/stored/btape.c:2253
+#, c-format
+msgid ""
+"\n"
+"\n"
+"The blocks differ at byte %u\n"
+msgstr ""
+
+#: src/stored/btape.c:2254
+msgid ""
+"\n"
+"\n"
+"!!!! The last block written and the block\n"
+"that was read back differ. The test FAILED !!!!\n"
+"This must be corrected before you use Bacula\n"
+"to write multi-tape Volumes.!!!!\n"
+msgstr ""
+
+#: src/stored/btape.c:2293
+#, c-format
+msgid "Last block at: %u:%u this_dev_block_num=%d\n"
+msgstr ""
+
+#: src/stored/btape.c:2307
+#, c-format
+msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n"
+msgstr ""
+
+#: src/stored/btape.c:2311
+msgid "Block not written"
+msgstr ""
+
+#: src/stored/btape.c:2326
+#, c-format
+msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:2376
+msgid "Test writing blocks of 64512 bytes to tape.\n"
+msgstr ""
+
+#: src/stored/btape.c:2378
+msgid "How many blocks do you want to write? (1000): "
+msgstr ""
+
+#: src/stored/btape.c:2393
+#, c-format
+msgid "Begin writing %d Bacula blocks to tape ...\n"
+msgstr ""
+
+#: src/stored/btape.c:2445
+#, c-format
+msgid "Begin writing raw blocks of %u bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:2465
+#, c-format
+msgid "Write failed at block %u. stat=%d ERR=%s\n"
+msgstr ""
+
+#: src/stored/btape.c:2495
+#, c-format
+msgid "Begin writing Bacula blocks of %u bytes.\n"
+msgstr ""
+
+#: src/stored/btape.c:2514
+#, c-format
+msgid "Write failed at block %u.\n"
+msgstr ""
+
+#: src/stored/btape.c:2521
+msgid "autochanger"
+msgstr ""
+
+#: src/stored/btape.c:2521
+msgid "test autochanger"
+msgstr ""
+
+#: src/stored/btape.c:2522
+msgid "bsf"
+msgstr ""
+
+#: src/stored/btape.c:2522
+msgid "backspace file"
+msgstr ""
+
+#: src/stored/btape.c:2523
+msgid "bsr"
+msgstr ""
+
+#: src/stored/btape.c:2523
+msgid "backspace record"
+msgstr ""
+
+#: src/stored/btape.c:2524
+msgid "bfill"
+msgstr ""
+
+#: src/stored/btape.c:2524
+msgid "fill tape using Bacula writes"
+msgstr ""
+
+#: src/stored/btape.c:2525
+msgid "cap"
+msgstr ""
+
+#: src/stored/btape.c:2525
+msgid "list device capabilities"
+msgstr ""
+
+#: src/stored/btape.c:2526
+msgid "clear"
+msgstr ""
+
+#: src/stored/btape.c:2526
+msgid "clear tape errors"
+msgstr ""
+
+#: src/stored/btape.c:2527
+msgid "eod"
+msgstr ""
+
+#: src/stored/btape.c:2527
+msgid "go to end of Bacula data for append"
+msgstr ""
+
+#: src/stored/btape.c:2528
+msgid "eom"
+msgstr ""
+
+#: src/stored/btape.c:2528
+msgid "go to the physical end of medium"
+msgstr ""
+
+#: src/stored/btape.c:2529
+msgid "fill"
+msgstr ""
+
+#: src/stored/btape.c:2529
+msgid "fill tape, write onto second volume"
+msgstr ""
+
+#: src/stored/btape.c:2530
+msgid "unfill"
+msgstr ""
+
+#: src/stored/btape.c:2530
+msgid "read filled tape"
+msgstr ""
+
+#: src/stored/btape.c:2531
+msgid "fsf"
+msgstr ""
+
+#: src/stored/btape.c:2531
+msgid "forward space a file"
+msgstr ""
+
+#: src/stored/btape.c:2532
+msgid "fsr"
+msgstr ""
+
+#: src/stored/btape.c:2532
+msgid "forward space a record"
+msgstr ""
+
+#: src/stored/btape.c:2534
+msgid "write a Bacula label to the tape"
+msgstr ""
+
+#: src/stored/btape.c:2535
+msgid "load"
+msgstr ""
+
+#: src/stored/btape.c:2535
+msgid "load a tape"
+msgstr ""
+
+#: src/stored/btape.c:2536
+msgid "quit btape"
+msgstr ""
+
+#: src/stored/btape.c:2537
+msgid "rawfill"
+msgstr ""
+
+#: src/stored/btape.c:2537
+msgid "use write() to fill tape"
+msgstr ""
+
+#: src/stored/btape.c:2538
+msgid "readlabel"
+msgstr ""
+
+#: src/stored/btape.c:2538
+msgid "read and print the Bacula tape label"
+msgstr ""
+
+#: src/stored/btape.c:2539
+msgid "rectest"
+msgstr ""
+
+#: src/stored/btape.c:2539
+msgid "test record handling functions"
+msgstr ""
+
+#: src/stored/btape.c:2540
+msgid "rewind"
+msgstr ""
+
+#: src/stored/btape.c:2540
+msgid "rewind the tape"
+msgstr ""
+
+#: src/stored/btape.c:2541
+msgid "read() tape block by block to EOT and report"
+msgstr ""
+
+#: src/stored/btape.c:2542
+msgid "scanblocks"
+msgstr ""
+
+#: src/stored/btape.c:2542
+msgid "Bacula read block by block to EOT and report"
+msgstr ""
+
+#: src/stored/btape.c:2543
+msgid "print tape status"
+msgstr ""
+
+#: src/stored/btape.c:2544
+msgid "test"
+msgstr ""
+
+#: src/stored/btape.c:2544
+msgid "General test Bacula tape functions"
+msgstr ""
+
+#: src/stored/btape.c:2545
+msgid "weof"
+msgstr ""
+
+#: src/stored/btape.c:2545
+msgid "write an EOF on the tape"
+msgstr ""
+
+#: src/stored/btape.c:2546
+msgid "wr"
+msgstr ""
+
+#: src/stored/btape.c:2546
+msgid "write a single Bacula block"
+msgstr ""
+
+#: src/stored/btape.c:2547
+msgid "rr"
+msgstr ""
+
+#: src/stored/btape.c:2547
+msgid "read a single record"
+msgstr ""
+
+#: src/stored/btape.c:2548
+msgid "qfill"
+msgstr ""
+
+#: src/stored/btape.c:2548
+msgid "quick fill command"
+msgstr ""
+
+#: src/stored/btape.c:2569
+#, c-format
+msgid "%s is an illegal command\n"
+msgstr ""
+
+#: src/stored/btape.c:2579
+#, c-format
+msgid "Interactive commands:\n"
+msgstr ""
+
+#: src/stored/btape.c:2589
+#, c-format
+msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: btape <options> <device_name>\n"
+" -b <file> specify bootstrap file\n"
+" -c <file> set configuration file to file\n"
+" -d <nn> set debug level to nn\n"
+" -p proceed inspite of I/O errors\n"
+" -s turn off signals\n"
+" -v be verbose\n"
+" -? print this message.\n"
+"\n"
+msgstr ""
+
+#: src/stored/btape.c:2680
+#, c-format
+msgid "Mount second Volume on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2707
+#, c-format
+msgid "Mount blank Volume on device %s and press return when ready: "
+msgstr ""
+
+#: src/stored/btape.c:2725
+#, c-format
+msgid "End of Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/btape.c:2737
+#, c-format
+msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n"
+msgstr ""
+
+#: src/stored/btape.c:2752 src/stored/mount.c:493
+#, c-format
+msgid "Cannot open Dev=%s, Vol=%s\n"
+msgstr ""
+
+#: src/stored/butil.c:46
+msgid "Nohdr,"
+msgstr ""
+
+#: src/stored/butil.c:49
+msgid "partial,"
+msgstr ""
+
+#: src/stored/butil.c:52
+msgid "empty,"
+msgstr ""
+
+#: src/stored/butil.c:55
+msgid "Nomatch,"
+msgstr ""
+
+#: src/stored/butil.c:58
+msgid "cont,"
+msgstr ""
+
+#: src/stored/butil.c:128
+msgid "Volume name or names is too long. Please use a .bsr file.\n"
+msgstr ""
+
+#: src/stored/butil.c:148
+#, c-format
+msgid "Cannot find device \"%s\" in config file %s.\n"
+msgstr ""
+
+#: src/stored/butil.c:155
+#, c-format
+msgid "Cannot init device %s\n"
+msgstr ""
+
+#: src/stored/butil.c:174
+#, c-format
+msgid "Cannot open %s\n"
+msgstr ""
+
+#: src/stored/butil.c:253
+#, c-format
+msgid "Could not find device \"%s\" in config file %s.\n"
+msgstr ""
+
+#: src/stored/butil.c:258
+#, c-format
+msgid "Using device: \"%s\" for reading.\n"
+msgstr ""
+
+#: src/stored/butil.c:261
+#, c-format
+msgid "Using device: \"%s\" for writing.\n"
+msgstr ""
+
+#: src/stored/butil.c:277
+msgid "Unexpected End of Data\n"
+msgstr ""
+
+#: src/stored/butil.c:279
+msgid "Unexpected End of Tape\n"
+msgstr ""
+
+#: src/stored/butil.c:281
+msgid "Unexpected End of File\n"
+msgstr ""
+
+#: src/stored/butil.c:283
+msgid "Tape Door is Open\n"
+msgstr ""
+
+#: src/stored/butil.c:285
+msgid "Unexpected Tape is Off-line\n"
+msgstr ""
+
+#: src/stored/dev.c:110
+#, c-format
+msgid "Unable to stat device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:125
+#, c-format
+msgid ""
+"%s is an unknown device type. Must be tape or directory\n"
+" or have RequiresMount=yes for DVD. st_mode=%x\n"
+msgstr ""
+
+#: src/stored/dev.c:183
+#, c-format
+msgid "Unable to stat mount point %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:188
+msgid ""
+"Mount and unmount commands must defined for a device which requires mount.\n"
+msgstr ""
+
+#: src/stored/dev.c:191
+msgid "Write part command must be defined for a device which requires mount.\n"
+msgstr ""
+
+#: src/stored/dev.c:197
+#, c-format
+msgid "Block size %u on device %s is too large, using default %u\n"
+msgstr ""
+
+#: src/stored/dev.c:202
+#, c-format
+msgid "Max block size %u not multiple of device %s block size.\n"
+msgstr ""
+
+#: src/stored/dev.c:218 src/stored/dev.c:224
+#, c-format
+msgid "Unable to init cond variable: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:310
+msgid "Illegal mode given to open dev.\n"
+msgstr ""
+
+#: src/stored/dev.c:372 src/stored/device.c:302
+#, c-format
+msgid "Unable to open device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:392
+#, c-format
+msgid "fcntl error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:430 src/stored/dev.c:489
+#, c-format
+msgid "Could not open file device %s. No Volume name given.\n"
+msgstr ""
+
+#: src/stored/dev.c:455 src/stored/dev.c:569
+#, c-format
+msgid "Could not open: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:514
+#, c-format
+msgid ""
+"The media in the device %s is not empty, please blank it before writing "
+"anything to it.\n"
+msgstr ""
+
+#: src/stored/dev.c:530
+#, c-format
+msgid "There is no valid media in the device %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:537
+#, c-format
+msgid "Could not mount device %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:595
+#, c-format
+msgid "Could not fstat: %s, ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:648
+#, c-format
+msgid "Bad call to rewind_dev. Device %s not open\n"
+msgstr ""
+
+#: src/stored/dev.c:677
+#, c-format
+msgid "Rewind error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:687 src/stored/dev.c:800 src/stored/dev.c:937
+#: src/stored/dev.c:1462
+#, c-format
+msgid "lseek_dev error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:727
+msgid "unknown blocked code"
+msgstr ""
+
+#: src/stored/dev.c:770
+#, c-format
+msgid "Bad call to eod_dev. Device %s not open\n"
+msgstr ""
+
+#: src/stored/dev.c:836
+#, c-format
+msgid "ioctl MTEOM error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:844 src/stored/dev.c:977
+#, c-format
+msgid "ioctl MTIOCGET error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:923
+msgid "Bad device call. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:936
+#, c-format
+msgid "Seek error: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:972
+msgid " Bacula status:"
+msgstr ""
+
+#: src/stored/dev.c:973 src/stored/dev.c:1022 src/stored/dev.c:1024
+#, c-format
+msgid " file=%d block=%d\n"
+msgstr ""
+
+#: src/stored/dev.c:981
+msgid " Device status:"
+msgstr ""
+
+#: src/stored/dev.c:1046
+msgid "Bad call to load_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1057 src/stored/dev.c:1070
+#, c-format
+msgid "ioctl MTLOAD error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1089
+msgid "Bad call to offline_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1112
+#, c-format
+msgid "ioctl MTOFFL error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1153
+msgid "Bad call to fsf_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1163 src/stored/dev.c:1284
+#, c-format
+msgid "Device %s at End of Tape.\n"
+msgstr ""
+
+#: src/stored/dev.c:1188 src/stored/dev.c:1264
+#, c-format
+msgid "ioctl MTFSF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1313
+msgid "Bad call to bsf_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1319
+#, c-format
+msgid "Device %s cannot BSF because it is not a tape.\n"
+msgstr ""
+
+#: src/stored/dev.c:1334
+#, c-format
+msgid "ioctl MTBSF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1354
+msgid "Bad call to fsr. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1363
+#, c-format
+msgid "ioctl MTFSR not permitted on %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1391
+#, c-format
+msgid "ioctl MTFSR %d error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1411
+msgid "Bad call to bsr_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1421
+#, c-format
+msgid "ioctl MTBSR not permitted on %s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1434
+#, c-format
+msgid "ioctl MTBSR error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1451
+msgid "Bad call to reposition_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1519
+msgid "Bad call to weof_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/dev.c:1529
+msgid "Attempt to WEOF on non-appendable Volume\n"
+msgstr ""
+
+#: src/stored/dev.c:1546
+#, c-format
+msgid "ioctl MTWEOF error on %s. ERR=%s.\n"
+msgstr ""
+
+#: src/stored/dev.c:1588
+msgid "Got ENOTTY on read/write!\n"
+msgstr ""
+
+#: src/stored/dev.c:1635
+#, c-format
+msgid "unknown func code %d"
+msgstr ""
+
+#: src/stored/dev.c:1641
+#, c-format
+msgid "I/O function \"%s\" not supported on this device.\n"
+msgstr ""
+
+#: src/stored/dev.c:1779 src/stored/dvd.c:668
+#, c-format
+msgid "Unable to truncate device %s. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dev.c:1818
+msgid "Bad call to term_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/device.c:105
+#, c-format
+msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n"
+msgstr ""
+
+#: src/stored/device.c:119
+#, c-format
+msgid "New volume \"%s\" mounted on device %s at %s.\n"
+msgstr ""
+
+#: src/stored/device.c:131
+#, c-format
+msgid "write_block_to_device Volume label failed. ERR=%s"
+msgstr ""
+
+#: src/stored/device.c:168
+#, c-format
+msgid "write_block_to_device overflow block failed. ERR=%s"
+msgstr ""
+
+#: src/stored/device.c:304
+#, c-format
+msgid "Unable to open archive %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:328
+msgid "Bad call to force_close_dev. Device not open\n"
+msgstr ""
+
+#: src/stored/device.c:346
+#, c-format
+msgid "Device write lock failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:354
+#, c-format
+msgid "Device write unlock failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/device.c:373
+#, c-format
+msgid "pthread_cond_wait failure. ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:140
+msgid "Connection request failed.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:149
+#, c-format
+msgid "Invalid connection. Len=%d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:241
+#, c-format
+msgid "3991 Bad setdebug command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:262
+#, c-format
+msgid "3902 Job %s not found.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:279
+#, c-format
+msgid "3000 Job %s marked to be canceled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:283
+msgid "3903 Error scanning cancel command.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:352 src/stored/dircmd.c:648 src/stored/dircmd.c:712
+#: src/stored/dircmd.c:770 src/stored/dircmd.c:822 src/stored/dircmd.c:860
+#, c-format
+msgid "3999 Device \"%s\" not found\n"
+msgstr ""
+
+#: src/stored/dircmd.c:357
+#, c-format
+msgid "3903 Error scanning label command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:401
+#, c-format
+msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:407
+msgid "3921 Wrong volume mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:411
+msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:419 src/stored/dircmd.c:428
+#, c-format
+msgid "3912 Failed to label Volume: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:431
+#, c-format
+msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n"
+msgstr ""
+
+#: src/stored/dircmd.c:464
+#, c-format
+msgid "3001 Mounted Volume: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:468 src/stored/dircmd.c:896
+#, c-format
+msgid ""
+"3902 Cannot mount Volume on Storage Device %s because:\n"
+"%s"
+msgstr ""
+
+#: src/stored/dircmd.c:491 src/stored/reserve.c:518
+#, c-format
+msgid ""
+"\n"
+" Device \"%s\" requested by DIR could not be opened or does not exist.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:512 src/stored/reserve.c:514
+#, c-format
+msgid ""
+"\n"
+" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or "
+"does not exist.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:568 src/stored/dircmd.c:616
+#, c-format
+msgid "3901 open device failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:583 src/stored/dircmd.c:607
+#, c-format
+msgid "3001 Device %s is mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:586 src/stored/dircmd.c:610 src/stored/dircmd.c:625
+#, c-format
+msgid ""
+"3905 Device %s open but no Bacula volume is mounted.\n"
+"If this is not a blank tape, try unmounting and remounting the Volume.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:595
+#, c-format
+msgid "3001 Device %s is doing acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:600 src/stored/dircmd.c:690
+#, c-format
+msgid "3903 Device %s is being labeled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:622
+#, c-format
+msgid "3001 Device %s is already mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/dircmd.c:631
+#, c-format
+msgid "3002 Device %s is mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:634
+#, c-format
+msgid "3907 %s"
+msgstr ""
+
+#: src/stored/dircmd.c:637
+#, c-format
+msgid "3906 File device %s is always mounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:643
+#, c-format
+msgid "3905 Bizarre wait state %d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:652
+#, c-format
+msgid "3909 Error scanning mount command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:673
+#, c-format
+msgid "3901 Device %s is already unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:682
+#, c-format
+msgid "3001 Device %s unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:686
+#, c-format
+msgid "3902 Device %s is busy in acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:707
+#, c-format
+msgid "3002 Device %s unmounted.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:717
+#, c-format
+msgid "3907 Error scanning unmount command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:742
+#, c-format
+msgid "3911 Device %s already released.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:749
+#, c-format
+msgid "3912 Device %s waiting for mount.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:753
+#, c-format
+msgid "3913 Device %s is busy in acquire.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:757
+#, c-format
+msgid "3914 Device %s is being labeled.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:765
+#, c-format
+msgid "3012 Device %s released.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:775
+#, c-format
+msgid "3917 Error scanning release command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:808
+#, c-format
+msgid "3995 Device %s is not an autochanger.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:826
+#, c-format
+msgid "3908 Error scanning autocharger list/slots command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:864
+#, c-format
+msgid "3909 Error scanning readlabel command: %s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:892
+#, c-format
+msgid "3001 Volume=%s Slot=%d\n"
+msgstr ""
+
+#: src/stored/dircmd.c:921
+#, c-format
+msgid "3910 Unable to open device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/dircmd.c:931
+#, c-format
+msgid "3911 Device %s is busy reading.\n"
+msgstr ""
+
+#: src/stored/dircmd.c:934
+#, c-format
+msgid "3912 Device %s is busy with %d writer(s).\n"
+msgstr ""
+
+#: src/stored/fd_cmds.c:340
+msgid "Error parsing bootstrap file.\n"
+msgstr ""
+
+#: src/stored/job.c:79
+#, c-format
+msgid "Bad Job Command from Director: %s\n"
+msgstr ""
+
+#: src/stored/job.c:189
+#, c-format
+msgid "Job name not found: %s\n"
+msgstr ""
+
+#: src/stored/job.c:200
+#, c-format
+msgid "Hey!!!! JobId %u Job %s already authenticated.\n"
+msgstr ""
+
+#: src/stored/job.c:211
+msgid "Unable to authenticate File daemon\n"
+msgstr ""
+
+#: src/stored/job.c:338
+msgid "In free_jcr(), but still attached to device!!!!\n"
+msgstr ""
+
+#: src/stored/label.c:74
+msgid "BAD call to read_dev_volume_label\n"
+msgstr ""
+
+#: src/stored/label.c:79 src/stored/label.c:120 src/stored/label.c:208
+#, c-format
+msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n"
+msgstr ""
+
+#: src/stored/label.c:86 src/stored/label.c:123 src/stored/label.c:195
+#, c-format
+msgid "Too many tries: %s"
+msgstr ""
+
+#: src/stored/label.c:102
+#, c-format
+msgid "Couldn't rewind device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:140
+#, c-format
+msgid ""
+"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s"
+msgstr ""
+
+#: src/stored/label.c:145
+msgid "Could not read Volume label from block.\n"
+msgstr ""
+
+#: src/stored/label.c:148
+#, c-format
+msgid "Could not unserialize Volume label: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:153
+#, c-format
+msgid "Volume Header Id bad: %s\n"
+msgstr ""
+
+#: src/stored/label.c:180
+#, c-format
+msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n"
+msgstr ""
+
+#: src/stored/label.c:191
+#, c-format
+msgid "Volume on %s has bad Bacula label type: %x\n"
+msgstr ""
+
+#: src/stored/label.c:272
+#, c-format
+msgid "Cannot write Volume label to block for device %s\n"
+msgstr ""
+
+#: src/stored/label.c:393
+#, c-format
+msgid "Rewind error on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:398
+#, c-format
+msgid "Truncate error on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:420
+#, c-format
+msgid "Unable to write device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/label.c:448
+#, c-format
+msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n"
+msgstr ""
+
+#: src/stored/label.c:451
+#, c-format
+msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n"
+msgstr ""
+
+#: src/stored/label.c:648
+#, c-format
+msgid "Bad session label = %d\n"
+msgstr ""
+
+#: src/stored/label.c:666 src/stored/label.c:673
+#, c-format
+msgid "Error writing Session label to %s: %s\n"
+msgstr ""
+
+#: src/stored/label.c:707
+#, c-format
+msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n"
+msgstr ""
+
+#: src/stored/label.c:834
+#, c-format
+msgid "Unknown %d"
+msgstr ""
+
+#: src/stored/label.c:838
+#, c-format
+msgid ""
+"\n"
+"Volume Label:\n"
+"Id : %sVerNo : %d\n"
+"VolName : %s\n"
+"PrevVolName : %s\n"
+"VolFile : %d\n"
+"LabelType : %s\n"
+"LabelSize : %d\n"
+"PoolName : %s\n"
+"MediaType : %s\n"
+"PoolType : %s\n"
+"HostName : %s\n"
+msgstr ""
+
+#: src/stored/label.c:860
+#, c-format
+msgid "Date label written: %s\n"
+msgstr ""
+
+#: src/stored/label.c:866
+#, c-format
+msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n"
+msgstr ""
+
+#: src/stored/label.c:886
+#, c-format
+msgid ""
+"\n"
+"%s Record:\n"
+"JobId : %d\n"
+"VerNum : %d\n"
+"PoolName : %s\n"
+"PoolType : %s\n"
+"JobName : %s\n"
+"ClientName : %s\n"
+msgstr ""
+
+#: src/stored/label.c:899
+#, c-format
+msgid ""
+"Job (unique name) : %s\n"
+"FileSet : %s\n"
+"JobType : %c\n"
+"JobLevel : %c\n"
+msgstr ""
+
+#: src/stored/label.c:908
+#, c-format
+msgid ""
+"JobFiles : %s\n"
+"JobBytes : %s\n"
+"StartBlock : %s\n"
+"EndBlock : %s\n"
+"StartFile : %s\n"
+"EndFile : %s\n"
+"JobErrors : %s\n"
+"JobStatus : %c\n"
+msgstr ""
+
+#: src/stored/label.c:929
+#, c-format
+msgid "Date written : %s\n"
+msgstr ""
+
+#: src/stored/label.c:934
+#, c-format
+msgid "Date written : %04d-%02d-%02d at %02d:%02d\n"
+msgstr ""
+
+#: src/stored/label.c:953
+msgid "Fresh Volume"
+msgstr ""
+
+#: src/stored/label.c:965 src/stored/read_record.c:335
+msgid "End of Media"
+msgstr ""
+
+#: src/stored/label.c:968
+msgid "End of Tape"
+msgstr ""
+
+#: src/stored/label.c:988 src/stored/label.c:996 src/stored/label.c:1029
+#, c-format
+msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n"
+msgstr ""
+
+#: src/stored/label.c:993
+msgid "End of physical tape.\n"
+msgstr ""
+
+#: src/stored/label.c:1008 src/stored/label.c:1017
+#, c-format
+msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n"
+msgstr ""
+
+#: src/stored/label.c:1010
+#, c-format
+msgid " Job=%s Date=%s Level=%c Type=%c\n"
+msgstr ""
+
+#: src/stored/label.c:1019
+#, c-format
+msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n"
+msgstr ""
+
+#: src/stored/mount.c:197 src/stored/mount.c:294
+#, c-format
+msgid "Volume \"%s\" not on device %s.\n"
+msgstr ""
+
+#: src/stored/mount.c:230
+#, c-format
+msgid ""
+"Director wanted Volume \"%s\".\n"
+" Current Volume \"%s\" not acceptable because:\n"
+" %s"
+msgstr ""
+
+#: src/stored/mount.c:284
+#, c-format
+msgid "Labeled new Volume \"%s\" on device %s.\n"
+msgstr ""
+
+#: src/stored/mount.c:289
+#, c-format
+msgid "Warning device %s not configured to autolabel Volumes.\n"
+msgstr ""
+
+#: src/stored/mount.c:340
+#, c-format
+msgid "Volume \"%s\" previously written, moving to end of data.\n"
+msgstr ""
+
+#: src/stored/mount.c:343
+#, c-format
+msgid "Unable to position to end of data on device %s: ERR=%s\n"
+msgstr ""
+
+#: src/stored/mount.c:355
+#, c-format
+msgid "Ready to append to end of Volume \"%s\" at file=%d.\n"
+msgstr ""
+
+#: src/stored/mount.c:358
+#, c-format
+msgid ""
+"I cannot write on Volume \"%s\" because:\n"
+"The number of files mismatch! Volume=%u Catalog=%u\n"
+msgstr ""
+
+#: src/stored/mount.c:411
+#, c-format
+msgid "Marking Volume \"%s\" in Error in Catalog.\n"
+msgstr ""
+
+#: src/stored/mount.c:427
+#, c-format
+msgid ""
+"Autochanger Volume \"%s\" not found in slot %d.\n"
+" Setting InChanger to zero in catalog.\n"
+msgstr ""
+
+#: src/stored/mount.c:446
+msgid "Hey!!!!! WroteVol non-zero !!!!!\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:104 src/stored/parse_bsr.c:108
+#, c-format
+msgid ""
+"Bootstrap file error: %s\n"
+" : Line %d, col %d of file %s\n"
+"%s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:130
+#, c-format
+msgid "Cannot open bootstrap file %s: %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:260
+#, c-format
+msgid "MediaType %s in bsr at inappropriate place.\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:416
+msgid "JobType not yet implemented\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:424
+msgid "JobLevel not yet implemented\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:626
+#, c-format
+msgid "VolFile : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:634
+#, c-format
+msgid "VolBlock : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:644
+#, c-format
+msgid "FileIndex : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:646
+#, c-format
+msgid "FileIndex : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:656
+#, c-format
+msgid "JobId : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:658
+#, c-format
+msgid "JobId : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:668
+#, c-format
+msgid "SessId : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:670
+#, c-format
+msgid "SessId : %u-%u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:679
+#, c-format
+msgid "VolumeName : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:688
+#, c-format
+msgid "Client : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:696
+#, c-format
+msgid "Job : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:704
+#, c-format
+msgid "SessTime : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:718
+msgid "BSR is NULL\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:722
+#, c-format
+msgid "Next : 0x%x\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:723
+#, c-format
+msgid "Root bsr : 0x%x\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:734
+#, c-format
+msgid "Slot : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:737
+#, c-format
+msgid "count : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:738
+#, c-format
+msgid "found : %u\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:741
+#, c-format
+msgid "done : %s\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:742
+#, c-format
+msgid "positioning : %d\n"
+msgstr ""
+
+#: src/stored/parse_bsr.c:743
#, c-format
-msgid "Read record failed! ERR=%s\n"
+msgid "fast_reject : %d\n"
+msgstr ""
+
+#: src/stored/read.c:55
+msgid "No Volume names found for restore.\n"
msgstr ""
-#: src/stored/btape.c:1009
+#: src/stored/read.c:109
#, c-format
-msgid "Block %d re-read correctly.\n"
+msgid ">filed: Error Hdr=%s\n"
+msgstr ""
+
+#: src/stored/read.c:110 src/stored/read.c:125
+#, c-format
+msgid "Error sending to File daemon. ERR=%s\n"
+msgstr ""
+
+#: src/stored/read.c:124
+#, c-format
+msgid "Error sending to FD. ERR=%s\n"
+msgstr ""
+
+#: src/stored/read_record.c:68
+#, c-format
+msgid "End of Volume at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/read_record.c:71
+msgid "End of all volumes.\n"
+msgstr ""
+
+#: src/stored/read_record.c:105
+#, c-format
+msgid "Got EOF at file %u on device %s, Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/read_record.c:119
+msgid "Did fsr\n"
+msgstr ""
+
+#: src/stored/read_record.c:275
+#, c-format
+msgid "Reposition from (file:block) %u:%u to %u:%u\n"
+msgstr ""
+
+#: src/stored/read_record.c:302
+#, c-format
+msgid "Forward spacing to file:block %u:%u.\n"
+msgstr ""
+
+#: src/stored/read_record.c:328
+msgid "Begin Session"
+msgstr ""
+
+#: src/stored/read_record.c:332
+msgid "End Session"
+msgstr ""
+
+#: src/stored/read_record.c:338
+#, c-format
+msgid "Unknown code %d\n"
+msgstr ""
+
+#: src/stored/record.c:61
+#, c-format
+msgid "unknown: %d"
+msgstr ""
+
+#: src/stored/record.c:332
+msgid "Damaged buffer\n"
+msgstr ""
+
+#: src/stored/spool.c:69
+#, c-format
+msgid ""
+"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n"
+msgstr ""
+
+#: src/stored/spool.c:75
+#, c-format
+msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n"
+msgstr ""
+
+#: src/stored/spool.c:91
+msgid "Spooling data ...\n"
+msgstr ""
+
+#: src/stored/spool.c:117
+#, c-format
+msgid "Bad return from despool WroteVol=%d\n"
+msgstr ""
+
+#: src/stored/spool.c:150
+#, c-format
+msgid "Open data spool file %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:199
+#, c-format
+msgid "Committing spooled data to Volume. Despooling %s bytes ...\n"
+msgstr ""
+
+#: src/stored/spool.c:203
+#, c-format
+msgid "Writing spooled data to Volume. Despooling %s bytes ...\n"
+msgstr ""
+
+#: src/stored/spool.c:257 src/stored/spool.c:431 src/stored/spool.c:469
+#, c-format
+msgid "Ftruncate spool file failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:259
+#, c-format
+msgid "Bad return from ftruncate. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:308
+#, c-format
+msgid "Spool header read error. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:311
+#, c-format
+msgid "Spool read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:312
+#, c-format
+msgid "Spool header read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:318 src/stored/spool.c:319
+#, c-format
+msgid "Spool block too big. Max %u bytes, got %u\n"
+msgstr ""
+
+#: src/stored/spool.c:324 src/stored/spool.c:325
+#, c-format
+msgid "Spool data read error. Wanted %u bytes, got %d\n"
+msgstr ""
+
+#: src/stored/spool.c:382
+msgid "User specified spool size reached.\n"
+msgstr ""
+
+#: src/stored/spool.c:384
+msgid "Bad return from despool in write_block.\n"
+msgstr ""
+
+#: src/stored/spool.c:392
+msgid "Spooling data again ...\n"
+msgstr ""
+
+#: src/stored/spool.c:423
+#, c-format
+msgid "Error writing header to spool file. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:437 src/stored/spool.c:475
+msgid "Fatal despooling error."
+msgstr ""
+
+#: src/stored/spool.c:444
+msgid "Retrying after header spooling error failed.\n"
+msgstr ""
+
+#: src/stored/spool.c:458
+#, c-format
+msgid "Error writing data to spool file. ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:485
+msgid "Retrying after data spooling error failed.\n"
+msgstr ""
+
+#: src/stored/spool.c:540 src/stored/spool.c:547
+#, c-format
+msgid "Fseek on attributes file failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/spool.c:557
+#, c-format
+msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n"
msgstr ""
-#: src/stored/btape.c:1030
+#: src/stored/spool.c:584
+#, c-format
+msgid "fopen attr spool file %s failed: ERR=%s\n"
+msgstr ""
+
+#: src/stored/status.c:66
+#, c-format
msgid ""
"\n"
+"%s Version: %s (%s) %s %s %s\n"
+msgstr ""
+
+#: src/stored/status.c:97
+msgid ""
"\n"
-"=== Append files test ===\n"
+"Device status:\n"
+msgstr ""
+
+#: src/stored/status.c:99
+#, c-format
+msgid "Autochanger \"%s\" with devices:\n"
+msgstr ""
+
+#: src/stored/status.c:113
+#, c-format
+msgid "Device %s is mounted with Volume \"%s\"\n"
+msgstr ""
+
+#: src/stored/status.c:116
+#, c-format
+msgid "Device %s open but no Bacula volume is mounted.\n"
+msgstr ""
+
+#: src/stored/status.c:126
+#, c-format
+msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:140
+#, c-format
+msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:145
+#, c-format
+msgid " Positioned at File=%s Block=%s\n"
+msgstr ""
+
+#: src/stored/status.c:151
+#, c-format
+msgid "Device %s is not open or does not exist.\n"
+msgstr ""
+
+#: src/stored/status.c:153
+#, c-format
+msgid "Device \"%s\" is not open or does not exist.\n"
+msgstr ""
+
+#: src/stored/status.c:158 src/stored/status.c:165 src/stored/status.c:168
+msgid ""
+"====\n"
"\n"
-"This test is essential to Bacula.\n"
+msgstr ""
+
+#: src/stored/status.c:159
+msgid "Volume status:\n"
+msgstr ""
+
+#: src/stored/status.c:183
+msgid ""
+"No DEVICE structure.\n"
"\n"
-"I'm going to write one record in file 0,\n"
-" two records in file 1,\n"
-" and three records in file 2\n"
+msgstr ""
+
+#: src/stored/status.c:188
+msgid " Device is BLOCKED. User unmounted.\n"
+msgstr ""
+
+#: src/stored/status.c:191
+msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n"
+msgstr ""
+
+#: src/stored/status.c:195
+#, c-format
+msgid " Device is BLOCKED waiting for mount of volume \"%s\".\n"
+msgstr ""
+
+#: src/stored/status.c:198
+msgid " Device is BLOCKED waiting for media.\n"
+msgstr ""
+
+#: src/stored/status.c:202
+msgid " Device is being initialized.\n"
+msgstr ""
+
+#: src/stored/status.c:205
+msgid " Device is blocked labeling a Volume.\n"
+msgstr ""
+
+#: src/stored/status.c:213
+#, c-format
+msgid " Slot %d is loaded in drive %d.\n"
+msgstr ""
+
+#: src/stored/status.c:216
+#, c-format
+msgid " Drive %d is not loaded.\n"
+msgstr ""
+
+#: src/stored/status.c:235
+msgid "Device state:\n"
+msgstr ""
+
+#: src/stored/status.c:249
+#, c-format
+msgid ""
+"num_writers=%d JobStatus=%c block=%d\n"
"\n"
msgstr ""
-#: src/stored/btape.c:1054
-msgid "Now moving to end of medium.\n"
+#: src/stored/status.c:253
+#, c-format
+msgid "Archive name: %s Device name: %s\n"
msgstr ""
-#: src/stored/btape.c:1056 src/stored/btape.c:1286
+#: src/stored/status.c:255
#, c-format
-msgid "We should be in file 3. I am at file %d. This is %s\n"
+msgid "File=%u block=%u\n"
msgstr ""
-#: src/stored/btape.c:1063
+#: src/stored/status.c:256
+#, c-format
+msgid "Min block=%u Max block=%u\n"
+msgstr ""
+
+#: src/stored/status.c:272
+#, c-format
+msgid "%s Job %s waiting for Client connection.\n"
+msgstr ""
+
+#: src/stored/status.c:284
+#, c-format
+msgid "%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"
+msgstr ""
+
+#: src/stored/status.c:303
+#, c-format
+msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n"
+msgstr ""
+
+#: src/stored/status.c:308
+msgid " FDSocket closed\n"
+msgstr ""
+
+#: src/stored/status.c:335
+msgid " JobId Level Files Bytes Status Finished Name \n"
+msgstr ""
+
+#: src/stored/status.c:469
+msgid "3900 Bad .status command, missing argument.\n"
+msgstr ""
+
+#: src/stored/status.c:494
+msgid "3900 Bad .status command, wrong argument.\n"
+msgstr ""
+
+#: src/stored/stored.c:65
+#, c-format
msgid ""
+"Copyright (C) 2000-2005 Kern Sibbald.\n"
"\n"
-"Now the important part, I am going to attempt to append to the tape.\n"
+"Version: %s (%s)\n"
+"\n"
+"Usage: stored [options] [-c config_file] [config_file]\n"
+" -c <file> use <file> as configuration file\n"
+" -dnn set debug level to nn\n"
+" -f run in foreground (for debugging)\n"
+" -g <group> set groupid to group\n"
+" -p proceed despite I/O errors\n"
+" -s no signals (for debugging)\n"
+" -t test - read config and exit\n"
+" -u <user> userid to <user>\n"
+" -v verbose user messages\n"
+" -? print this message.\n"
"\n"
msgstr ""
-#: src/stored/btape.c:1070
-msgid ""
-"Done appending, there should be no I/O errors\n"
-"\n"
+#: src/stored/stored.c:220
+msgid "Volume Session Time is ZERO!\n"
msgstr ""
-#: src/stored/btape.c:1073
-msgid "End scanning the tape.\n"
+#: src/stored/stored.c:233
+#, c-format
+msgid "Unable to create thread. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1074 src/stored/btape.c:1299
+#: src/stored/stored.c:272
#, c-format
-msgid "We should be in file 4. I am at file %d. This is %s\n"
+msgid "Only one Storage resource permitted in %s\n"
msgstr ""
-#: src/stored/btape.c:1113
-msgid ""
-"\n"
-"\n"
-"=== Autochanger test ===\n"
-"\n"
+#: src/stored/stored.c:277
+#, c-format
+msgid "No Director resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1122
-msgid "3301 Issuing autochanger \"loaded\" command.\n"
+#: src/stored/stored.c:282
+#, c-format
+msgid "No Device resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1131
+#: src/stored/stored.c:290
#, c-format
-msgid "3991 Bad autochanger command: %s\n"
+msgid "No Messages resource defined in %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1132
+#: src/stored/stored.c:317
#, c-format
-msgid "3991 result=\"%s\": ERR=%s\n"
+msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/stored/btape.c:1146
+#: src/stored/stored.c:323
#, c-format
-msgid "3302 Issuing autochanger \"unload %d %d\" command.\n"
+msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n"
msgstr ""
-#: src/stored/btape.c:1154
+#: src/stored/stored.c:329
#, c-format
-msgid "3992 Bad autochanger command: %s\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Storage \"%s\" in %s. At least one CA certificate store is required when "
+"using \"TLS Verify Peer\".\n"
msgstr ""
-#: src/stored/btape.c:1155
+#: src/stored/stored.c:417
#, c-format
-msgid "3992 result=\"%s\": ERR=%s\n"
+msgid "No Changer Name given for device %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1165
+#: src/stored/stored.c:423
#, c-format
-msgid "3303 Issuing autochanger \"load %d %d\" command.\n"
+msgid "No Changer Command given for device %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1173
+#: src/stored/stored.c:435
#, c-format
-msgid "3303 Autochanger \"load %d %d\" status is OK.\n"
+msgid ""
+"Media Type not the same for all devices in changer %s. Cannot continue.\n"
msgstr ""
-#: src/stored/btape.c:1177
+#: src/stored/stored.c:496
#, c-format
-msgid "3993 Bad autochanger command: %s\n"
+msgid "Could not initialize %s\n"
msgstr ""
-#: src/stored/btape.c:1178
+#: src/stored/stored.c:509
#, c-format
-msgid "3993 result=\"%s\": ERR=%s\n"
+msgid "Could not open device %s\n"
msgstr ""
-#: src/stored/btape.c:1244
-msgid ""
-"\n"
-"\n"
-"=== Forward space files test ===\n"
-"\n"
-"This test is essential to Bacula.\n"
-"\n"
-"I'm going to write five files then test forward spacing\n"
-"\n"
+#: src/stored/stored.c:526
+#, c-format
+msgid "Could not mount device %s\n"
msgstr ""
-#: src/stored/btape.c:1269
-msgid "Now forward spacing 1 file.\n"
+#: src/stored/stored_conf.c:188
+#, c-format
+msgid "Warning: no \"%s\" resource (%d) defined.\n"
msgstr ""
-#: src/stored/btape.c:1274
+#: src/stored/stored_conf.c:191
#, c-format
-msgid "We should be in file 1. I am at file %d. This is %s\n"
+msgid "dump_resource type=%d\n"
msgstr ""
-#: src/stored/btape.c:1281
-msgid "Now forward spacing 2 files.\n"
+#: src/stored/stored_conf.c:307
+#, c-format
+msgid "Warning: unknown resource type %d\n"
msgstr ""
-#: src/stored/btape.c:1294
-msgid "Now forward spacing 4 files.\n"
+#: src/stored/stored_conf.c:496
+#, c-format
+msgid "\"%s\" item is required in \"%s\" resource, but not found.\n"
msgstr ""
-#: src/stored/btape.c:1312
-msgid "Now forward spacing 1 more file.\n"
+#: src/stored/stored_conf.c:502
+#, c-format
+msgid "Too many items in \"%s\" resource\n"
msgstr ""
-#: src/stored/btape.c:1316
+#: src/stored/stored_conf.c:536
#, c-format
-msgid "We should be in file 5. I am at file %d. This is %s\n"
+msgid "Cannot find AutoChanger resource %s\n"
msgstr ""
-#: src/stored/btape.c:1321
+#: src/stored/stored_conf.c:607
+#, c-format
msgid ""
-"\n"
-"=== End Forward space files test ===\n"
-"\n"
+"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n"
msgstr ""
-#: src/stored/btape.c:1325
-msgid ""
-"\n"
-"The forward space file test failed.\n"
+#: src/stored/ansi_label.c:83
+#, c-format
+msgid "Read error on device %s in ANSI label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1422
-msgid ""
-"\n"
-"The above Bacula scan should have output identical to what follows.\n"
-"Please double check it ...\n"
-"=== Sample correct output ===\n"
-"1 block of 64448 bytes in file 1\n"
-"End of File mark.\n"
-"2 blocks of 64448 bytes in file 2\n"
-"End of File mark.\n"
-"3 blocks of 64448 bytes in file 3\n"
-"End of File mark.\n"
-"1 block of 64448 bytes in file 4\n"
-"End of File mark.\n"
-"Total files=4, blocks=7, bytes = 451,136\n"
-"=== End sample correct output ===\n"
-"\n"
+#: src/stored/ansi_label.c:93
+msgid "Insane! End of tape while reading ANSI label.\n"
msgstr ""
-#: src/stored/btape.c:1436
-msgid ""
-"If the above scan output is not identical to the\n"
-"sample output, you MUST correct the problem\n"
-"or Bacula will not be able to write multiple Jobs to \n"
-"the tape.\n"
-"\n"
+#: src/stored/ansi_label.c:117
+msgid "No VOL1 label while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1515
+#: src/stored/ansi_label.c:137
#, c-format
-msgid "Wrote one record of %d bytes.\n"
+msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n"
msgstr ""
-#: src/stored/btape.c:1517
-msgid "Wrote block to device.\n"
+#: src/stored/ansi_label.c:148
+msgid "No HDR1 label while reading ANSI label.\n"
msgstr ""
-#: src/stored/btape.c:1537
-msgid "Bad length entered, using default of 1024 bytes.\n"
+#: src/stored/ansi_label.c:154
+#, c-format
+msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n"
msgstr ""
-#: src/stored/btape.c:1546
-#, c-format
-msgid "Read of %d bytes gives stat=%d. ERR=%s\n"
+#: src/stored/ansi_label.c:165
+msgid "No HDR2 label while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1574
-#, c-format
-msgid "Starting scan at file %u\n"
+#: src/stored/ansi_label.c:179
+msgid "Unknown or bad ANSI/IBM label record.\n"
+msgstr ""
+
+#: src/stored/ansi_label.c:186
+msgid "Too many records in while reading ANSI/IBM label.\n"
msgstr ""
-#: src/stored/btape.c:1663
+#: src/stored/ansi_label.c:285
#, c-format
-msgid "End of File mark.\n"
+msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n"
msgstr ""
-#: src/stored/btape.c:1672
+#: src/stored/ansi_label.c:302
#, c-format
-msgid "Short block read.\n"
+msgid "Could not write ANSI VOL1 label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1675
+#: src/stored/ansi_label.c:340 src/stored/ansi_label.c:369
#, c-format
-msgid "Error reading block. ERR=%s\n"
+msgid "Could not write ANSI HDR1 label. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1903
-msgid "Not OK\n"
+#: src/stored/ansi_label.c:345 src/stored/ansi_label.c:376
+msgid "Could not write ANSI HDR1 label.\n"
msgstr ""
-#: src/stored/btape.c:1931
-msgid "Set ok=false after write_block_to_device.\n"
+#: src/stored/ansi_label.c:381
+#, c-format
+msgid "Error writing EOF to tape. ERR=%s"
msgstr ""
-#: src/stored/btape.c:1934
-msgid "Wrote End of Session label.\n"
+#: src/stored/ansi_label.c:386
+msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n"
msgstr ""
-#: src/stored/btape.c:1962
+#: src/stored/dvd.c:153
#, c-format
-msgid "Could not create state file: %s ERR=%s\n"
+msgid "Device %s cannot be mounted. ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:1966
+#: src/stored/dvd.c:261
#, c-format
-msgid ""
-"\n"
-"\n"
-"Done filling tape%s at %d:%d. Now beginning re-read of %stape ...\n"
+msgid "Cannot run free space command (%s)\n"
msgstr ""
-#: src/stored/btape.c:2052
-msgid "Mount first tape. Press enter when ready: "
+#: src/stored/dvd.c:322
+#, c-format
+msgid "Error while writing current part to the DVD: %s"
msgstr ""
-#: src/stored/btape.c:2076
-msgid "Reading the first 10000 records.\n"
+#: src/stored/dvd.c:343
+#, c-format
+msgid "Remaining free space %s on %s\n"
msgstr ""
-#: src/stored/btape.c:2079 src/stored/btape.c:2146
+#: src/stored/dvd.c:412
#, c-format
-msgid "Reposition from %u:%u to %u:%u\n"
+msgid "Next Volume part already exists on DVD. Cannot continue: %s\n"
msgstr ""
-#: src/stored/btape.c:2085
+#: src/stored/dvd.c:430
#, c-format
-msgid "Reading block %u.\n"
+msgid "open_next_part can't unlink existing part %s, ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:2087 src/stored/btape.c:2138 src/stored/btape.c:2154
+#: src/stored/dvd.c:634
#, c-format
-msgid "Error reading block: ERR=%s\n"
+msgid "Unable to write part %s: ERR=%s\n"
msgstr ""
-#: src/stored/btape.c:2092
-msgid ""
-"\n"
-"The last block on the tape matches. Test succeeded.\n"
-"\n"
+#: src/stored/wait.c:178 src/stored/wait.c:236
+#, c-format
+msgid "Job %s waiting to reserve a device.\n"
msgstr ""
-#: src/stored/btape.c:2094
-msgid ""
-"\n"
-"The last block of the first tape matches.\n"
-"\n"
+#: src/stored/pythonsd.c:59
+msgid "SDName"
msgstr ""
-#: src/stored/btape.c:2119
-msgid "Mount second tape. Press enter when ready: "
+#: src/stored/pythonsd.c:202
+msgid "Error in ParseTuple\n"
msgstr ""
-#: src/stored/btape.c:2131
-#, c-format
-msgid "Reposition from %u:%u to 0:1\n"
+#: src/stored/pythonsd.c:218
+msgid "Parse tuple error in job_write\n"
msgstr ""
-#: src/stored/btape.c:2136 src/stored/btape.c:2152
+#: src/stored/pythonsd.c:254
#, c-format
-msgid "Reading block %d.\n"
+msgid "Error in Python method %s\n"
msgstr ""
-#: src/stored/btape.c:2142
-msgid ""
-"\n"
-"The first block on the second tape matches.\n"
-"\n"
+#: src/stored/reserve.c:344 src/stored/reserve.c:361
+#, c-format
+msgid "Failed command: %s\n"
msgstr ""
-#: src/stored/btape.c:2158
+#: src/stored/reserve.c:346
+#, c-format
msgid ""
"\n"
-"The last block on the second tape matches. Test succeeded.\n"
-"\n"
+" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD "
+"Device resources.\n"
msgstr ""
-#: src/stored/btape.c:2201 src/stored/btape.c:2212
-msgid "Last block written"
+#: src/stored/reserve.c:528
+#, c-format
+msgid "3926 Could not get dcr for device: %s\n"
msgstr ""
-#: src/stored/btape.c:2203 src/stored/btape.c:2213
-msgid "Block read back"
+#: src/stored/reserve.c:568 src/stored/reserve.c:623
+#, c-format
+msgid "Device %s is BLOCKED due to user unmount.\n"
msgstr ""
-#: src/stored/btape.c:2520
+#: src/stored/reserve.c:576
#, c-format
-msgid "%s is an illegal command\n"
+msgid "Device %s is busy.\n"
msgstr ""
-#: src/stored/btape.c:2530
+#: src/stored/reserve.c:631
#, c-format
-msgid "Interactive commands:\n"
+msgid "Device %s is busy writing on another Volume.\n"
msgstr ""
-#: src/stored/btape.c:2541
+#: src/stored/reserve.c:705
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: btape <options> <device_name>\n"
-" -b <file> specify bootstrap file\n"
-" -c <file> set configuration file to file\n"
-" -d <nn> set debug level to nn\n"
-" -p proceed inspite of I/O errors\n"
-" -s turn off signals\n"
-" -v be verbose\n"
-" -? print this message.\n"
-"\n"
+msgid "Wanted Pool \"%s\", but device %s is using Pool \"%s\" .\n"
msgstr ""
-#: src/stored/butil.c:128
-msgid "Volume name or names is too long. Please use a .bsr file.\n"
+#: src/stored/reserve.c:710 src/stored/reserve.c:711
+msgid "Logic error!!!! Should not get here.\n"
msgstr ""
-#: src/stored/butil.c:148
+#: src/tools/bsmtp.c:85
#, c-format
-msgid "Cannot find device \"%s\" in config file %s.\n"
+msgid "Fatal malformed reply from %s: %s\n"
msgstr ""
-#: src/stored/butil.c:155
+#: src/tools/bsmtp.c:121
#, c-format
-msgid "Cannot init device %s\n"
+msgid ""
+"\n"
+"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n"
+" -c set the Cc: field\n"
+" -dnn set debug level to nn\n"
+" -f set the From: field\n"
+" -h use mailhost:port as the SMTP server\n"
+" -s set the Subject: field\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/butil.c:174
-#, c-format
-msgid "Cannot open %s\n"
+#: src/tools/bsmtp.c:204
+msgid "Fatal error: no recipient given.\n"
msgstr ""
-#: src/stored/butil.c:253
+#: src/tools/bsmtp.c:225
#, c-format
-msgid "Could not find device \"%s\" in config file %s.\n"
+msgid "Fatal gethostname error: ERR=%s\n"
msgstr ""
-#: src/stored/butil.c:257
+#: src/tools/bsmtp.c:229
#, c-format
-msgid "Using device: \"%s\" for %s.\n"
-msgstr ""
-
-#: src/stored/butil.c:273
-msgid "Unexpected End of Data\n"
-msgstr ""
-
-#: src/stored/butil.c:275
-msgid "Unexpected End of Tape\n"
+msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n"
msgstr ""
-#: src/stored/butil.c:277
-msgid "Unexpected End of File\n"
+#: src/tools/bsmtp.c:254
+#, c-format
+msgid "Error unknown mail host \"%s\": ERR=%s\n"
msgstr ""
-
-#: src/stored/butil.c:279
-msgid "Tape Door is Open\n"
+
+#: src/tools/bsmtp.c:257
+msgid "Retrying connection using \"localhost\".\n"
msgstr ""
-#: src/stored/butil.c:281
-msgid "Unexpected Tape is Off-line\n"
+#: src/tools/bsmtp.c:265
+#, c-format
+msgid "Fatal error: Unknown address family for smtp host: %d\n"
msgstr ""
-#: src/stored/dev.c:110
+#: src/tools/bsmtp.c:273
#, c-format
-msgid "Unable to stat device %s: ERR=%s\n"
+msgid "Fatal socket error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:125
+#: src/tools/bsmtp.c:277
#, c-format
-msgid ""
-"%s is an unknown device type. Must be tape or directory\n"
-" or have RequiresMount=yes for DVD. st_mode=%x\n"
+msgid "Fatal connect error to %s: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:183
+#: src/tools/bsmtp.c:282
#, c-format
-msgid "Unable to stat mount point %s: ERR=%s\n"
+msgid "Fatal dup error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:188
-msgid ""
-"Mount and unmount commands must defined for a device which requires mount.\n"
+#: src/tools/bsmtp.c:286 src/tools/bsmtp.c:290
+#, c-format
+msgid "Fatal fdopen error: ERR=%s\n"
msgstr ""
-#: src/stored/dev.c:191
-msgid "Write part command must be defined for a device which requires mount.\n"
+#: src/tools/dbcheck.c:158
+msgid ""
+"Warning skipping the additional parameters for working directory/dbname/user/"
+"password/host.\n"
msgstr ""
-#: src/stored/dev.c:197
+#: src/tools/dbcheck.c:174
#, c-format
-msgid "Block size %u on device %s is too large, using default %u\n"
+msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n"
msgstr ""
-#: src/stored/dev.c:202
+#: src/tools/dbcheck.c:176
#, c-format
-msgid "Max block size %u not multiple of device %s block size.\n"
+msgid "Error there is no Catalog section in the given config file [%s]\n"
msgstr ""
-#: src/stored/dev.c:212 src/stored/dev.c:230 src/stored/dev.c:236
-#: src/stored/stored_conf.c:550
-#, c-format
-msgid "Unable to init mutex: ERR=%s\n"
+#: src/tools/dbcheck.c:185
+msgid "Error no Director resource defined.\n"
msgstr ""
-#: src/stored/dev.c:218 src/stored/dev.c:224
-#, c-format
-msgid "Unable to init cond variable: ERR=%s\n"
+#: src/tools/dbcheck.c:199
+msgid "Wrong number of arguments.\n"
msgstr ""
-#: src/stored/dev.c:310
-msgid "Illegal mode given to open dev.\n"
+#: src/tools/dbcheck.c:204
+msgid "Working directory not supplied.\n"
msgstr ""
-#: src/stored/dev.c:372 src/stored/device.c:302
+#: src/tools/dbcheck.c:269
#, c-format
-msgid "Unable to open device %s: ERR=%s\n"
+msgid "Hello, this is the database check/correct program.\n"
msgstr ""
-#: src/stored/dev.c:430 src/stored/dev.c:489
+#: src/tools/dbcheck.c:271
#, c-format
-msgid "Could not open file device %s. No Volume name given.\n"
+msgid "Modify database is on."
msgstr ""
-#: src/stored/dev.c:455 src/stored/dev.c:569
+#: src/tools/dbcheck.c:273
#, c-format
-msgid "Could not open: %s, ERR=%s\n"
+msgid "Modify database is off."
msgstr ""
-#: src/stored/dev.c:514
+#: src/tools/dbcheck.c:275 src/tools/dbcheck.c:336
#, c-format
-msgid ""
-"The media in the device %s is not empty, please blank it before writing "
-"anything to it.\n"
+msgid " Verbose is on.\n"
msgstr ""
-#: src/stored/dev.c:530
+#: src/tools/dbcheck.c:277 src/tools/dbcheck.c:338
#, c-format
-msgid "There is no valid media in the device %s.\n"
+msgid " Verbose is off.\n"
msgstr ""
-#: src/stored/dev.c:537
+#: src/tools/dbcheck.c:279
#, c-format
-msgid "Could not mount device %s.\n"
+msgid "Please select the fuction you want to perform.\n"
msgstr ""
-#: src/stored/dev.c:595
+#: src/tools/dbcheck.c:283
#, c-format
-msgid "Could not fstat: %s, ERR=%s\n"
+msgid ""
+"\n"
+" 1) Toggle modify database flag\n"
+" 2) Toggle verbose flag\n"
+" 3) Repair bad Filename records\n"
+" 4) Repair bad Path records\n"
+" 5) Eliminate duplicate Filename records\n"
+" 6) Eliminate duplicate Path records\n"
+" 7) Eliminate orphaned Jobmedia records\n"
+" 8) Eliminate orphaned File records\n"
+" 9) Eliminate orphaned Path records\n"
+" 10) Eliminate orphaned Filename records\n"
+" 11) Eliminate orphaned FileSet records\n"
+" 12) Eliminate orphaned Client records\n"
+" 13) Eliminate orphaned Job records\n"
+" 14) Eliminate all Admin records\n"
+" 15) Eliminate all Restore records\n"
+" 16) All (3-15)\n"
+" 17) Quit\n"
msgstr ""
-#: src/stored/dev.c:648
+#: src/tools/dbcheck.c:302
#, c-format
-msgid "Bad call to rewind_dev. Device %s not open\n"
+msgid ""
+"\n"
+" 1) Toggle modify database flag\n"
+" 2) Toggle verbose flag\n"
+" 3) Check for bad Filename records\n"
+" 4) Check for bad Path records\n"
+" 5) Check for duplicate Filename records\n"
+" 6) Check for duplicate Path records\n"
+" 7) Check for orphaned Jobmedia records\n"
+" 8) Check for orphaned File records\n"
+" 9) Check for orphaned Path records\n"
+" 10) Check for orphaned Filename records\n"
+" 11) Check for orphaned FileSet records\n"
+" 12) Check for orphaned Client records\n"
+" 13) Check for orphaned Job records\n"
+" 14) Check for all Admin records\n"
+" 15) Check for all Restore records\n"
+" 16) All (3-15)\n"
+" 17) Quit\n"
msgstr ""
-#: src/stored/dev.c:677
+#: src/tools/dbcheck.c:322
+msgid "Select function number: "
+msgstr ""
+
+#: src/tools/dbcheck.c:329
#, c-format
-msgid "Rewind error on %s. ERR=%s.\n"
+msgid "Database will be modified.\n"
msgstr ""
-#: src/stored/dev.c:687 src/stored/dev.c:800 src/stored/dev.c:937
-#: src/stored/dev.c:1462
+#: src/tools/dbcheck.c:331
#, c-format
-msgid "lseek_dev error on %s. ERR=%s.\n"
+msgid "Database will NOT be modified.\n"
msgstr ""
-#: src/stored/dev.c:770
+#: src/tools/dbcheck.c:421
#, c-format
-msgid "Bad call to eod_dev. Device %s not open\n"
+msgid "JobId=%s Name=\"%s\" StartTime=%s\n"
msgstr ""
-#: src/stored/dev.c:836
+#: src/tools/dbcheck.c:429
#, c-format
-msgid "ioctl MTEOM error on %s. ERR=%s.\n"
+msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:844 src/stored/dev.c:977
+#: src/tools/dbcheck.c:436
#, c-format
-msgid "ioctl MTIOCGET error on %s. ERR=%s.\n"
+msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:923
-msgid "Bad device call. Device not open\n"
+#: src/tools/dbcheck.c:443
+#, c-format
+msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n"
msgstr ""
-#: src/stored/dev.c:1046
-msgid "Bad call to load_dev. Device not open\n"
+#: src/tools/dbcheck.c:450
+#, c-format
+msgid "Orphaned ClientId=%s Name=\"%s\"\n"
msgstr ""
-#: src/stored/dev.c:1057 src/stored/dev.c:1070
+#: src/tools/dbcheck.c:503
#, c-format
-msgid "ioctl MTLOAD error on %s. ERR=%s.\n"
+msgid "Deleting: %s\n"
msgstr ""
-#: src/stored/dev.c:1089
-msgid "Bad call to offline_dev. Device not open\n"
+#: src/tools/dbcheck.c:577
+#, c-format
+msgid "Checking for duplicate Filename entries.\n"
msgstr ""
-#: src/stored/dev.c:1112
+#: src/tools/dbcheck.c:586
#, c-format
-msgid "ioctl MTOFFL error on %s. ERR=%s.\n"
+msgid "Found %d duplicate Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1153
-msgid "Bad call to fsf_dev. Device not open\n"
+#: src/tools/dbcheck.c:587
+msgid "Print the list? (yes/no): "
msgstr ""
-#: src/stored/dev.c:1163 src/stored/dev.c:1284
+#: src/tools/dbcheck.c:603 src/tools/dbcheck.c:657
#, c-format
-msgid "Device %s at End of Tape.\n"
+msgid "Found %d for: %s\n"
msgstr ""
-#: src/stored/dev.c:1188 src/stored/dev.c:1264
+#: src/tools/dbcheck.c:630
#, c-format
-msgid "ioctl MTFSF error on %s. ERR=%s.\n"
+msgid "Checking for duplicate Path entries.\n"
msgstr ""
-#: src/stored/dev.c:1234
+#: src/tools/dbcheck.c:640
#, c-format
-msgid "read error on %s. ERR=%s.\n"
+msgid "Found %d duplicate Path records.\n"
msgstr ""
-#: src/stored/dev.c:1313
-msgid "Bad call to bsf_dev. Device not open\n"
+#: src/tools/dbcheck.c:641 src/tools/dbcheck.c:691 src/tools/dbcheck.c:723
+#: src/tools/dbcheck.c:755 src/tools/dbcheck.c:783 src/tools/dbcheck.c:811
+#: src/tools/dbcheck.c:849 src/tools/dbcheck.c:887 src/tools/dbcheck.c:918
+#: src/tools/dbcheck.c:948 src/tools/dbcheck.c:982 src/tools/dbcheck.c:1040
+msgid "Print them? (yes/no): "
msgstr ""
-#: src/stored/dev.c:1319
+#: src/tools/dbcheck.c:683
#, c-format
-msgid "Device %s cannot BSF because it is not a tape.\n"
+msgid "Checking for orphaned JobMedia entries.\n"
msgstr ""
-#: src/stored/dev.c:1334
+#: src/tools/dbcheck.c:690
#, c-format
-msgid "ioctl MTBSF error on %s. ERR=%s.\n"
+msgid "Found %d orphaned JobMedia records.\n"
msgstr ""
-#: src/stored/dev.c:1354
-msgid "Bad call to fsr. Device not open\n"
-msgstr ""
-
-#: src/stored/dev.c:1363
+#: src/tools/dbcheck.c:703
#, c-format
-msgid "ioctl MTFSR not permitted on %s.\n"
+msgid "Deleting %d orphaned JobMedia records.\n"
msgstr ""
-#: src/stored/dev.c:1391
+#: src/tools/dbcheck.c:712
#, c-format
-msgid "ioctl MTFSR %d error on %s. ERR=%s.\n"
+msgid "Checking for orphaned File entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1411
-msgid "Bad call to bsr_dev. Device not open\n"
+#: src/tools/dbcheck.c:722
+#, c-format
+msgid "Found %d orphaned File records.\n"
msgstr ""
-#: src/stored/dev.c:1421
+#: src/tools/dbcheck.c:735
#, c-format
-msgid "ioctl MTBSR not permitted on %s.\n"
+msgid "Deleting %d orphaned File records.\n"
msgstr ""
-#: src/stored/dev.c:1434
+#: src/tools/dbcheck.c:744
#, c-format
-msgid "ioctl MTBSR error on %s. ERR=%s.\n"
+msgid "Checking for orphaned Path entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1451
-msgid "Bad call to reposition_dev. Device not open\n"
+#: src/tools/dbcheck.c:754
+#, c-format
+msgid "Found %d orphaned Path records.\n"
msgstr ""
-#: src/stored/dev.c:1519
-msgid "Bad call to weof_dev. Device not open\n"
+#: src/tools/dbcheck.c:763
+#, c-format
+msgid "Deleting %d orphaned Path records.\n"
msgstr ""
-#: src/stored/dev.c:1529
-msgid "Attempt to WEOF on non-appendable Volume\n"
+#: src/tools/dbcheck.c:772
+#, c-format
+msgid "Checking for orphaned Filename entries. This may take some time!\n"
msgstr ""
-#: src/stored/dev.c:1546
+#: src/tools/dbcheck.c:782
#, c-format
-msgid "ioctl MTWEOF error on %s. ERR=%s.\n"
+msgid "Found %d orphaned Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1641
+#: src/tools/dbcheck.c:791
#, c-format
-msgid "I/O function \"%s\" not supported on this device.\n"
+msgid "Deleting %d orphaned Filename records.\n"
msgstr ""
-#: src/stored/dev.c:1779 src/stored/dvd.c:667
+#: src/tools/dbcheck.c:800
#, c-format
-msgid "Unable to truncate device %s. ERR=%s\n"
+msgid "Checking for orphaned FileSet entries. This takes some time!\n"
msgstr ""
-#: src/stored/dev.c:1818
-msgid "Bad call to term_dev. Device not open\n"
+#: src/tools/dbcheck.c:810
+#, c-format
+msgid "Found %d orphaned FileSet records.\n"
msgstr ""
-#: src/stored/device.c:105
+#: src/tools/dbcheck.c:822
#, c-format
-msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n"
+msgid "Deleting %d orphaned FileSet records.\n"
msgstr ""
-#: src/stored/device.c:119
+#: src/tools/dbcheck.c:831
#, c-format
-msgid "New volume \"%s\" mounted on device %s at %s.\n"
+msgid "Checking for orphaned Client entries.\n"
msgstr ""
-#: src/stored/device.c:328
-msgid "Bad call to force_close_dev. Device not open\n"
+#: src/tools/dbcheck.c:848
+#, c-format
+msgid "Found %d orphaned Client records.\n"
msgstr ""
-#: src/stored/device.c:373
+#: src/tools/dbcheck.c:860
#, c-format
-msgid "pthread_cond_wait failure. ERR=%s\n"
+msgid "Deleting %d orphaned Client records.\n"
msgstr ""
-#: src/stored/dircmd.c:140
-msgid "Connection request failed.\n"
+#: src/tools/dbcheck.c:869
+#, c-format
+msgid "Checking for orphaned Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:149
+#: src/tools/dbcheck.c:886
#, c-format
-msgid "Invalid connection. Len=%d\n"
+msgid "Found %d orphaned Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:262
+#: src/tools/dbcheck.c:898
#, c-format
-msgid "3902 Job %s not found.\n"
+msgid "Deleting %d orphaned Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:279
+#: src/tools/dbcheck.c:908
#, c-format
-msgid "3000 Job %s marked to be canceled.\n"
+msgid "Checking for Admin Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:283
-msgid "3903 Error scanning cancel command.\n"
+#: src/tools/dbcheck.c:917
+#, c-format
+msgid "Found %d Admin Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:352 src/stored/dircmd.c:648 src/stored/dircmd.c:712
-#: src/stored/dircmd.c:770 src/stored/dircmd.c:822 src/stored/dircmd.c:860
+#: src/tools/dbcheck.c:929
#, c-format
-msgid "3999 Device \"%s\" not found\n"
+msgid "Deleting %d Admin Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:357
+#: src/tools/dbcheck.c:938
#, c-format
-msgid "3903 Error scanning label command: %s\n"
+msgid "Checking for Restore Job entries.\n"
msgstr ""
-#: src/stored/dircmd.c:401
+#: src/tools/dbcheck.c:947
#, c-format
-msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n"
+msgid "Found %d Restore Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:407
-msgid "3921 Wrong volume mounted.\n"
+#: src/tools/dbcheck.c:959
+#, c-format
+msgid "Deleting %d Restore Job records.\n"
msgstr ""
-#: src/stored/dircmd.c:411
-msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n"
+#: src/tools/dbcheck.c:972
+#, c-format
+msgid "Checking for Filenames with a trailing slash\n"
msgstr ""
-#: src/stored/dircmd.c:419 src/stored/dircmd.c:428
+#: src/tools/dbcheck.c:981
#, c-format
-msgid "3912 Failed to label Volume: ERR=%s\n"
+msgid "Found %d bad Filename records.\n"
msgstr ""
-#: src/stored/dircmd.c:431
+#: src/tools/dbcheck.c:995 src/tools/dbcheck.c:1053
#, c-format
-msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n"
+msgid "Reparing %d bad Filename records.\n"
msgstr ""
-#: src/stored/dircmd.c:464
+#: src/tools/dbcheck.c:1030
#, c-format
-msgid "3001 Mounted Volume: %s\n"
+msgid "Checking for Paths without a trailing slash\n"
msgstr ""
-#: src/stored/dircmd.c:468 src/stored/dircmd.c:896
+#: src/tools/dbcheck.c:1039
#, c-format
-msgid ""
-"3902 Cannot mount Volume on Storage Device %s because:\n"
-"%s"
+msgid "Found %d bad Path records.\n"
msgstr ""
-#: src/stored/dircmd.c:491 src/stored/reserve.c:518
+#: src/tools/testfind.c:49
#, c-format
msgid ""
"\n"
-" Device \"%s\" requested by DIR could not be opened or does not exist.\n"
+"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n"
+" -a print extended attributes (Win32 debug)\n"
+" -dnn set debug level to nn\n"
+" -e specify file of exclude patterns\n"
+" -i specify file of include patterns\n"
+" - read pattern(s) from stdin\n"
+" -? print this message.\n"
+"\n"
+"Patterns are used for file inclusion -- normally directories.\n"
+"Debug level >= 1 prints each file found.\n"
+"Debug level >= 10 prints path/file for catalog.\n"
+"Errors are always printed.\n"
+"Files/paths truncated is the number of files/paths with len > 255.\n"
+"Truncation is only in the catalog.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:512 src/stored/reserve.c:514
+#: src/tools/testfind.c:134 src/tools/testls.c:130
#, c-format
-msgid ""
-"\n"
-" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or "
-"does not exist.\n"
+msgid "Could not open include file: %s\n"
msgstr ""
-#: src/stored/dircmd.c:568 src/stored/dircmd.c:616
+#: src/tools/testfind.c:147 src/tools/testls.c:143
#, c-format
-msgid "3901 open device failed: ERR=%s\n"
+msgid "Could not open exclude file: %s\n"
msgstr ""
-#: src/stored/dircmd.c:583 src/stored/dircmd.c:607
+#: src/tools/testfind.c:160
#, c-format
-msgid "3001 Device %s is mounted with Volume \"%s\"\n"
+msgid ""
+"Total files : %d\n"
+"Max file length: %d\n"
+"Max path length: %d\n"
+"Files truncated: %d\n"
+"Paths truncated: %d\n"
+"Hard links : %d\n"
msgstr ""
-#: src/stored/dircmd.c:586 src/stored/dircmd.c:610 src/stored/dircmd.c:625
+#: src/tools/testfind.c:199
#, c-format
-msgid ""
-"3905 Device %s open but no Bacula volume is mounted.\n"
-"If this is not a blank tape, try unmounting and remounting the Volume.\n"
+msgid "Reg: %s\n"
+msgstr ""
+
+#: src/tools/testfind.c:220
+msgid "\t[will not descend: recursion turned off]"
+msgstr ""
+
+#: src/tools/testfind.c:222
+msgid "\t[will not descend: file system change not allowed]"
+msgstr ""
+
+#: src/tools/testfind.c:224
+msgid "\t[will not descend: disallowed file system]"
msgstr ""
-#: src/stored/dircmd.c:595
+#: src/tools/testfind.c:240 src/tools/testls.c:178
#, c-format
-msgid "3001 Device %s is doing acquire.\n"
+msgid "Err: Could not access %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:600 src/stored/dircmd.c:690
+#: src/tools/testfind.c:243 src/tools/testls.c:181
#, c-format
-msgid "3903 Device %s is being labeled.\n"
+msgid "Err: Could not follow ff->link %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:622
+#: src/tools/testfind.c:246 src/tools/testls.c:184
#, c-format
-msgid "3001 Device %s is already mounted with Volume \"%s\"\n"
+msgid "Err: Could not stat %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:631
+#: src/tools/testfind.c:249 src/tools/testls.c:187
#, c-format
-msgid "3002 Device %s is mounted.\n"
+msgid "Skip: File not saved. No change. %s\n"
msgstr ""
-#: src/stored/dircmd.c:637
+#: src/tools/testfind.c:252 src/tools/testls.c:190
#, c-format
-msgid "3906 File device %s is always mounted.\n"
+msgid "Err: Attempt to backup archive. Not saved. %s\n"
msgstr ""
-#: src/stored/dircmd.c:643
+#: src/tools/testfind.c:255 src/tools/testls.c:199
#, c-format
-msgid "3905 Bizarre wait state %d\n"
+msgid "Err: Could not open directory %s: %s\n"
msgstr ""
-#: src/stored/dircmd.c:652
+#: src/tools/testfind.c:258 src/tools/testls.c:202
#, c-format
-msgid "3909 Error scanning mount command: %s\n"
+msgid "Err: Unknown file ff->type %d: %s\n"
msgstr ""
-#: src/stored/dircmd.c:673
+#: src/tools/testfind.c:308
#, c-format
-msgid "3901 Device %s is already unmounted.\n"
+msgid "===== Filename truncated to 255 chars: %s\n"
msgstr ""
-#: src/stored/dircmd.c:682
+#: src/tools/testfind.c:325
#, c-format
-msgid "3001 Device %s unmounted.\n"
+msgid "========== Path name truncated to 255 chars: %s\n"
msgstr ""
-#: src/stored/dircmd.c:686
+#: src/tools/testfind.c:334
#, c-format
-msgid "3902 Device %s is busy in acquire.\n"
+msgid "========== Path length is zero. File=%s\n"
msgstr ""
-#: src/stored/dircmd.c:707
+#: src/tools/testfind.c:337
#, c-format
-msgid "3002 Device %s unmounted.\n"
+msgid "Path: %s\n"
msgstr ""
-#: src/stored/dircmd.c:717
+#: src/tools/testls.c:45
#, c-format
-msgid "3907 Error scanning unmount command: %s\n"
+msgid ""
+"\n"
+"Usage: testls [-d debug_level] [-] [pattern1 ...]\n"
+" -a print extended attributes (Win32 debug)\n"
+" -dnn set debug level to nn\n"
+" -e specify file of exclude patterns\n"
+" -i specify file of include patterns\n"
+" - read pattern(s) from stdin\n"
+" -? print this message.\n"
+"\n"
+"Patterns are file inclusion -- normally directories.\n"
+"Debug level >= 1 prints each file found.\n"
+"Debug level >= 10 prints path/file for catalog.\n"
+"Errors always printed.\n"
+"Files/paths truncated is number with len > 255.\n"
+"Truncation is only in catalog.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:742
+#: src/tools/testls.c:193
#, c-format
-msgid "3911 Device %s already released.\n"
+msgid "Recursion turned off. Directory not entered. %s\n"
msgstr ""
-#: src/stored/dircmd.c:749
+#: src/tools/testls.c:196
#, c-format
-msgid "3912 Device %s waiting for mount.\n"
+msgid "Skip: File system change prohibited. Directory not entered. %s\n"
msgstr ""
-#: src/stored/dircmd.c:753
+#: src/tools/fstype.c:34
#, c-format
-msgid "3913 Device %s is busy in acquire.\n"
+msgid ""
+"\n"
+"Usage: fstype [-d debug_level] path ...\n"
+"\n"
+" Print the file system type a given file/directory is on.\n"
+" The following options are supported:\n"
+"\n"
+" -v print both path and file system type.\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:757
+#: src/tools/fstype.c:86
#, c-format
-msgid "3914 Device %s is being labeled.\n"
+msgid "%s: unknown\n"
msgstr ""
-#: src/stored/dircmd.c:765
-#, c-format
-msgid "3012 Device %s released.\n"
+#: src/tray-monitor/authenticate.c:78
+msgid ""
+"Director authorization problem.\n"
+"Most likely the passwords do not agree.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:775
-#, c-format
-msgid "3917 Error scanning release command: %s\n"
+#: src/tray-monitor/authenticate.c:127
+msgid ""
+"Director and Storage daemon passwords or names not the same.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:808
-#, c-format
-msgid "3995 Device %s is not an autochanger.\n"
+#: src/tray-monitor/authenticate.c:172
+msgid ""
+"Director and File daemon passwords or names not the same.\n"
+"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
+"for help.\n"
msgstr ""
-#: src/stored/dircmd.c:826
+#: src/tray-monitor/tray-monitor.c:102
#, c-format
-msgid "3908 Error scanning autocharger list/slots command: %s\n"
+msgid ""
+"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n"
+"Written by Nicolas Boichat (2004)\n"
+"\n"
+"Version: %s (%s) %s %s %s\n"
+"\n"
+"Usage: tray-monitor [-c config_file] [-d debug_level]\n"
+" -c <file> set configuration file to file\n"
+" -dnn set debug level to nn\n"
+" -t test - read configuration and exit\n"
+" -? print this message.\n"
+"\n"
msgstr ""
-#: src/stored/dircmd.c:864
+#: src/tray-monitor/tray-monitor.c:251
#, c-format
-msgid "3909 Error scanning readlabel command: %s\n"
+msgid ""
+"Error: %d Monitor resource defined in %s. You must define one and only one "
+"Monitor resource.\n"
msgstr ""
-#: src/stored/dircmd.c:892
+#: src/tray-monitor/tray-monitor.c:282
#, c-format
-msgid "3001 Volume=%s Slot=%d\n"
+msgid ""
+"No Client, Storage nor Director resource defined in %s\n"
+"Without that I don't how to get status from the File, Storage or Director "
+"Daemon :-(\n"
msgstr ""
-#: src/stored/dircmd.c:921
+#: src/tray-monitor/tray-monitor.c:304
#, c-format
-msgid "3910 Unable to open device %s: ERR=%s\n"
+msgid ""
+"Invalid refresh interval defined in %s\n"
+"This value must be greater or equal to 1 second and less or equal to 10 "
+"minutes (read value: %d).\n"
msgstr ""
-#: src/stored/dircmd.c:931
-#, c-format
-msgid "3911 Device %s is busy reading.\n"
+#: src/tray-monitor/tray-monitor.c:319
+msgid "Open status window..."
msgstr ""
-#: src/stored/dircmd.c:934
-#, c-format
-msgid "3912 Device %s is busy with %d writer(s).\n"
+#: src/tray-monitor/tray-monitor.c:325
+msgid "Exit"
msgstr ""
-#: src/stored/fd_cmds.c:340
-msgid "Error parsing bootstrap file.\n"
+#: src/tray-monitor/tray-monitor.c:337
+msgid "Bacula tray monitor"
msgstr ""
-#: src/stored/job.c:79
-#, c-format
-msgid "Bad Job Command from Director: %s\n"
+#: src/tray-monitor/tray-monitor.c:362
+msgid " (DIR)"
msgstr ""
-#: src/stored/job.c:189
-#, c-format
-msgid "Job name not found: %s\n"
+#: src/tray-monitor/tray-monitor.c:366
+msgid " (FD)"
msgstr ""
-#: src/stored/job.c:211
-msgid "Unable to authenticate File daemon\n"
+#: src/tray-monitor/tray-monitor.c:370
+msgid " (SD)"
msgstr ""
-#: src/stored/job.c:338
-msgid "In free_jcr(), but still attached to device!!!!\n"
+#: src/tray-monitor/tray-monitor.c:383
+msgid "Unknown status."
msgstr ""
-#: src/stored/label.c:74
-msgid "BAD call to read_dev_volume_label\n"
+#: src/tray-monitor/tray-monitor.c:424
+msgid "Refresh interval in seconds: "
msgstr ""
-#: src/stored/label.c:79 src/stored/label.c:120 src/stored/label.c:208
+#: src/tray-monitor/tray-monitor.c:432
+msgid "Refresh now"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:436
+msgid "About"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:440
+msgid "Close"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:460
#, c-format
-msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n"
+msgid "Disconnecting from Director %s:%d\n"
msgstr ""
-#: src/stored/label.c:102
+#: src/tray-monitor/tray-monitor.c:463
#, c-format
-msgid "Couldn't rewind device %s: ERR=%s\n"
+msgid "Disconnecting from Client %s:%d\n"
msgstr ""
-#: src/stored/label.c:140
+#: src/tray-monitor/tray-monitor.c:466
#, c-format
+msgid "Disconnecting from Storage %s:%d\n"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:502 src/tray-monitor/tray-monitor.c:512
+msgid "Bacula Tray Monitor"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:503 src/tray-monitor/tray-monitor.c:513
msgid ""
-"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s"
+"Copyright (C) 2004 Kern Sibbald and John Walker\n"
+"Written by Nicolas Boichat\n"
msgstr ""
-#: src/stored/label.c:145
-msgid "Could not read Volume label from block.\n"
+#: src/tray-monitor/tray-monitor.c:505
+msgid "Version"
msgstr ""
-#: src/stored/label.c:148
+#: src/tray-monitor/tray-monitor.c:509
#, c-format
-msgid "Could not unserialize Volume label: ERR=%s\n"
+msgid ""
+"%s\n"
+"\n"
+"%s\n"
+"%s %s (%s) %s %s %s"
msgstr ""
-#: src/stored/label.c:153
-#, c-format
-msgid "Volume Header Id bad: %s\n"
+#: src/tray-monitor/tray-monitor.c:515
+msgid "Version:"
msgstr ""
-#: src/stored/label.c:180
+#: src/tray-monitor/tray-monitor.c:583
#, c-format
-msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n"
+msgid "Error, currentitem is not a Client or a Storage..\n"
msgstr ""
-#: src/stored/label.c:191
+#: src/tray-monitor/tray-monitor.c:656
#, c-format
-msgid "Volume on %s has bad Bacula label type: %x\n"
+msgid ""
+"Current job: %s\n"
+"Last job: %s"
msgstr ""
-#: src/stored/label.c:272
+#: src/tray-monitor/tray-monitor.c:668
#, c-format
-msgid "Cannot write Volume label to block for device %s\n"
+msgid " (%d errors)"
msgstr ""
-#: src/stored/label.c:393
+#: src/tray-monitor/tray-monitor.c:671
#, c-format
-msgid "Rewind error on device %s: ERR=%s\n"
+msgid " (%d error)"
msgstr ""
-#: src/stored/label.c:398
-#, c-format
-msgid "Truncate error on device %s: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:708
+msgid "No current job."
msgstr ""
-#: src/stored/label.c:420
-#, c-format
-msgid "Unable to write device %s: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:711
+msgid "No last job."
msgstr ""
-#: src/stored/label.c:448
-#, c-format
-msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n"
+#: src/tray-monitor/tray-monitor.c:719
+msgid "Job status: Created"
msgstr ""
-#: src/stored/label.c:451
-#, c-format
-msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n"
+#: src/tray-monitor/tray-monitor.c:724
+msgid "Job status: Running"
msgstr ""
-#: src/stored/label.c:648
-#, c-format
-msgid "Bad session label = %d\n"
+#: src/tray-monitor/tray-monitor.c:728
+msgid "Job status: Blocked"
msgstr ""
-#: src/stored/label.c:666 src/stored/label.c:673
-#, c-format
-msgid "Error writing Session label to %s: %s\n"
+#: src/tray-monitor/tray-monitor.c:733
+msgid "Job status: Terminated"
msgstr ""
-#: src/stored/label.c:707
-#, c-format
-msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n"
+#: src/tray-monitor/tray-monitor.c:738
+msgid "Job status: Terminated in error"
msgstr ""
-#: src/stored/label.c:929
-#, c-format
-msgid "Date written : %s\n"
+#: src/tray-monitor/tray-monitor.c:744
+msgid "Job status: Error"
msgstr ""
-#: src/stored/label.c:934
-#, c-format
-msgid "Date written : %04d-%02d-%02d at %02d:%02d\n"
+#: src/tray-monitor/tray-monitor.c:748
+msgid "Job status: Fatal error"
msgstr ""
-#: src/stored/label.c:954
-msgid "Fresh Volume"
+#: src/tray-monitor/tray-monitor.c:753
+msgid "Job status: Verify differences"
msgstr ""
-#: src/stored/label.c:960
-msgid "Begin Job Session"
+#: src/tray-monitor/tray-monitor.c:758
+msgid "Job status: Canceled"
msgstr ""
-#: src/stored/label.c:963
-msgid "End Job Session"
+#: src/tray-monitor/tray-monitor.c:763
+msgid "Job status: Waiting on File daemon"
msgstr ""
-#: src/stored/label.c:966
-msgid "End of Media"
+#: src/tray-monitor/tray-monitor.c:768
+msgid "Job status: Waiting on the Storage daemon"
msgstr ""
-#: src/stored/label.c:972
-msgid "Unknown"
+#: src/tray-monitor/tray-monitor.c:773
+msgid "Job status: Waiting for new media"
msgstr ""
-#: src/stored/label.c:994
-msgid "End of physical tape.\n"
+#: src/tray-monitor/tray-monitor.c:778
+msgid "Job status: Waiting for Mount"
msgstr ""
-#: src/stored/mount.c:197 src/stored/mount.c:294
-#, c-format
-msgid "Volume \"%s\" not on device %s.\n"
+#: src/tray-monitor/tray-monitor.c:783
+msgid "Job status: Waiting for storage resource"
msgstr ""
-#: src/stored/mount.c:230
+#: src/tray-monitor/tray-monitor.c:788
+msgid "Job status: Waiting for job resource"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:793
+msgid "Job status: Waiting for Client resource"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:798
+msgid "Job status: Waiting for maximum jobs"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:803
+msgid "Job status: Waiting for start time"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:808
+msgid "Job status: Waiting for higher priority jobs to finish"
+msgstr ""
+
+#: src/tray-monitor/tray-monitor.c:813
#, c-format
-msgid ""
-"Director wanted Volume \"%s\".\n"
-" Current Volume \"%s\" not acceptable because:\n"
-" %s"
+msgid "Unknown job status %c."
msgstr ""
-#: src/stored/mount.c:284
+#: src/tray-monitor/tray-monitor.c:814
#, c-format
-msgid "Labeled new Volume \"%s\" on device %s.\n"
+msgid "Job status: Unknown(%c)"
msgstr ""
-#: src/stored/mount.c:289
+#: src/tray-monitor/tray-monitor.c:821
#, c-format
-msgid "Warning device %s not configured to autolabel Volumes.\n"
+msgid "Bad scan : '%s' %d\n"
msgstr ""
-#: src/stored/mount.c:340
+#: src/tray-monitor/tray-monitor.c:859
#, c-format
-msgid "Volume \"%s\" previously written, moving to end of data.\n"
+msgid "Connecting to Director %s:%d"
msgstr ""
-#: src/stored/mount.c:343
+#: src/tray-monitor/tray-monitor.c:865
#, c-format
-msgid "Unable to position to end of data on device %s: ERR=%s\n"
+msgid "Connecting to Client %s:%d\n"
msgstr ""
-#: src/stored/mount.c:355
+#: src/tray-monitor/tray-monitor.c:866
#, c-format
-msgid "Ready to append to end of Volume \"%s\" at file=%d.\n"
+msgid "Connecting to Client %s:%d"
msgstr ""
-#: src/stored/mount.c:358
+#: src/tray-monitor/tray-monitor.c:872
#, c-format
-msgid ""
-"I cannot write on Volume \"%s\" because:\n"
-"The number of files mismatch! Volume=%u Catalog=%u\n"
+msgid "Connecting to Storage %s:%d\n"
msgstr ""
-#: src/stored/mount.c:411
+#: src/tray-monitor/tray-monitor.c:873
#, c-format
-msgid "Marking Volume \"%s\" in Error in Catalog.\n"
+msgid "Connecting to Storage %s:%d"
msgstr ""
-#: src/stored/mount.c:427
+#: src/tray-monitor/tray-monitor.c:878 src/tray-monitor/tray-monitor.c:916
#, c-format
-msgid ""
-"Autochanger Volume \"%s\" not found in slot %d.\n"
-" Setting InChanger to zero in catalog.\n"
+msgid "Error, currentitem is not a Client, a Storage or a Director..\n"
msgstr ""
-#: src/stored/parse_bsr.c:104 src/stored/parse_bsr.c:108
-#, c-format
-msgid ""
-"Bootstrap file error: %s\n"
-" : Line %d, col %d of file %s\n"
-"%s\n"
+#: src/tray-monitor/tray-monitor.c:884
+msgid "Cannot connect to daemon.\n"
msgstr ""
-#: src/stored/parse_bsr.c:130
-#, c-format
-msgid "Cannot open bootstrap file %s: %s\n"
+#: src/tray-monitor/tray-monitor.c:885
+msgid "Cannot connect to daemon."
msgstr ""
-#: src/stored/parse_bsr.c:260
+#: src/tray-monitor/tray-monitor.c:897
#, c-format
-msgid "MediaType %s in bsr at inappropriate place.\n"
+msgid "Authentication error : %s"
msgstr ""
-#: src/stored/read.c:55
-msgid "No Volume names found for restore.\n"
+#: src/tray-monitor/tray-monitor.c:904
+msgid "Opened connection with Director daemon.\n"
msgstr ""
-#: src/stored/read.c:110 src/stored/read.c:125
-#, c-format
-msgid "Error sending to File daemon. ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:905
+msgid "Opened connection with Director daemon."
msgstr ""
-#: src/stored/read_record.c:302
-#, c-format
-msgid "Forward spacing to file:block %u:%u.\n"
+#: src/tray-monitor/tray-monitor.c:908
+msgid "Opened connection with File daemon.\n"
msgstr ""
-#: src/stored/spool.c:91
-msgid "Spooling data ...\n"
+#: src/tray-monitor/tray-monitor.c:909
+msgid "Opened connection with File daemon."
msgstr ""
-#: src/stored/spool.c:150
-#, c-format
-msgid "Open data spool file %s failed: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:912
+msgid "Opened connection with Storage daemon.\n"
msgstr ""
-#: src/stored/spool.c:198
-#, c-format
-msgid "%s spooled data to Volume. Despooling %s bytes ...\n"
+#: src/tray-monitor/tray-monitor.c:913
+msgid "Opened connection with Storage daemon."
msgstr ""
-#: src/stored/spool.c:252 src/stored/spool.c:426 src/stored/spool.c:464
-#, c-format
-msgid "Ftruncate spool file failed: ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:948
+msgid "<< Error: BNET_PROMPT signal received. >>\n"
msgstr ""
-#: src/stored/spool.c:303
-#, c-format
-msgid "Spool header read error. ERR=%s\n"
+#: src/tray-monitor/tray-monitor.c:953 src/wx-console/console_thread.cpp:442
+msgid "<< Heartbeat signal received, answered. >>\n"
msgstr ""
-#: src/stored/spool.c:307
+#: src/tray-monitor/tray-monitor.c:957
#, c-format
-msgid "Spool header read error. Wanted %u bytes, got %d\n"
+msgid "<< Unexpected signal received : %s >>\n"
msgstr ""
-#: src/stored/spool.c:314
-#, c-format
-msgid "Spool block too big. Max %u bytes, got %u\n"
+#: src/tray-monitor/tray-monitor.c:962
+msgid "<ERROR>\n"
msgstr ""
-#: src/stored/spool.c:320
-#, c-format
-msgid "Spool data read error. Wanted %u bytes, got %d\n"
+#: src/tray-monitor/tray-monitor.c:966
+msgid "Error : BNET_HARDEOF or BNET_ERROR"
msgstr ""
-#: src/stored/spool.c:377
-msgid "User specified spool size reached.\n"
+#: src/tray-monitor/tray-monitor.c:972
+msgid "<STOP>\n"
msgstr ""
-#: src/stored/spool.c:387
-msgid "Spooling data again ...\n"
+#: src/tray-monitor/tray-monitor.c:976
+msgid "Error : Connection closed."
msgstr ""
-#: src/stored/spool.c:418
+#: src/tray-monitor/tray_conf.c:161
#, c-format
-msgid "Error writing header to spool file. ERR=%s\n"
+msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n"
msgstr ""
-#: src/stored/spool.c:432 src/stored/spool.c:470
-msgid "Fatal despooling error."
+#: src/tray-monitor/tray_conf.c:167
+#, c-format
+msgid "Director: name=%s address=%s FDport=%d\n"
msgstr ""
-#: src/stored/spool.c:439
-msgid "Retrying after header spooling error failed.\n"
+#: src/tray-monitor/tray_conf.c:171
+#, c-format
+msgid "Client: name=%s address=%s FDport=%d\n"
msgstr ""
-#: src/stored/spool.c:453
+#: src/tray-monitor/tray_conf.c:175
#, c-format
-msgid "Error writing data to spool file. ERR=%s\n"
+msgid "Storage: name=%s address=%s SDport=%d\n"
msgstr ""
-#: src/stored/spool.c:480
-msgid "Retrying after data spooling error failed.\n"
+#: src/wx-console/authenticate.c:126
+msgid "Bad response to Hello command: ERR="
msgstr ""
-#: src/stored/spool.c:535 src/stored/spool.c:542
+#: src/baconfig.h:52
#, c-format
-msgid "Fseek on attributes file failed: ERR=%s\n"
+msgid "Failed ASSERT: %s\n"
msgstr ""
-#: src/stored/spool.c:552
-#, c-format
-msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n"
+#: src/baconfig.h:59
+msgid "*None*"
msgstr ""
-#: src/stored/spool.c:579
+#: src/wx-console/console_thread.cpp:100
#, c-format
-msgid "fopen attr spool file %s failed: ERR=%s\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Director \"%s\" in config file.\n"
+" At least one CA certificate store is required.\n"
msgstr ""
-#: src/stored/status.c:93
+#: src/wx-console/console_thread.cpp:109
msgid ""
-"\n"
-"Device status:\n"
+"No Director resource defined in config file.\n"
+"Without that I don't how to speak to the Director :-(\n"
msgstr ""
-#: src/stored/status.c:95
+#: src/wx-console/console_thread.cpp:129
#, c-format
-msgid "Autochanger \"%s\" with devices:\n"
+msgid ""
+"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
+"Console \"%s\" in config file.\n"
msgstr ""
-#: src/stored/status.c:109
-#, c-format
-msgid "Device %s is mounted with Volume \"%s\"\n"
+#: src/wx-console/console_thread.cpp:151
+msgid "Error while initializing windows sockets...\n"
msgstr ""
-#: src/stored/status.c:112
-#, c-format
-msgid "Device %s open but no Bacula volume is mounted.\n"
+#: src/wx-console/console_thread.cpp:166
+msgid "Error while cleaning up windows sockets...\n"
msgstr ""
-#: src/stored/status.c:122
-#, c-format
-msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n"
+#: src/wx-console/console_thread.cpp:204
+msgid "Error while initializing library."
msgstr ""
-#: src/stored/status.c:136
-#, c-format
-msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n"
+#: src/wx-console/console_thread.cpp:234
+msgid "Please correct configuration file.\n"
msgstr ""
-#: src/stored/status.c:141
-#, c-format
-msgid " Positioned at File=%s Block=%s\n"
+#: src/wx-console/console_thread.cpp:267
+msgid "Error : Library not initialized\n"
msgstr ""
-#: src/stored/status.c:147
-#, c-format
-msgid "Device %s is not open or does not exist.\n"
+#: src/wx-console/console_thread.cpp:278
+msgid "Error : No configuration file loaded\n"
msgstr ""
-#: src/stored/status.c:149
-#, c-format
-msgid "Device \"%s\" is not open or does not exist.\n"
+#: src/wx-console/console_thread.cpp:288
+msgid "Connecting...\n"
msgstr ""
-#: src/stored/status.c:184
-msgid " Device is BLOCKED. User unmounted.\n"
+#: src/wx-console/console_thread.cpp:304
+msgid "Error : No director defined in config file.\n"
msgstr ""
-#: src/stored/status.c:187
-msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n"
+#: src/wx-console/console_thread.cpp:316
+msgid "Multiple directors found in your config file.\n"
msgstr ""
-#: src/stored/status.c:191
+#: src/wx-console/console_thread.cpp:325
#, c-format
-msgid " Device is BLOCKED waiting for mount of volume \"%s\".\n"
+msgid "Please choose a director (1-%s): "
msgstr ""
-#: src/stored/status.c:194
-msgid " Device is BLOCKED waiting for media.\n"
+#: src/wx-console/console_thread.cpp:397
+msgid "Failed to connect to the director\n"
msgstr ""
-#: src/stored/status.c:198
-msgid " Device is being initialized.\n"
+#: src/wx-console/console_thread.cpp:407
+msgid "Connected\n"
msgstr ""
-#: src/stored/status.c:201
-msgid " Device is blocked labeling a Volume.\n"
+#: src/wx-console/console_thread.cpp:445
+msgid "<< Unexpected signal received : "
msgstr ""
-#: src/stored/status.c:209
-#, c-format
-msgid " Slot %d is loaded in drive %d.\n"
+#: src/wx-console/console_thread.cpp:463
+msgid "Connection terminated\n"
+msgstr ""
+
+#: src/wx-console/main.cpp:96
+msgid "Bacula wx-console"
msgstr ""
-#: src/stored/status.c:212
+#: src/wx-console/main.cpp:101 src/wx-console/wxbmainframe.cpp:248
#, c-format
-msgid " Drive %d is not loaded.\n"
+msgid "Welcome to bacula wx-console %s (%s)!\n"
msgstr ""
-#: src/stored/status.c:231
-msgid "Device state:\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:41
+msgid "Config file editor"
msgstr ""
-#: src/stored/status.c:268
-#, c-format
-msgid "%s Job %s waiting for Client connection.\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:57
+msgid "Save and close"
msgstr ""
-#: src/stored/status.c:280
-#, c-format
-msgid "%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:58
+msgid "Close without saving"
msgstr ""
-#: src/stored/status.c:331
-msgid " JobId Level Files Bytes Status Finished Name \n"
+#: src/wx-console/wxbconfigfileeditor.cpp:69
+msgid "# Bacula wx-console Configuration File\n"
msgstr ""
-#: src/stored/stored.c:66
+#: src/wx-console/wxbconfigfileeditor.cpp:100
#, c-format
-msgid ""
-")\n"
-"\n"
-"Usage: stored [options] [-c config_file] [config_file]\n"
-" -c <file> use <file> as configuration file\n"
-" -dnn set debug level to nn\n"
-" -f run in foreground (for debugging)\n"
-" -g <group> set groupid to group\n"
-" -p proceed despite I/O errors\n"
-" -s no signals (for debugging)\n"
-" -t test - read config and exit\n"
-" -u <user> userid to <user>\n"
-" -v verbose user messages\n"
-" -? print this message.\n"
-"\n"
+msgid "Unable to write to %s\n"
msgstr ""
-#: src/stored/stored.c:217
-msgid "Volume Session Time is ZERO!\n"
+#: src/wx-console/wxbconfigfileeditor.cpp:101
+msgid "Error while saving"
msgstr ""
-#: src/stored/stored.c:230
-#, c-format
-msgid "Unable to create thread. ERR=%s\n"
+#: src/wx-console/wxbconfigpanel.cpp:184
+msgid "Apply"
msgstr ""
-#: src/stored/stored.c:269
-#, c-format
-msgid "Only one Storage resource permitted in %s\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:61
+#: src/wx-console/wxbhistorytextctrl.cpp:132
+#: src/wx-console/wxbmainframe.cpp:272
+msgid "Type your command below:"
msgstr ""
-#: src/stored/stored.c:274
-#, c-format
-msgid "No Director resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:96
+msgid "Unknown command."
msgstr ""
-#: src/stored/stored.c:279
-#, c-format
-msgid "No Device resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbhistorytextctrl.cpp:105
+msgid "Possible completions: "
msgstr ""
-#: src/stored/stored.c:287
-#, c-format
-msgid "No Messages resource defined in %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:258
+#: src/wx-console/wxbrestorepanel.cpp:1861
+#: src/wx-console/wxbrestorepanel.cpp:1890
+msgid "Enter restore mode"
msgstr ""
-#: src/stored/stored.c:314
-#, c-format
-msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n"
+#: src/wx-console/wxbrestorepanel.cpp:261
+msgid "Cancel restore"
msgstr ""
-#: src/stored/stored.c:320
-#, c-format
-msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n"
+#: src/wx-console/wxbrestorepanel.cpp:287
+#: src/wx-console/wxbrestorepanel.cpp:341
+msgid "Add"
msgstr ""
-#: src/stored/stored.c:326
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Storage \"%s\" in %s. At least one CA certificate store is required when "
-"using \"TLS Verify Peer\".\n"
+#: src/wx-console/wxbrestorepanel.cpp:289
+#: src/wx-console/wxbrestorepanel.cpp:343
+msgid "Remove"
msgstr ""
-#: src/stored/stored.c:414
-#, c-format
-msgid "No Changer Name given for device %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:291
+#: src/wx-console/wxbrestorepanel.cpp:345
+msgid "Refresh"
msgstr ""
-#: src/stored/stored.c:420
-#, c-format
-msgid "No Changer Command given for device %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:310
+msgid "M"
msgstr ""
-#: src/stored/stored.c:432
-#, c-format
-msgid ""
-"Media Type not the same for all devices in changer %s. Cannot continue.\n"
+#: src/wx-console/wxbrestorepanel.cpp:326
+msgid "Perm."
msgstr ""
-#: src/stored/stored.c:493
-#, c-format
-msgid "Could not initialize %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:359
+#: src/wx-console/wxbrestorepanel.cpp:372
+#: src/wx-console/wxbrestorepanel.cpp:524
+#: src/wx-console/wxbrestorepanel.cpp:534
+#: src/wx-console/wxbrestorepanel.cpp:537
+#: src/wx-console/wxbrestorepanel.cpp:1732
+#: src/wx-console/wxbrestorepanel.cpp:1812
+msgid "Job Name"
msgstr ""
-#: src/stored/stored.c:506
-#, c-format
-msgid "Could not open device %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:361
+#: src/wx-console/wxbrestorepanel.cpp:377
+#: src/wx-console/wxbrestorepanel.cpp:476
+#: src/wx-console/wxbrestorepanel.cpp:477
+#: src/wx-console/wxbrestorepanel.cpp:487
+#: src/wx-console/wxbrestorepanel.cpp:488
+#: src/wx-console/wxbrestorepanel.cpp:1101
+#: src/wx-console/wxbrestorepanel.cpp:1768
+#: src/wx-console/wxbrestorepanel.cpp:1827
+msgid "Fileset"
msgstr ""
-#: src/stored/stored.c:523
-#, c-format
-msgid "Could not mount device %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:364
+#: src/wx-console/wxbrestorepanel.cpp:1168
+#: src/wx-console/wxbrestorepanel.cpp:1183
+#: src/wx-console/wxbrestorepanel.cpp:1185
+#: src/wx-console/wxbrestorepanel.cpp:1193
+#: src/wx-console/wxbrestorepanel.cpp:1195
+#: src/wx-console/wxbrestorepanel.cpp:1212
+#: src/wx-console/wxbrestorepanel.cpp:1219
+#: src/wx-console/wxbrestorepanel.cpp:1759
+#: src/wx-console/wxbrestorepanel.cpp:1885
+msgid "Before"
msgstr ""
-#: src/stored/stored_conf.c:188
-#, c-format
-msgid "Warning: no \"%s\" resource (%d) defined.\n"
+#: src/wx-console/wxbrestorepanel.cpp:366
+msgid "Please configure parameters concerning files to restore :"
msgstr ""
-#: src/stored/stored_conf.c:307
-#, c-format
-msgid "Warning: unknown resource type %d\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+#: src/wx-console/wxbrestorepanel.cpp:1820
+msgid "always"
msgstr ""
-#: src/stored/stored_conf.c:496
-#, c-format
-msgid "\"%s\" item is required in \"%s\" resource, but not found.\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+msgid "if newer"
msgstr ""
-#: src/stored/stored_conf.c:502
-#, c-format
-msgid "Too many items in \"%s\" resource\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+msgid "if older"
msgstr ""
-#: src/stored/stored_conf.c:607
-#, c-format
-msgid ""
-"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n"
+#: src/wx-console/wxbrestorepanel.cpp:375
+#: src/wx-console/wxbrestorepanel.cpp:1823
+msgid "never"
msgstr ""
-#: src/stored/ansi_label.c:83
-#, c-format
-msgid "Read error on device %s in ANSI label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:383
+msgid "Please configure parameters concerning files restoration :"
msgstr ""
-#: src/stored/ansi_label.c:93
-msgid "Insane! End of tape while reading ANSI label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:448
+msgid "Getting parameters list."
msgstr ""
-#: src/stored/ansi_label.c:117
-msgid "No VOL1 label while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:456
+msgid "Error : no clients returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:148
-msgid "No HDR1 label while reading ANSI label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:480
+msgid "Error : no filesets returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:154
-#, c-format
-msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n"
+#: src/wx-console/wxbrestorepanel.cpp:504
+msgid "Error : no storage returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:165
-msgid "No HDR2 label while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:527
+#: src/wx-console/wxbrestorepanel.cpp:551
+msgid "Error : no jobs returned by the director."
msgstr ""
-#: src/stored/ansi_label.c:179
-msgid "Unknown or bad ANSI/IBM label record.\n"
+#: src/wx-console/wxbrestorepanel.cpp:537
+msgid "RestoreFiles"
msgstr ""
-#: src/stored/ansi_label.c:186
-msgid "Too many records in while reading ANSI/IBM label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:572
+msgid "Please configure your restore parameters."
msgstr ""
-#: src/stored/ansi_label.c:285
-#, c-format
-msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n"
+#: src/wx-console/wxbrestorepanel.cpp:583
+msgid "Building restore tree..."
msgstr ""
-#: src/stored/ansi_label.c:302
-#, c-format
-msgid "Could not write ANSI VOL1 label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:622
+msgid "Error while starting restore: "
msgstr ""
-#: src/stored/ansi_label.c:340 src/stored/ansi_label.c:369
-#, c-format
-msgid "Could not write ANSI HDR1 label. ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:712
+msgid ""
+"Right click on a file or on a directory, or double-click on its mark to add "
+"it to the restore list."
msgstr ""
-#: src/stored/ansi_label.c:345 src/stored/ansi_label.c:376
-msgid "Could not write ANSI HDR1 label.\n"
+#: src/wx-console/wxbrestorepanel.cpp:729
+msgid " files selected to be restored."
msgstr ""
-#: src/stored/ansi_label.c:381
+#: src/wx-console/wxbrestorepanel.cpp:734
+msgid " file selected to be restored."
+msgstr ""
+
+#: src/wx-console/wxbrestorepanel.cpp:741
#, c-format
-msgid "Error writing EOF to tape. ERR=%s"
+msgid "Please configure your restore (%s files selected to be restored)..."
msgstr ""
-#: src/stored/ansi_label.c:386
-msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n"
+#: src/wx-console/wxbrestorepanel.cpp:751
+msgid "Restore failed : no file selected.\n"
msgstr ""
-#: src/stored/dvd.c:342
-#, c-format
-msgid "Remaining free space %s on %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:752
+msgid "Restore failed : no file selected."
msgstr ""
-#: src/stored/dvd.c:411
-#, c-format
-msgid "Next Volume part already exists on DVD. Cannot continue: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:762
+msgid "Restoring, please wait..."
msgstr ""
-#: src/stored/dvd.c:429
-#, c-format
-msgid "open_next_part can't unlink existing part %s, ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:775
+msgid "Job started. JobId="
msgstr ""
-#: src/stored/dvd.c:633
-#, c-format
-msgid "Unable to write part %s: ERR=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:777
+msgid "Restore started, jobid="
msgstr ""
-#: src/stored/wait.c:178 src/stored/wait.c:236
-#, c-format
-msgid "Job %s waiting to reserve a device.\n"
+#: src/wx-console/wxbrestorepanel.cpp:781
+msgid "Job failed."
msgstr ""
-#: src/stored/pythonsd.c:59
-msgid "SDName"
+#: src/wx-console/wxbrestorepanel.cpp:782
+msgid "Restore failed, please look at messages.\n"
msgstr ""
-#: src/stored/reserve.c:344 src/stored/reserve.c:361
-#, c-format
-msgid "Failed command: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:783
+msgid "Restore failed, please look at messages in console."
msgstr ""
-#: src/stored/reserve.c:346
-#, c-format
-msgid ""
-"\n"
-" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD "
-"Device resources.\n"
+#: src/wx-console/wxbrestorepanel.cpp:789
+#: src/wx-console/wxbrestorepanel.cpp:790
+msgid "Failed to retrieve jobid.\n"
msgstr ""
-#: src/stored/reserve.c:528
-#, c-format
-msgid "3926 Could not get dcr for device: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:816
+msgid ""
+"Restore is scheduled in more than two minutes, wx-console will not wait for "
+"its completion.\n"
msgstr ""
-#: src/stored/reserve.c:568 src/stored/reserve.c:623
-#, c-format
-msgid "Device %s is BLOCKED due to user unmount.\n"
+#: src/wx-console/wxbrestorepanel.cpp:817
+msgid ""
+"Restore is scheduled in more than two minutes, wx-console will not wait for "
+"its completion."
msgstr ""
-#: src/stored/reserve.c:576
-#, c-format
-msgid "Device %s is busy.\n"
+#: src/wx-console/wxbrestorepanel.cpp:841
+msgid "Restore job created, but not yet running."
msgstr ""
-#: src/stored/reserve.c:631
+#: src/wx-console/wxbrestorepanel.cpp:846
#, c-format
-msgid "Device %s is busy writing on another Volume.\n"
+msgid "Restore job running, please wait (%d of %d files restored)..."
msgstr ""
-#: src/stored/reserve.c:705
-#, c-format
-msgid "Wanted Pool \"%s\", but device %s is using Pool \"%s\" .\n"
+#: src/wx-console/wxbrestorepanel.cpp:850
+msgid "Restore job terminated successfully."
msgstr ""
-#: src/stored/reserve.c:711
-msgid "Logic error!!!! Should not get here.\n"
+#: src/wx-console/wxbrestorepanel.cpp:851
+msgid "Restore job terminated successfully.\n"
msgstr ""
-#: src/tools/dbcheck.c:154
-msgid ""
-"Warning skipping the additional parameters for working directory/dbname/user/"
-"password/host.\n"
+#: src/wx-console/wxbrestorepanel.cpp:856
+msgid "Restore job terminated in error, see messages in console."
+msgstr ""
+
+#: src/wx-console/wxbrestorepanel.cpp:857
+msgid "Restore job terminated in error, see messages.\n"
msgstr ""
-#: src/tools/dbcheck.c:195
-msgid "Wrong number of arguments.\n"
+#: src/wx-console/wxbrestorepanel.cpp:862
+msgid "Restore job reported a non-fatal error."
msgstr ""
-#: src/tools/dbcheck.c:200
-msgid "Working directory not supplied.\n"
+#: src/wx-console/wxbrestorepanel.cpp:866
+msgid "Restore job reported a fatal error."
msgstr ""
-#: src/tools/dbcheck.c:272
-#, c-format
-msgid ""
-"\n"
-" 1) Toggle modify database flag\n"
-" 2) Toggle verbose flag\n"
-" 3) Repair bad Filename records\n"
-" 4) Repair bad Path records\n"
-" 5) Eliminate duplicate Filename records\n"
-" 6) Eliminate duplicate Path records\n"
-" 7) Eliminate orphaned Jobmedia records\n"
-" 8) Eliminate orphaned File records\n"
-" 9) Eliminate orphaned Path records\n"
-" 10) Eliminate orphaned Filename records\n"
-" 11) Eliminate orphaned FileSet records\n"
-" 12) Eliminate orphaned Client records\n"
-" 13) Eliminate orphaned Job records\n"
-" 14) Eliminate all Admin records\n"
-" 15) Eliminate all Restore records\n"
-" 16) All (3-15)\n"
-" 17) Quit\n"
+#: src/wx-console/wxbrestorepanel.cpp:871
+msgid "Restore job cancelled by user."
msgstr ""
-#: src/tools/dbcheck.c:291
-#, c-format
-msgid ""
-"\n"
-" 1) Toggle modify database flag\n"
-" 2) Toggle verbose flag\n"
-" 3) Check for bad Filename records\n"
-" 4) Check for bad Path records\n"
-" 5) Check for duplicate Filename records\n"
-" 6) Check for duplicate Path records\n"
-" 7) Check for orphaned Jobmedia records\n"
-" 8) Check for orphaned File records\n"
-" 9) Check for orphaned Path records\n"
-" 10) Check for orphaned Filename records\n"
-" 11) Check for orphaned FileSet records\n"
-" 12) Check for orphaned Client records\n"
-" 13) Check for orphaned Job records\n"
-" 14) Check for all Admin records\n"
-" 15) Check for all Restore records\n"
-" 16) All (3-15)\n"
-" 17) Quit\n"
+#: src/wx-console/wxbrestorepanel.cpp:872
+msgid "Restore job cancelled by user.\n"
msgstr ""
-#: src/tools/dbcheck.c:311
-msgid "Select function number: "
+#: src/wx-console/wxbrestorepanel.cpp:877
+msgid "Restore job is waiting on File daemon."
msgstr ""
-#: src/tools/dbcheck.c:317
-#, c-format
-msgid "Database will %sbe modified.\n"
+#: src/wx-console/wxbrestorepanel.cpp:881
+msgid "Restore job is waiting for new media."
msgstr ""
-#: src/tools/dbcheck.c:317
-msgid "NOT "
+#: src/wx-console/wxbrestorepanel.cpp:885
+msgid "Restore job is waiting for storage resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-#, c-format
-msgid "Verbose is %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:889
+msgid "Restore job is waiting for job resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-msgid "On"
+#: src/wx-console/wxbrestorepanel.cpp:893
+msgid "Restore job is waiting for Client resource."
msgstr ""
-#: src/tools/dbcheck.c:321
-msgid "Off"
+#: src/wx-console/wxbrestorepanel.cpp:897
+msgid "Restore job is waiting for maximum jobs."
msgstr ""
-#: src/tools/dbcheck.c:404
-#, c-format
-msgid "JobId=%s Name=\"%s\" StartTime=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:901
+msgid "Restore job is waiting for start time."
msgstr ""
-#: src/tools/dbcheck.c:412
-#, c-format
-msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:905
+msgid "Restore job is waiting for higher priority jobs to finish."
msgstr ""
-#: src/tools/dbcheck.c:419
-#, c-format
-msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:954
+msgid ""
+"The restore job has not been started within one minute, wx-console will not "
+"wait for its completion anymore.\n"
msgstr ""
-#: src/tools/dbcheck.c:426
-#, c-format
-msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:955
+msgid ""
+"The restore job has not been started within one minute, wx-console will not "
+"wait for its completion anymore."
msgstr ""
-#: src/tools/dbcheck.c:433
-#, c-format
-msgid "Orphaned ClientId=%s Name=\"%s\"\n"
+#: src/wx-console/wxbrestorepanel.cpp:965
+msgid "Restore done successfully.\n"
msgstr ""
-#: src/tools/dbcheck.c:613
-#, c-format
-msgid "Checking for duplicate Path entries.\n"
+#: src/wx-console/wxbrestorepanel.cpp:966
+msgid "Restore done successfully."
msgstr ""
-#: src/tools/testfind.c:49
-#, c-format
-msgid ""
-"\n"
-"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n"
-" -a print extended attributes (Win32 debug)\n"
-" -dnn set debug level to nn\n"
-" -e specify file of exclude patterns\n"
-" -i specify file of include patterns\n"
-" - read pattern(s) from stdin\n"
-" -? print this message.\n"
-"\n"
-"Patterns are used for file inclusion -- normally directories.\n"
-"Debug level >= 1 prints each file found.\n"
-"Debug level >= 10 prints path/file for catalog.\n"
-"Errors are always printed.\n"
-"Files/paths truncated is the number of files/paths with len > 255.\n"
-"Truncation is only in the catalog.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1037
+msgid "Applying restore configuration changes..."
msgstr ""
-#: src/tools/testfind.c:156
-#, c-format
-msgid ""
-"Total files : %d\n"
-"Max file length: %d\n"
-"Max path length: %d\n"
-"Files truncated: %d\n"
-"Paths truncated: %d\n"
-"Hard links : %d\n"
+#: src/wx-console/wxbrestorepanel.cpp:1088
+msgid "Failed to find the selected client."
msgstr ""
-#: src/tools/testfind.c:236 src/tools/testls.c:174
-#, c-format
-msgid "Err: Could not access %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1103
+msgid "Failed to find the selected fileset."
msgstr ""
-#: src/tools/testfind.c:239 src/tools/testls.c:177
-#, c-format
-msgid "Err: Could not follow ff->link %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1118
+msgid "Failed to find the selected storage."
msgstr ""
-#: src/tools/testfind.c:242 src/tools/testls.c:180
-#, c-format
-msgid "Err: Could not stat %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1135
+#: src/wx-console/wxbrestorepanel.cpp:1801
+msgid "Run Restore job"
msgstr ""
-#: src/tools/testfind.c:245 src/tools/testls.c:183
-#, c-format
-msgid "Skip: File not saved. No change. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1151
+msgid "Restore configuration changes were applied."
msgstr ""
-#: src/tools/testfind.c:248 src/tools/testls.c:186
-#, c-format
-msgid "Err: Attempt to backup archive. Not saved. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1160
+msgid "Restore cancelled.\n"
msgstr ""
-#: src/tools/testfind.c:251 src/tools/testls.c:195
-#, c-format
-msgid "Err: Could not open directory %s: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1161
+msgid "Restore cancelled."
msgstr ""
-#: src/tools/testfind.c:254 src/tools/testls.c:198
-#, c-format
-msgid "Err: Unknown file ff->type %d: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1182
+msgid "No results to list."
msgstr ""
-#: src/tools/testfind.c:304
-#, c-format
-msgid "===== Filename truncated to 255 chars: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1184
+msgid "No backup found for this client."
msgstr ""
-#: src/tools/testfind.c:321
-#, c-format
-msgid "========== Path name truncated to 255 chars: %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1191
+msgid "ERROR"
msgstr ""
-#: src/tools/testfind.c:330
-#, c-format
-msgid "========== Path length is zero. File=%s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1192
+msgid "Query failed"
msgstr ""
-#: src/tools/testls.c:45
-#, c-format
-msgid ""
-"\n"
-"Usage: testls [-d debug_level] [-] [pattern1 ...]\n"
-" -a print extended attributes (Win32 debug)\n"
-" -dnn set debug level to nn\n"
-" -e specify file of exclude patterns\n"
-" -i specify file of include patterns\n"
-" - read pattern(s) from stdin\n"
-" -? print this message.\n"
-"\n"
-"Patterns are file inclusion -- normally directories.\n"
-"Debug level >= 1 prints each file found.\n"
-"Debug level >= 10 prints path/file for catalog.\n"
-"Errors always printed.\n"
-"Files/paths truncated is number with len > 255.\n"
-"Truncation is only in catalog.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1194
+msgid "Cannot get previous backups list, see console."
msgstr ""
-#: src/tools/testls.c:189
-#, c-format
-msgid "Recursion turned off. Directory not entered. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1811
+msgid "JobName:"
msgstr ""
-#: src/tools/testls.c:192
-#, c-format
-msgid "Skip: File system change prohibited. Directory not entered. %s\n"
+#: src/wx-console/wxbrestorepanel.cpp:1815
+msgid "Where:"
msgstr ""
-#: src/tools/fstype.c:34
-#, c-format
-msgid ""
-"\n"
-"Usage: fstype [-d debug_level] path ...\n"
-"\n"
-" Print the file system type a given file/directory is on.\n"
-" The following options are supported:\n"
-"\n"
-" -v print both path and file system type.\n"
-" -? print this message.\n"
-"\n"
+#: src/wx-console/wxbrestorepanel.cpp:1818
+msgid "Replace:"
msgstr ""
-#: src/tray-monitor/authenticate.c:78
-msgid ""
-"Director authorization problem.\n"
-"Most likely the passwords do not agree.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1821
+msgid "ifnewer"
msgstr ""
-#: src/tray-monitor/authenticate.c:127
-msgid ""
-"Director and Storage daemon passwords or names not the same.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1822
+msgid "ifolder"
msgstr ""
-#: src/tray-monitor/authenticate.c:172
-msgid ""
-"Director and File daemon passwords or names not the same.\n"
-"Please see http://www.bacula.org/html-manual/faq.html#AuthorizationErrors "
-"for help.\n"
+#: src/wx-console/wxbrestorepanel.cpp:1826
+msgid "FileSet:"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:102
-#, c-format
-msgid ""
-"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat (2004)\n"
-"\n"
-"Version: "
+#: src/wx-console/wxbrestorepanel.cpp:1942
+msgid "Restoring..."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:104
-#, c-format
-msgid ""
-") %s %s %s\n"
-"\n"
-"Usage: tray-monitor [-c config_file] [-d debug_level]\n"
-" -c <file> set configuration file to file\n"
-" -dnn set debug level to nn\n"
-" -t test - read configuration and exit\n"
-" -? print this message.\n"
-"\n"
+#: src/wx-console/wxbmainframe.cpp:227
+msgid "&About...\tF1"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:248
-#, c-format
-msgid ""
-"Error: %d Monitor resource defined in %s. You must define one and only one "
-"Monitor resource.\n"
+#: src/wx-console/wxbmainframe.cpp:227
+msgid "Show about dialog"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:279
-#, c-format
-msgid ""
-"No Client, Storage nor Director resource defined in %s\n"
-"Without that I don't how to get status from the File, Storage or Director "
-"Daemon :-(\n"
+#: src/wx-console/wxbmainframe.cpp:229 src/wx-console/wxbmainframe.cpp:590
+msgid "Connect to the director"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:301
-#, c-format
-msgid ""
-"Invalid refresh interval defined in %s\n"
-"This value must be greater or equal to 1 second and less or equal to 10 "
-"minutes (read value: %d).\n"
+#: src/wx-console/wxbmainframe.cpp:230
+msgid "Disconnect"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:359
-msgid " (DIR)"
+#: src/wx-console/wxbmainframe.cpp:230
+msgid "Disconnect of the director"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:363
-msgid " (FD)"
+#: src/wx-console/wxbmainframe.cpp:232
+msgid "Change of configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:367
-msgid " (SD)"
+#: src/wx-console/wxbmainframe.cpp:232
+msgid "Change your default configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:380
-msgid "Unknown status."
+#: src/wx-console/wxbmainframe.cpp:233
+msgid "Edit your configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:421
-msgid "Refresh interval in seconds: "
+#: src/wx-console/wxbmainframe.cpp:235
+msgid "E&xit\tAlt-X"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:429
-msgid "Refresh now"
+#: src/wx-console/wxbmainframe.cpp:235
+msgid "Quit this program"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:433
-msgid "About"
+#: src/wx-console/wxbmainframe.cpp:239
+msgid "&File"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:437
-msgid "Close"
+#: src/wx-console/wxbmainframe.cpp:240
+msgid "&Help"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:496
-msgid ""
-"<span size='x-large' weight='bold'>Bacula Tray Monitor</span>\n"
-"\n"
-"Copyright (C) 2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat\n"
-"\n"
-"<small>Version: "
+#: src/wx-console/wxbmainframe.cpp:257
+msgid "Console"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:499
-#, c-format
-msgid ") %s %s %s</small>"
+#: src/wx-console/wxbmainframe.cpp:264
+msgid ""
+"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:503
+#: src/wx-console/wxbmainframe.cpp:268
msgid ""
-"Bacula Tray Monitor\n"
-"\n"
-"Copyright (C) 2004 Kern Sibbald and John Walker\n"
-"Written by Nicolas Boichat\n"
-"\n"
-"Version: "
+"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode "
+"support when handling non-ASCII filenames: Every non-ASCII character in such "
+"filenames will be replaced by an interrogation mark.\n"
+"If this behaviour disturbs you, please build wx-console against a Unicode "
+"version of wxWidgets for GTK+ 2.0.\n"
+"---\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:506
-#, c-format
-msgid ") %s %s %s"
+#: src/wx-console/wxbmainframe.cpp:279
+msgid "Send"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:690
-msgid "No current job."
+#: src/wx-console/wxbmainframe.cpp:356 src/wx-console/wxbmainframe.cpp:368
+msgid "Error while parsing command line arguments, using defaults.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:693
-msgid "No last job."
+#: src/wx-console/wxbmainframe.cpp:357 src/wx-console/wxbmainframe.cpp:369
+msgid "Usage: wx-console [-c configfile] [-w tmp]\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:701
+#: src/wx-console/wxbmainframe.cpp:397
#, c-format
-msgid "Job status: Created (%d error%s)"
+msgid ""
+"It seems that it is the first time you run wx-console.\n"
+"This file (%s) has been choosen as default configuration file.\n"
+"Do you want to edit it? (if you click No you will have to select another "
+"file)"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:705
-#, c-format
-msgid "Job status: Running (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:401
+msgid "First run"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:708
+#: src/wx-console/wxbmainframe.cpp:418
#, c-format
-msgid "Job status: Blocked (%d error%s)"
+msgid ""
+"Unable to read %s\n"
+"Error: %s\n"
+"Do you want to choose another one? (Press no to edit this file)"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:712
-#, c-format
-msgid "Job status: Terminated (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:421
+msgid "Unable to read configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:716
-#, c-format
-msgid "Job status: Terminated in error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:433
+msgid "Please choose a configuration file to use"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:721
-#, c-format
-msgid "Job status: Error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:446
+msgid "This configuration file has been successfully read, use it as default?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:724
-#, c-format
-msgid "Job status: Fatal error (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:447
+msgid "Configuration file read successfully"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:728
+#: src/wx-console/wxbmainframe.cpp:457
#, c-format
-msgid "Job status: Verify differences (%d error%s)"
+msgid "Using this configuration file: %s\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:732
-#, c-format
-msgid "Job status: Canceled (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:462
+msgid "Connecting to the director..."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:736
-#, c-format
-msgid "Job status: Waiting on File daemon (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:477
+msgid "Failed to unregister a data parser !"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:740
-#, c-format
-msgid "Job status: Waiting on the Storage daemon (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:485
+msgid "Quitting.\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:744
-#, c-format
-msgid "Job status: Waiting for new media (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:500
+msgid ""
+"Welcome to Bacula wx-console.\n"
+"Written by Nicolas Boichat <nicolas@boichat.ch>\n"
+"(C) 2004 Kern Sibbald and John Walker\n"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:748
-#, c-format
-msgid "Job status: Waiting for Mount (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:502
+msgid "About Bacula wx-console"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:752
-#, c-format
-msgid "Job status: Waiting for storage resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:508
+msgid "Please choose your default configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:756
-#, c-format
-msgid "Job status: Waiting for job resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:512
+msgid "Use this configuration file as default?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:760
-#, c-format
-msgid "Job status: Waiting for Client resource (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:513
+msgid "Configuration file"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:764
-#, c-format
-msgid "Job status: Waiting for maximum jobs (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:577
+msgid "Console thread terminated."
msgstr ""
-#: src/tray-monitor/tray-monitor.c:768
-#, c-format
-msgid "Job status: Waiting for start time (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:581
+msgid "Connection to the director lost. Quit program?"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:772
-#, c-format
-msgid "Job status: Waiting for higher priority jobs to finish (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:582
+msgid "Connection lost"
msgstr ""
-#: src/tray-monitor/tray-monitor.c:777
-#, c-format
-msgid "Job status: Unknown(%c) (%d error%s)"
+#: src/wx-console/wxbmainframe.cpp:598
+msgid "Connected to the director."
msgstr ""
-#: src/wx-console/console_thread.cpp:100
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Director \"%s\" in config file.\n"
-" At least one CA certificate store is required.\n"
+#: src/wx-console/wxbmainframe.cpp:612
+msgid "Reconnect"
msgstr ""
-#: src/wx-console/console_thread.cpp:109
-msgid ""
-"No Director resource defined in config file.\n"
-"Without that I don't how to speak to the Director :-(\n"
+#: src/wx-console/wxbmainframe.cpp:613
+msgid "Reconnect to the director"
msgstr ""
-#: src/wx-console/console_thread.cpp:129
-#, c-format
-msgid ""
-"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for "
-"Console \"%s\" in config file.\n"
+#: src/wx-console/wxbmainframe.cpp:623
+msgid "Disconnected of the director."
msgstr ""
-#: src/wx-console/console_thread.cpp:235
-msgid "Please correct configuration file.\n"
+#: src/wx-console/wxbmainframe.cpp:642
+msgid "Unexpected question has been received.\n"
+msgstr ""
+
+#: src/wx-console/wxbmainframe.cpp:665 src/wx-console/wxbmainframe.cpp:680
+msgid "wx-console: unexpected director's question."
msgstr ""
#ifdef DEBUG
#define ASSERT(x) if (!(x)) { \
char *jcr = NULL; \
- Emsg1(M_ERROR, 0, "Failed ASSERT: %s\n", #x); \
+ Emsg1(M_ERROR, 0, _("Failed ASSERT: %s\n"), #x); \
jcr[0] = 0; }
#else
#define ASSERT(x)
#endif
/* Allow printing of NULL pointers */
-#define NPRT(x) (x)?(x):"*None*"
+#define NPRT(x) (x)?(x):_("*None*")
#ifdef ENABLE_NLS
#include <libintl.h>
+#include <locale.h>
+#ifndef _
#define _(s) gettext((s))
+#endif /* N */
+#ifndef N_
#define N_(s) (s)
+#endif /* N_ */
#else
#undef _
#define _(s) (s)
#define N_(s) (s)
#undef textdomain
#define textdomain(d)
-/* #define bindtextdomain(p, d) */
+#undef bindtextdomain
+#define bindtextdomain(p, d)
+#undef setlocale
+#define setlocale(p, d)
#endif
/* This should go away! ****FIXME***** */
#endif
+/* Disabled because it breaks internationalisation...
#undef HAVE_SETLOCALE
#ifdef HAVE_SETLOCALE
#include <locale.h>
#else
#define nl_langinfo(x) ("ANSI_X3.4-1968")
#endif
+*/
/* Fake entry points if regex does not exist */
#ifndef HAVE_REGEX_H
void sendit(const char *buf);
/* Commands sent to Director */
-static char hello[] = "Hello %s calling\n";
+static char hello[] = N_("Hello %s calling\n");
/* Response from Director */
-static char OKhello[] = "1000 OK:";
+static char OKhello[] = N_("1000 OK:");
/* Forward referenced functions */
bool test_config = false;
JCR jcr;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
init_stack_dump();
my_name_is(argc, argv, "bconsole");
- textdomain("bacula");
init_msg(NULL, NULL);
working_directory = "/tmp";
args = get_pool_memory(PM_FNAME);
bool recurse = true;
if (res == NULL) {
- printf("No record for %d %s\n", type, res_to_str(type));
+ printf(_("No record for %d %s\n"), type, res_to_str(type));
return;
}
if (type < 0) { /* no recursion */
}
switch (type) {
case R_CONSOLE:
- printf("Console: name=%s rcfile=%s histfile=%s\n", reshdr->name,
+ printf(_("Console: name=%s rcfile=%s histfile=%s\n"), reshdr->name,
res->res_cons.rc_file, res->res_cons.hist_file);
break;
case R_DIRECTOR:
- printf("Director: name=%s address=%s DIRport=%d\n", reshdr->name,
+ printf(_("Director: name=%s address=%s DIRport=%d\n"), reshdr->name,
res->res_dir.address, res->res_dir.DIRport);
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
}
if (recurse && res->res_dir.hdr.next) {
dump_resource(type, res->res_dir.hdr.next, sendit, sock);
}
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
}
/* Common stuff again -- free the resource, recurse to next one */
free(res);
for (i=0; items[i].name; i++) {
if (items[i].flags & ITEM_REQUIRED) {
if (!bit_is_set(i, res_all.res_dir.hdr.item_present)) {
- Emsg2(M_ABORT, 0, "%s item is required in %s resource, but not found.\n",
+ Emsg2(M_ABORT, 0, _("%s item is required in %s resource, but not found.\n"),
items[i].name, resources[rindex]);
}
}
break;
default:
- Emsg1(M_ERROR, 0, "Unknown resource type %d\n", type);
+ Emsg1(M_ERROR, 0, _("Unknown resource type %d\n"), type);
error = 1;
break;
}
size = sizeof(DIRRES);
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
error = 1;
size = 1;
break;
/* Engage TLS! Full Speed Ahead! */
if (!bnet_tls_server(tls_ctx, ua, verify_list)) {
- Emsg0(M_ERROR, 0, "TLS negotiation failed.\n");
+ Emsg0(M_ERROR, 0, _("TLS negotiation failed.\n"));
auth_success = false;
goto auth_done;
}
sleep(5);
return 0;
}
- bnet_fsend(ua, "1000 OK: %s Version: " VERSION " (" BDATE ")\n", my_name);
+ bnet_fsend(ua, _("1000 OK: %s Version: %s (%s)\n"), my_name, VERSION, BDATE);
return 1;
}
// bmicrosleep(15, 0); /* for debugging SIGHUP */
- Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n"
+ Jmsg(jcr, msg_type, 0, _("Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Backup Level: %s%s\n"
" FD termination status: %s\n"
" SD termination status: %s\n"
" Termination: %s\n\n"),
+ VERSION,
+ LSMDATE,
edt,
jcr->jr.JobId,
jcr->jr.Job,
if (!jcr->db) {
omsg = get_memory(bs->msglen+1);
pm_strcpy(omsg, bs->msg);
- bnet_fsend(bs, "1990 Invalid Catalog Request: %s", omsg);
+ bnet_fsend(bs, _("1990 Invalid Catalog Request: %s"), omsg);
Jmsg1(jcr, M_FATAL, 0, _("Invalid Catalog request; DB not open: %s"), omsg);
free_memory(omsg);
return;
if (ok) {
send_volume_info_to_storage_daemon(jcr, bs, &mr);
} else {
- bnet_fsend(bs, "1901 No Media.\n");
+ bnet_fsend(bs, _("1901 No Media.\n"));
Dmsg0(500, "1901 No Media.\n");
}
* and Media Type matches and Pool allows any volume.
*/
if (mr.PoolId != jcr->PoolId) {
- reason = "not in Pool";
+ reason = _("not in Pool");
} else if (strcmp(mr.MediaType, jcr->store->media_type) != 0) {
- reason = "not correct MediaType";
+ reason = _("not correct MediaType");
} else {
/*
* ****FIXME***
send_volume_info_to_storage_daemon(jcr, bs, &mr);
} else {
/* Not suitable volume */
- bnet_fsend(bs, "1998 Volume \"%s\" status is %s, %s.\n", mr.VolumeName,
+ bnet_fsend(bs, _("1998 Volume \"%s\" status is %s, %s.\n"), mr.VolumeName,
mr.VolStatus, reason);
}
} else {
- bnet_fsend(bs, "1997 Volume \"%s\" not in catalog.\n", mr.VolumeName);
+ bnet_fsend(bs, _("1997 Volume \"%s\" not in catalog.\n"), mr.VolumeName);
Dmsg1(100, "1997 Volume \"%s\" not in catalog.\n", mr.VolumeName);
}
if (!db_get_media_record(jcr, jcr->db, &mr)) {
Jmsg(jcr, M_ERROR, 0, _("Unable to get Media record for Volume %s: ERR=%s\n"),
mr.VolumeName, db_strerror(jcr->db));
- bnet_fsend(bs, "1991 Catalog Request for vol=%s failed: %s",
+ bnet_fsend(bs, _("1991 Catalog Request for vol=%s failed: %s"),
mr.VolumeName, db_strerror(jcr->db));
db_unlock(jcr->db);
return;
Jmsg(jcr, M_FATAL, 0, _("Volume Files at %u being set to %u"
" for Volume \"%s\". This is incorrect.\n"),
mr.VolFiles, sdmr.VolFiles, mr.VolumeName);
- bnet_fsend(bs, "1992 Update Media error\n");
+ bnet_fsend(bs, _("1992 Update Media error\n"));
db_unlock(jcr->db);
return;
}
} else {
Jmsg(jcr, M_FATAL, 0, _("Catalog error updating Media record. %s"),
db_strerror(jcr->db));
- bnet_fsend(bs, "1992 Update Media error\n");
+ bnet_fsend(bs, _("1992 Update Media error\n"));
Dmsg0(400, "send error\n");
}
db_unlock(jcr->db);
if (!db_create_jobmedia_record(jcr, jcr->db, &jm)) {
Jmsg(jcr, M_FATAL, 0, _("Catalog error creating JobMedia record. %s"),
db_strerror(jcr->db));
- bnet_fsend(bs, "1991 Update JobMedia error\n");
+ bnet_fsend(bs, _("1991 Update JobMedia error\n"));
} else {
Dmsg0(400, "JobMedia record created\n");
bnet_fsend(bs, OK_create);
} else {
omsg = get_memory(bs->msglen+1);
pm_strcpy(omsg, bs->msg);
- bnet_fsend(bs, "1990 Invalid Catalog Request: %s", omsg);
+ bnet_fsend(bs, _("1990 Invalid Catalog Request: %s"), omsg);
Jmsg1(jcr, M_FATAL, 0, _("Invalid Catalog request: %s"), omsg);
free_memory(omsg);
}
} else if (Stream == STREAM_MD5_SIGNATURE || Stream == STREAM_SHA1_SIGNATURE) {
fname = p;
if (ar->FileIndex != FileIndex) {
- Jmsg(jcr, M_WARNING, 0, "Got MD5/SHA1 but not same File as attributes\n");
+ Jmsg(jcr, M_WARNING, 0, _("Got MD5/SHA1 but not same File as attributes\n"));
} else {
/* Update signature in catalog */
char SIGbuf[50]; /* 24 bytes should be enough */
{
fprintf(stderr, _(
"Copyright (C) 2000-2005 Kern Sibbald.\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n"
" -c <file> set configuration file to file\n"
" -dnn set debug level to nn\n"
" -u userid\n"
" -v verbose user messages\n"
" -? print this message.\n"
-"\n"));
+"\n"), VERSION, BDATE);
exit(1);
}
char *uid = NULL;
char *gid = NULL;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
init_stack_dump();
my_name_is(argc, argv, "bacula-dir");
- textdomain("bacula");
init_msg(NULL, NULL); /* initialize message handler */
init_reload();
daemon_start_time = time(NULL);
job->hdr.name, job_items[i].name, *def_svalue, i, offset);
svalue = (char **)((char *)job + offset);
if (*svalue) {
- Pmsg1(000, "Hey something is wrong. p=0x%lu\n", *svalue);
+ Pmsg1(000, _("Hey something is wrong. p=0x%lu\n"), *svalue);
}
*svalue = bstrdup(*def_svalue);
set_bit(i, job->hdr.item_present);
job->hdr.name, job_items[i].name, i, offset);
svalue = (char **)((char *)job + offset);
if (*svalue) {
- Pmsg1(000, "Hey something is wrong. p=0x%lu\n", *svalue);
+ Pmsg1(000, _("Hey something is wrong. p=0x%lu\n"), *svalue);
}
*svalue = *def_svalue;
set_bit(i, job->hdr.item_present);
for (i=0; job_items[i].name; i++) {
if (job_items[i].flags & ITEM_REQUIRED) {
if (!bit_is_set(i, job->hdr.item_present)) {
- Jmsg(NULL, M_FATAL, 0, "\"%s\" directive in Job \"%s\" resource is required, but not found.\n",
+ Jmsg(NULL, M_FATAL, 0, _("\"%s\" directive in Job \"%s\" resource is required, but not found.\n"),
job_items[i].name, job->hdr.name);
OK = false;
}
}
/* If this triggers, take a look at lib/parse_conf.h */
if (i >= MAX_RES_ITEMS) {
- Emsg0(M_ERROR_TERM, 0, "Too many items in Job resource\n");
+ Emsg0(M_ERROR_TERM, 0, _("Too many items in Job resource\n"));
}
}
} /* End loop over Job res */
DEVICE *dev;
if (res == NULL) {
- sendit(sock, "No %s resource defined\n", res_to_str(type));
+ sendit(sock, _("No %s resource defined\n"), res_to_str(type));
return;
}
if (type < 0) { /* no recursion */
}
switch (type) {
case R_DIRECTOR:
- sendit(sock, "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n",
+ sendit(sock, _("Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n"),
reshdr->name, res->res_dir.MaxConcurrentJobs,
edit_uint64(res->res_dir.FDConnectTimeout, ed1),
edit_uint64(res->res_dir.SDConnectTimeout, ed2));
if (res->res_dir.query_file) {
- sendit(sock, " query_file=%s\n", res->res_dir.query_file);
+ sendit(sock, _(" query_file=%s\n"), res->res_dir.query_file);
}
if (res->res_dir.messages) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_MSGS, (RES *)res->res_dir.messages, sendit, sock);
}
break;
case R_CONSOLE:
#ifdef HAVE_TLS
- sendit(sock, "Console: name=%s SSL=%d\n",
+ sendit(sock, _("Console: name=%s SSL=%d\n"),
res->res_con.hdr.name, res->res_con.tls_enable);
#else
- sendit(sock, "Console: name=%s SSL=%d\n",
+ sendit(sock, _("Console: name=%s SSL=%d\n"),
res->res_con.hdr.name, BNET_TLS_NONE);
#endif
break;
case R_COUNTER:
if (res->res_counter.WrapCounter) {
- sendit(sock, "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n",
+ sendit(sock, _("Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n"),
res->res_counter.hdr.name, res->res_counter.MinValue,
res->res_counter.MaxValue, res->res_counter.CurrentValue,
res->res_counter.WrapCounter->hdr.name);
} else {
- sendit(sock, "Counter: name=%s min=%d max=%d\n",
+ sendit(sock, _("Counter: name=%s min=%d max=%d\n"),
res->res_counter.hdr.name, res->res_counter.MinValue,
res->res_counter.MaxValue);
}
if (res->res_counter.Catalog) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_CATALOG, (RES *)res->res_counter.Catalog, sendit, sock);
}
break;
case R_CLIENT:
- sendit(sock, "Client: name=%s address=%s FDport=%d MaxJobs=%u\n",
+ sendit(sock, _("Client: name=%s address=%s FDport=%d MaxJobs=%u\n"),
res->res_client.hdr.name, res->res_client.address, res->res_client.FDport,
res->res_client.MaxConcurrentJobs);
- sendit(sock, " JobRetention=%s FileRetention=%s AutoPrune=%d\n",
+ sendit(sock, _(" JobRetention=%s FileRetention=%s AutoPrune=%d\n"),
edit_utime(res->res_client.JobRetention, ed1, sizeof(ed1)),
edit_utime(res->res_client.FileRetention, ed2, sizeof(ed2)),
res->res_client.AutoPrune);
if (res->res_client.catalog) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_CATALOG, (RES *)res->res_client.catalog, sendit, sock);
}
break;
case R_DEVICE:
dev = &res->res_dev;
char ed1[50];
- sendit(sock, "Device: name=%s ok=%d num_writers=%d max_writers=%d\n"
+ sendit(sock, _("Device: name=%s ok=%d num_writers=%d max_writers=%d\n"
" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%d\n"
-" poolid=%s volname=%s MediaType=%s\n",
+" poolid=%s volname=%s MediaType=%s\n"),
dev->hdr.name, dev->found, dev->num_writers, dev->max_writers,
dev->reserved, dev->open, dev->append, dev->read, dev->labeled,
dev->offline, dev->autochanger,
dev->VolumeName, dev->MediaType);
break;
case R_STORAGE:
- sendit(sock, "Storage: name=%s address=%s SDport=%d MaxJobs=%u\n"
-" DeviceName=%s MediaType=%s StorageId=%s\n",
+ sendit(sock, _("Storage: name=%s address=%s SDport=%d MaxJobs=%u\n"
+" DeviceName=%s MediaType=%s StorageId=%s\n"),
res->res_store.hdr.name, res->res_store.address, res->res_store.SDport,
res->res_store.MaxConcurrentJobs,
res->res_store.dev_name(),
edit_int64(res->res_store.StorageId, ed1));
break;
case R_CATALOG:
- sendit(sock, "Catalog: name=%s address=%s DBport=%d db_name=%s\n"
-" db_user=%s MutliDBConn=%d\n",
+ sendit(sock, _("Catalog: name=%s address=%s DBport=%d db_name=%s\n"
+" db_user=%s MutliDBConn=%d\n"),
res->res_cat.hdr.name, NPRT(res->res_cat.db_address),
res->res_cat.db_port, res->res_cat.db_name, NPRT(res->res_cat.db_user),
res->res_cat.mult_db_connections);
break;
case R_JOB:
case R_JOBDEFS:
- sendit(sock, "%s: name=%s JobType=%d level=%s Priority=%d MaxJobs=%u\n",
- type == R_JOB ? "Job" : "JobDefs",
+ sendit(sock, _("%s: name=%s JobType=%d level=%s Priority=%d MaxJobs=%u\n"),
+ type == R_JOB ? _("Job") : _("JobDefs"),
res->res_job.hdr.name, res->res_job.JobType,
level_to_str(res->res_job.JobLevel), res->res_job.Priority,
res->res_job.MaxConcurrentJobs);
- sendit(sock, " Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%d\n",
+ sendit(sock, _(" Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%d\n"),
res->res_job.RescheduleOnError, res->res_job.RescheduleTimes,
edit_uint64_with_commas(res->res_job.RescheduleInterval, ed1),
res->res_job.spool_data, res->res_job.write_part_after_job);
if (res->res_job.client) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_CLIENT, (RES *)res->res_job.client, sendit, sock);
}
if (res->res_job.fileset) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_FILESET, (RES *)res->res_job.fileset, sendit, sock);
}
if (res->res_job.schedule) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_SCHEDULE, (RES *)res->res_job.schedule, sendit, sock);
}
if (res->res_job.RestoreWhere) {
- sendit(sock, " --> Where=%s\n", NPRT(res->res_job.RestoreWhere));
+ sendit(sock, _(" --> Where=%s\n"), NPRT(res->res_job.RestoreWhere));
}
if (res->res_job.RestoreBootstrap) {
- sendit(sock, " --> Bootstrap=%s\n", NPRT(res->res_job.RestoreBootstrap));
+ sendit(sock, _(" --> Bootstrap=%s\n"), NPRT(res->res_job.RestoreBootstrap));
}
if (res->res_job.RunBeforeJob) {
- sendit(sock, " --> RunBefore=%s\n", NPRT(res->res_job.RunBeforeJob));
+ sendit(sock, _(" --> RunBefore=%s\n"), NPRT(res->res_job.RunBeforeJob));
}
if (res->res_job.RunAfterJob) {
- sendit(sock, " --> RunAfter=%s\n", NPRT(res->res_job.RunAfterJob));
+ sendit(sock, _(" --> RunAfter=%s\n"), NPRT(res->res_job.RunAfterJob));
}
if (res->res_job.RunAfterFailedJob) {
- sendit(sock, " --> RunAfterFailed=%s\n", NPRT(res->res_job.RunAfterFailedJob));
+ sendit(sock, _(" --> RunAfterFailed=%s\n"), NPRT(res->res_job.RunAfterFailedJob));
}
if (res->res_job.WriteBootstrap) {
- sendit(sock, " --> WriteBootstrap=%s\n", NPRT(res->res_job.WriteBootstrap));
+ sendit(sock, _(" --> WriteBootstrap=%s\n"), NPRT(res->res_job.WriteBootstrap));
}
if (res->res_job.storage) {
STORE *store;
foreach_alist(store, res->res_job.storage) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_STORAGE, (RES *)store, sendit, sock);
}
}
if (res->res_job.pool) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_POOL, (RES *)res->res_job.pool, sendit, sock);
}
if (res->res_job.full_pool) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_POOL, (RES *)res->res_job.full_pool, sendit, sock);
}
if (res->res_job.inc_pool) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_POOL, (RES *)res->res_job.inc_pool, sendit, sock);
}
if (res->res_job.dif_pool) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_POOL, (RES *)res->res_job.dif_pool, sendit, sock);
}
if (res->res_job.verify_job) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-type, (RES *)res->res_job.verify_job, sendit, sock);
}
if (res->res_job.run_cmds) {
char *runcmd;
foreach_alist(runcmd, res->res_job.run_cmds) {
- sendit(sock, " --> Run=%s\n", runcmd);
+ sendit(sock, _(" --> Run=%s\n"), runcmd);
}
}
if (res->res_job.messages) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_MSGS, (RES *)res->res_job.messages, sendit, sock);
}
break;
case R_FILESET:
{
int i, j, k;
- sendit(sock, "FileSet: name=%s\n", res->res_fs.hdr.name);
+ sendit(sock, _("FileSet: name=%s\n"), res->res_fs.hdr.name);
for (i=0; i<res->res_fs.num_includes; i++) {
INCEXE *incexe = res->res_fs.include_items[i];
for (j=0; j<incexe->num_opts; j++) {
int i;
RUN *run = res->res_sch.run;
char buf[1000], num[30];
- sendit(sock, "Schedule: name=%s\n", res->res_sch.hdr.name);
+ sendit(sock, _("Schedule: name=%s\n"), res->res_sch.hdr.name);
if (!run) {
break;
}
next_run:
- sendit(sock, " --> Run Level=%s\n", level_to_str(run->level));
- bstrncpy(buf, " hour=", sizeof(buf));
+ sendit(sock, _(" --> Run Level=%s\n"), level_to_str(run->level));
+ bstrncpy(buf, _(" hour="), sizeof(buf));
for (i=0; i<24; i++) {
if (bit_is_set(i, run->hour)) {
bsnprintf(num, sizeof(num), "%d ", i);
}
bstrncat(buf, "\n", sizeof(buf));
sendit(sock, buf);
- bstrncpy(buf, " mday=", sizeof(buf));
+ bstrncpy(buf, _(" mday="), sizeof(buf));
for (i=0; i<31; i++) {
if (bit_is_set(i, run->mday)) {
bsnprintf(num, sizeof(num), "%d ", i);
}
bstrncat(buf, "\n", sizeof(buf));
sendit(sock, buf);
- bstrncpy(buf, " month=", sizeof(buf));
+ bstrncpy(buf, _(" month="), sizeof(buf));
for (i=0; i<12; i++) {
if (bit_is_set(i, run->month)) {
bsnprintf(num, sizeof(num), "%d ", i);
}
bstrncat(buf, "\n", sizeof(buf));
sendit(sock, buf);
- bstrncpy(buf, " wday=", sizeof(buf));
+ bstrncpy(buf, _(" wday="), sizeof(buf));
for (i=0; i<7; i++) {
if (bit_is_set(i, run->wday)) {
bsnprintf(num, sizeof(num), "%d ", i);
}
bstrncat(buf, "\n", sizeof(buf));
sendit(sock, buf);
- bstrncpy(buf, " wom=", sizeof(buf));
+ bstrncpy(buf, _(" wom="), sizeof(buf));
for (i=0; i<5; i++) {
if (bit_is_set(i, run->wom)) {
bsnprintf(num, sizeof(num), "%d ", i);
}
bstrncat(buf, "\n", sizeof(buf));
sendit(sock, buf);
- bstrncpy(buf, " woy=", sizeof(buf));
+ bstrncpy(buf, _(" woy="), sizeof(buf));
for (i=0; i<54; i++) {
if (bit_is_set(i, run->woy)) {
bsnprintf(num, sizeof(num), "%d ", i);
}
bstrncat(buf, "\n", sizeof(buf));
sendit(sock, buf);
- sendit(sock, " mins=%d\n", run->minute);
+ sendit(sock, _(" mins=%d\n"), run->minute);
if (run->pool) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_POOL, (RES *)run->pool, sendit, sock);
}
if (run->storage) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_STORAGE, (RES *)run->storage, sendit, sock);
}
if (run->msgs) {
- sendit(sock, " --> ");
+ sendit(sock, _(" --> "));
dump_resource(-R_MSGS, (RES *)run->msgs, sendit, sock);
}
/* If another Run record is chained in, go print it */
goto next_run;
}
} else {
- sendit(sock, "Schedule: name=%s\n", res->res_sch.hdr.name);
+ sendit(sock, _("Schedule: name=%s\n"), res->res_sch.hdr.name);
}
break;
case R_POOL:
- sendit(sock, "Pool: name=%s PoolType=%s\n", res->res_pool.hdr.name,
+ sendit(sock, _("Pool: name=%s PoolType=%s\n"), res->res_pool.hdr.name,
res->res_pool.pool_type);
- sendit(sock, " use_cat=%d use_once=%d acpt_any=%d cat_files=%d\n",
+ sendit(sock, _(" use_cat=%d use_once=%d acpt_any=%d cat_files=%d\n"),
res->res_pool.use_catalog, res->res_pool.use_volume_once,
res->res_pool.accept_any_volume, res->res_pool.catalog_files);
- sendit(sock, " max_vols=%d auto_prune=%d VolRetention=%s\n",
+ sendit(sock, _(" max_vols=%d auto_prune=%d VolRetention=%s\n"),
res->res_pool.max_volumes, res->res_pool.AutoPrune,
edit_utime(res->res_pool.VolRetention, ed1, sizeof(ed1)));
- sendit(sock, " VolUse=%s recycle=%d LabelFormat=%s\n",
+ sendit(sock, _(" VolUse=%s recycle=%d LabelFormat=%s\n"),
edit_utime(res->res_pool.VolUseDuration, ed1, sizeof(ed1)),
res->res_pool.Recycle,
NPRT(res->res_pool.label_format));
- sendit(sock, " CleaningPrefix=%s LabelType=%d\n",
+ sendit(sock, _(" CleaningPrefix=%s LabelType=%d\n"),
NPRT(res->res_pool.cleaning_prefix), res->res_pool.LabelType);
- sendit(sock, " RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n",
+ sendit(sock, _(" RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n"),
res->res_pool.recycle_oldest_volume,
res->res_pool.purge_oldest_volume,
res->res_pool.MaxVolJobs, res->res_pool.MaxVolFiles);
break;
case R_MSGS:
- sendit(sock, "Messages: name=%s\n", res->res_msgs.hdr.name);
+ sendit(sock, _("Messages: name=%s\n"), res->res_msgs.hdr.name);
if (res->res_msgs.mail_cmd)
- sendit(sock, " mailcmd=%s\n", res->res_msgs.mail_cmd);
+ sendit(sock, _(" mailcmd=%s\n"), res->res_msgs.mail_cmd);
if (res->res_msgs.operator_cmd)
- sendit(sock, " opcmd=%s\n", res->res_msgs.operator_cmd);
+ sendit(sock, _(" opcmd=%s\n"), res->res_msgs.operator_cmd);
break;
default:
- sendit(sock, "Unknown resource type %d in dump_resource.\n", type);
+ sendit(sock, _("Unknown resource type %d in dump_resource.\n"), type);
break;
}
if (recurse && res->res_dir.hdr.next) {
res = NULL;
break;
default:
- printf("Unknown resource type %d in free_resource.\n", type);
+ printf(_("Unknown resource type %d in free_resource.\n"), type);
}
/* Common stuff again -- free the resource, recurse to next one */
if (res) {
for (i=0; items[i].name; i++) {
if (items[i].flags & ITEM_REQUIRED) {
if (!bit_is_set(i, res_all.res_dir.hdr.item_present)) {
- Emsg2(M_ERROR_TERM, 0, "%s item is required in %s resource, but not found.\n",
+ Emsg2(M_ERROR_TERM, 0, _("%s item is required in %s resource, but not found.\n"),
items[i].name, resources[rindex]);
}
}
/* If this triggers, take a look at lib/parse_conf.h */
if (i >= MAX_RES_ITEMS) {
- Emsg1(M_ERROR_TERM, 0, "Too many items in %s resource\n", resources[rindex]);
+ Emsg1(M_ERROR_TERM, 0, _("Too many items in %s resource\n"), resources[rindex]);
}
}
} else if (type == R_JOB) {
*/
if (items[0].flags & ITEM_REQUIRED) {
if (!bit_is_set(0, res_all.res_dir.hdr.item_present)) {
- Emsg2(M_ERROR_TERM, 0, "%s item is required in %s resource, but not found.\n",
+ Emsg2(M_ERROR_TERM, 0, _("%s item is required in %s resource, but not found.\n"),
items[0].name, resources[rindex]);
}
}
/* Resources containing another resource or alist */
case R_CONSOLE:
if ((res = (URES *)GetResWithName(R_CONSOLE, res_all.res_con.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Console resource %s\n", res_all.res_con.hdr.name);
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Console resource %s\n"), res_all.res_con.hdr.name);
}
res->res_con.tls_allowed_cns = res_all.res_con.tls_allowed_cns;
break;
case R_DIRECTOR:
if ((res = (URES *)GetResWithName(R_DIRECTOR, res_all.res_dir.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Director resource %s\n", res_all.res_dir.hdr.name);
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Director resource %s\n"), res_all.res_dir.hdr.name);
}
res->res_dir.messages = res_all.res_dir.messages;
res->res_dir.tls_allowed_cns = res_all.res_dir.tls_allowed_cns;
break;
case R_STORAGE:
if ((res = (URES *)GetResWithName(type, res_all.res_store.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Storage resource %s\n",
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Storage resource %s\n"),
res_all.res_dir.hdr.name);
}
/* we must explicitly copy the device alist pointer */
case R_JOB:
case R_JOBDEFS:
if ((res = (URES *)GetResWithName(type, res_all.res_dir.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Job resource %s\n",
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Job resource %s\n"),
res_all.res_dir.hdr.name);
}
res->res_job.messages = res_all.res_job.messages;
break;
case R_COUNTER:
if ((res = (URES *)GetResWithName(R_COUNTER, res_all.res_counter.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Counter resource %s\n", res_all.res_counter.hdr.name);
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Counter resource %s\n"), res_all.res_counter.hdr.name);
}
res->res_counter.Catalog = res_all.res_counter.Catalog;
res->res_counter.WrapCounter = res_all.res_counter.WrapCounter;
case R_CLIENT:
if ((res = (URES *)GetResWithName(R_CLIENT, res_all.res_client.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Client resource %s\n", res_all.res_client.hdr.name);
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Client resource %s\n"), res_all.res_client.hdr.name);
}
res->res_client.catalog = res_all.res_client.catalog;
break;
* into the Schedule resource.
*/
if ((res = (URES *)GetResWithName(R_SCHEDULE, res_all.res_client.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Schedule resource %s\n", res_all.res_client.hdr.name);
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Schedule resource %s\n"), res_all.res_client.hdr.name);
}
res->res_sch.run = res_all.res_sch.run;
break;
default:
- Emsg1(M_ERROR, 0, "Unknown resource type %d in save_resource.\n", type);
+ Emsg1(M_ERROR, 0, _("Unknown resource type %d in save_resource.\n"), type);
error = true;
break;
}
error = true;
break;
default:
- printf("Unknown resource type %d in save_resrouce.\n", type);
+ printf(_("Unknown resource type %d in save_resrouce.\n"), type);
error = true;
break;
}
} else {
RES *next;
if (res->res_dir.hdr.name == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Name item is required in %s resource, but not found.\n",
+ Emsg1(M_ERROR_TERM, 0, _("Name item is required in %s resource, but not found.\n"),
resources[rindex]);
}
/* Add new res to end of chain */
}
}
next->next = (RES *)res;
- Dmsg4(900, "Inserting %s res: %s index=%d pass=%d\n", res_to_str(type),
+ Dmsg4(900, _("Inserting %s res: %s index=%d pass=%d\n"), res_to_str(type),
res->res_dir.hdr.name, rindex, pass);
}
}
}
}
if (i != 0) {
- scan_err1(lc, "Expected a Job Type keyword, got: %s", lc->str);
+ scan_err1(lc, _("Expected a Job Type keyword, got: %s"), lc->str);
}
scan_to_eol(lc);
set_bit(index, res_all.hdr.item_present);
}
}
if (i != 0) {
- scan_err1(lc, "Expected a Job Level keyword, got: %s", lc->str);
+ scan_err1(lc, _("Expected a Job Level keyword, got: %s"), lc->str);
}
scan_to_eol(lc);
set_bit(index, res_all.hdr.item_present);
}
}
if (i != 0) {
- scan_err1(lc, "Expected a Restore replacement option, got: %s", lc->str);
+ scan_err1(lc, _("Expected a Restore replacement option, got: %s"), lc->str);
}
scan_to_eol(lc);
set_bit(index, res_all.hdr.item_present);
since[0] = 0;
if (jcr->cloned) {
if ( jcr->stime && jcr->stime[0]) {
- bstrncpy(since, ", since=", since_len);
+ bstrncpy(since, _(", since="), since_len);
bstrncat(since, jcr->stime, since_len);
}
return;
/* No job found, so upgrade this one to Full */
Jmsg(jcr, M_INFO, 0, "%s", db_strerror(jcr->db));
Jmsg(jcr, M_INFO, 0, _("No prior or suitable Full backup found. Doing FULL backup.\n"));
- bsnprintf(since, since_len, " (upgraded from %s)",
+ bsnprintf(since, since_len, _(" (upgraded from %s)"),
level_to_str(jcr->JobLevel));
jcr->JobLevel = jcr->jr.JobLevel = L_FULL;
} else {
if (db_find_failed_job_since(jcr, jcr->db, &jcr->jr, jcr->stime, JobLevel)) {
Jmsg(jcr, M_INFO, 0, _("Prior failed job found. Upgrading to %s.\n"),
level_to_str(JobLevel));
- bsnprintf(since, since_len, " (upgraded from %s)",
+ bsnprintf(since, since_len, _(" (upgraded from %s)"),
level_to_str(jcr->JobLevel));
jcr->JobLevel = jcr->jr.JobLevel = JobLevel;
jcr->jr.JobId = jcr->JobId;
break;
}
}
- bstrncpy(since, ", since=", since_len);
+ bstrncpy(since, _(", since="), since_len);
bstrncat(since, jcr->stime, since_len);
}
jcr->jr.JobId = jcr->JobId;
char ed1[50];
stime = str_to_utime(jcr->stime);
- bnet_fsend(fd, levelcmd, "since_utime ", edit_uint64(stime, ed1), 0);
+ bnet_fsend(fd, levelcmd, _("since_utime "), edit_uint64(stime, ed1), 0);
while (bget_dirmsg(fd) >= 0) { /* allow him to poll us to sync clocks */
Jmsg(jcr, M_INFO, 0, "%s\n", fd->msg);
}
}
Dmsg1(900, "Bad response: ERR=%s", bs->msg);
if (prtmsg == DISPLAY_ERROR) {
- Jmsg(jcr, M_FATAL, 0, _("Bad response to %s command: wanted %s got: %s\n"),
+ Jmsg(jcr, M_FATAL, 0, _("Bad response to %s command: wanted %s, got %s\n"),
cmd, resp, bs->msg);
}
return false;
}
}
if (i != 0) {
- scan_err1(lc, "Expected a FileSet option keyword, got:%s:", lc->str);
+ scan_err1(lc, _("Expected a FileSet option keyword, got:%s:"), lc->str);
} else { /* add option */
bstrncat(opts, option, optlen);
Dmsg3(900, "Catopts=%s option=%s optlen=%d\n", opts, option,optlen);
if (!options) {
token = lex_get_token(lc, T_SKIP_EOL);
if (token != T_EQUALS) {
- scan_err1(lc, "expected an equals, got: %s", lc->str);
+ scan_err1(lc, _("expected an equals, got: %s"), lc->str);
}
}
/* Call item handler */
}
}
if (i >=0) {
- scan_err1(lc, "Keyword %s not permitted in this resource", lc->str);
+ scan_err1(lc, _("Keyword %s not permitted in this resource"), lc->str);
}
}
if (pass == 1) {
token = lex_get_token(lc, T_SKIP_EOL);
if (token != T_BOB) {
- scan_err1(lc, "Expecting open brace. Got %s", lc->str);
+ scan_err1(lc, _("Expecting open brace. Got %s"), lc->str);
}
if (pass == 1) {
if (strcasecmp(options_items[i].name, lc->str) == 0) {
token = lex_get_token(lc, T_SKIP_EOL);
if (token != T_EQUALS) {
- scan_err1(lc, "expected an equals, got: %s", lc->str);
+ scan_err1(lc, _("expected an equals, got: %s"), lc->str);
}
/* Call item handler */
options_items[i].handler(lc, &options_items[i], i, pass);
}
}
if (i >=0) {
- scan_err1(lc, "Keyword %s not permitted in this resource", lc->str);
+ scan_err1(lc, _("Keyword %s not permitted in this resource"), lc->str);
}
}
}
}
}
if (keyword == INC_KW_NONE) {
- scan_err1(lc, "Expected a FileSet keyword, got: %s", lc->str);
+ scan_err1(lc, _("Expected a FileSet keyword, got: %s"), lc->str);
}
/* Now scan for the value */
scan_include_options(lc, keyword, inc_opts, sizeof(inc_opts));
}
break;
default:
- Pmsg1(0, "Unimplemented job type: %d\n", jcr->JobType);
+ Pmsg1(0, _("Unimplemented job type: %d\n"), jcr->JobType);
set_jcr_job_status(jcr, JS_ErrorTerminated);
break;
}
}
break;
default:
- Pmsg1(0, "Unimplemented job type: %d\n", jcr->JobType);
+ Pmsg1(0, _("Unimplemented job type: %d\n"), jcr->JobType);
break;
}
if ((jcr->job->RunAfterJob && jcr->JobStatus == JS_Terminated) ||
if ((stat = pthread_attr_init(&jq->attr)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_attr_init: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_attr_init: ERR=%s\n"), be.strerror(stat));
return stat;
}
if ((stat = pthread_attr_setdetachstate(&jq->attr, PTHREAD_CREATE_DETACHED)) != 0) {
}
if ((stat = pthread_mutex_init(&jq->mutex, NULL)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_init: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_mutex_init: ERR=%s\n"), be.strerror(stat));
pthread_attr_destroy(&jq->attr);
return stat;
}
if ((stat = pthread_cond_init(&jq->work, NULL)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_cond_init: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_cond_init: ERR=%s\n"), be.strerror(stat));
pthread_mutex_destroy(&jq->mutex);
pthread_attr_destroy(&jq->attr);
return stat;
}
if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_mutex_lock: ERR=%s\n"), be.strerror(stat));
return stat;
}
jq->valid = 0; /* prevent any more operations */
if (jq->idle_workers) {
if ((stat = pthread_cond_broadcast(&jq->work)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_cond_broadcast: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_cond_broadcast: ERR=%s\n"), be.strerror(stat));
pthread_mutex_unlock(&jq->mutex);
return stat;
}
while (jq->num_workers > 0) {
if ((stat = pthread_cond_wait(&jq->work, &jq->mutex)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_cond_wait: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_cond_wait: ERR=%s\n"), be.strerror(stat));
pthread_mutex_unlock(&jq->mutex);
return stat;
}
}
if ((stat = pthread_mutex_unlock(&jq->mutex)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_unlock: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_mutex_unlock: ERR=%s\n"), be.strerror(stat));
return stat;
}
stat = pthread_mutex_destroy(&jq->mutex);
stat = pthread_create(&id, &jq->attr, sched_wait, (void *)sched_pkt);
if (stat != 0) { /* thread not created */
berrno be;
- Jmsg1(jcr, M_ERROR, 0, "pthread_thread_create: ERR=%s\n", be.strerror(stat));
+ Jmsg1(jcr, M_ERROR, 0, _("pthread_thread_create: ERR=%s\n"), be.strerror(stat));
}
return stat;
}
if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) {
berrno be;
- Jmsg1(jcr, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat));
+ Jmsg1(jcr, M_ERROR, 0, _("pthread_mutex_lock: ERR=%s\n"), be.strerror(stat));
jcr->use_count--; /* release jcr */
return stat;
}
if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_mutex_lock: ERR=%s\n"), be.strerror(stat));
return stat;
}
Dmsg0(2300, "Signal worker to wake up\n");
if ((stat = pthread_cond_broadcast(&jq->work)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_cond_signal: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_cond_signal: ERR=%s\n"), be.strerror(stat));
return stat;
}
} else if (jq->num_workers < jq->max_workers) {
set_thread_concurrency(jq->max_workers + 1);
if ((stat = pthread_create(&id, &jq->attr, jobq_server, (void *)jq)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_create: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_create: ERR=%s\n"), be.strerror(stat));
return stat;
}
}
Dmsg0(2300, "Start jobq_server\n");
if ((stat = pthread_mutex_lock(&jq->mutex)) != 0) {
berrno be;
- Jmsg1(NULL, M_ERROR, 0, "pthread_mutex_lock: ERR=%s\n", be.strerror(stat));
+ Jmsg1(NULL, M_ERROR, 0, _("pthread_mutex_lock: ERR=%s\n"), be.strerror(stat));
return NULL;
}
jq->num_workers++;
Dmsg1(100, "find last jobid for: %s\n", NPRT(Name));
if (!db_find_last_jobid(jcr, jcr->db, Name, &jr)) {
Jmsg(jcr, M_FATAL, 0, _(
- "Unable to find JobId of previous Job for this client.\n"));
+ _("Unable to find JobId of previous Job for this client.\n")));
return false;
}
input_jobid = jr.JobId;
// bmicrosleep(15, 0); /* for debugging SIGHUP */
- Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n"
+ Jmsg(jcr, msg_type, 0, _("Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Backup Level: %s%s\n"
" FD termination status: %s\n"
" SD termination status: %s\n"
" Termination: %s\n\n"),
+ VERSION,
+ LSMDATE,
edt,
jcr->jr.JobId,
jcr->jr.Job,
static char use_storage[] = "use storage=%s media_type=%s pool_name=%s "
"pool_type=%s append=%d copy=%d stripe=%d\n";
static char use_device[] = "use device=%s\n";
-//static char query_device[] = "query device=%s";
+//static char query_device[] = _("query device=%s");
/* Response from Storage daemon */
static char OKjob[] = "3000 OK Job SDid=%d SDtime=%d Authorization=%100s\n";
/* Check if a duration or limit has expired */
if (has_volume_expired(jcr, mr)) {
- *reason = "volume has expired";
+ *reason = _("volume has expired");
/* Keep going because we may be able to recycle volume */
}
*/
if (strcmp(mr->VolStatus, "Purged") == 0) {
if (recycle_volume(jcr, mr)) {
- Jmsg(jcr, M_INFO, 0, "Recycled current volume \"%s\"\n", mr->VolumeName);
+ Jmsg(jcr, M_INFO, 0, _("Recycled current volume \"%s\"\n"), mr->VolumeName);
*reason = NULL;
return;
} else {
/* In principle this shouldn't happen */
- *reason = "and recycling of current volume failed";
+ *reason = _("and recycling of current volume failed");
return;
}
}
/* At this point, the volume is not valid for writing */
- *reason = "but should be Append, Purged or Recycle";
+ *reason = _("but should be Append, Purged or Recycle");
/*
* What we're trying to do here is see if the current volume is
if (ok) {
/* If fully purged, recycle current volume */
if (recycle_volume(jcr, mr)) {
- Jmsg(jcr, M_INFO, 0, "Recycled current volume \"%s\"\n", mr->VolumeName);
+ Jmsg(jcr, M_INFO, 0, _("Recycled current volume \"%s\"\n"), mr->VolumeName);
*reason = NULL;
} else {
- *reason = "but should be Append, Purged or Recycle (recycling of the "
- "current volume failed)";
+ *reason = _("but should be Append, Purged or Recycle (recycling of the "
+ "current volume failed)");
}
} else {
- *reason = "but should be Append, Purged or Recycle (cannot automatically "
- "recycle current volume, as it still contains unpruned data)";
+ *reason = _("but should be Append, Purged or Recycle (cannot automatically "
+ "recycle current volume, as it still contains unpruned data)");
}
}
}
Dmsg0(100, "In job_getattr.\n");
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
- bstrncpy(errmsg, "Job pointer not found.", sizeof(errmsg));
+ bstrncpy(errmsg, _("Job pointer not found."), sizeof(errmsg));
goto bail_out;
}
for (i=0; getvars[i].name; i++) {
jcr->NumVols = pr.NumVols;
return Py_BuildValue(getvars[i].fmt, jcr->NumVols);
} else {
- bsnprintf(errmsg, sizeof(errmsg), "Pool record not found.");
+ bsnprintf(errmsg, sizeof(errmsg), _("Pool record not found."));
goto bail_out;
}
case 6: /* Pool */
catalog_db);
}
- bsnprintf(errmsg, sizeof(errmsg), "Attribute %s not found.", attrname);
+ bsnprintf(errmsg, sizeof(errmsg), _("Attribute %s not found."), attrname);
bail_out:
PyErr_SetString(PyExc_AttributeError, errmsg);
return NULL;
switch (setvars[i].fmt[0]) {
case 's':
if (!PyArg_Parse(value, setvars[i].fmt, &strval)) {
- PyErr_SetString(PyExc_TypeError, "Read-only attribute");
+ PyErr_SetString(PyExc_TypeError, _("Read-only attribute"));
return -1;
}
break;
case 'i':
if (!PyArg_Parse(value, setvars[i].fmt, &intval)) {
- PyErr_SetString(PyExc_TypeError, "Read-only attribute");
+ PyErr_SetString(PyExc_TypeError, _("Read-only attribute"));
return -1;
}
break;
mr->MediaId = oldest.MediaId;
if (db_get_media_record(jcr, jcr->db, mr)) {
if (recycle_volume(jcr, mr)) {
- Jmsg(jcr, M_INFO, 0, "Recycled volume \"%s\"\n", mr->VolumeName);
+ Jmsg(jcr, M_INFO, 0, _("Recycled volume \"%s\"\n"), mr->VolumeName);
Dmsg1(100, "return 1 recycle_oldest_purged_volume Vol=%s\n", mr->VolumeName);
return 1;
}
jobstatus_to_ascii(jcr->FDJobStatus, fd_term_msg, sizeof(fd_term_msg));
jobstatus_to_ascii(jcr->SDJobStatus, sd_term_msg, sizeof(sd_term_msg));
- Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n"
+ Jmsg(jcr, msg_type, 0, _("Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" Client: %s\n"
" FD termination status: %s\n"
" SD termination status: %s\n"
" Termination: %s\n\n"),
+ VERSION,
+ LSMDATE,
edt,
jcr->jr.JobId,
jcr->jr.Job,
if (strcasecmp(lc->str, RunFields[i].name) == 0) {
found = true;
if (lex_get_token(lc, T_ALL) != T_EQUALS) {
- scan_err1(lc, "Expected an equals, got: %s", lc->str);
+ scan_err1(lc, _("Expected an equals, got: %s"), lc->str);
/* NOT REACHED */
}
switch (RunFields[i].token) {
if (pass == 2) {
res = GetResWithName(R_POOL, lc->str);
if (res == NULL) {
- scan_err1(lc, "Could not find specified Pool Resource: %s",
+ scan_err1(lc, _("Could not find specified Pool Resource: %s"),
lc->str);
/* NOT REACHED */
}
if (pass == 2) {
res = GetResWithName(R_STORAGE, lc->str);
if (res == NULL) {
- scan_err1(lc, "Could not find specified Storage Resource: %s",
+ scan_err1(lc, _("Could not find specified Storage Resource: %s"),
lc->str);
/* NOT REACHED */
}
if (pass == 2) {
res = GetResWithName(R_MSGS, lc->str);
if (res == NULL) {
- scan_err1(lc, "Could not find specified Messages Resource: %s",
+ scan_err1(lc, _("Could not find specified Messages Resource: %s"),
lc->str);
/* NOT REACHED */
}
}
break;
default:
- scan_err1(lc, "Expected a keyword name, got: %s", lc->str);
+ scan_err1(lc, _("Expected a keyword name, got: %s"), lc->str);
/* NOT REACHED */
break;
} /* end switch */
#ifdef list_chain
job_item *je;
foreach_dlist(je, jobs_to_run) {
- dump_job(je, "Walk queue");
+ dump_job(je, _("Walk queue"));
}
#endif
/*
next_job = (job_item *)jobs_to_run->first();
jobs_to_run->remove(next_job);
- dump_job(next_job, "Dequeued job");
+ dump_job(next_job, _("Dequeued job"));
if (!next_job) { /* we really should have something now */
Emsg0(M_ABORT, 0, _("Scheduler logic error\n"));
job = next_job->job;
run->last_run = now; /* mark as run now */
- dump_job(next_job, "Run job");
+ dump_job(next_job, _("Run job"));
free(next_job);
if (ji->runtime > je->runtime ||
(ji->runtime == je->runtime && ji->Priority > je->Priority)) {
jobs_to_run->insert_before(je, ji);
- dump_job(je, "Inserted job");
+ dump_job(je, _("Inserted job"));
inserted = true;
break;
}
/* If place not found in queue, append it */
if (!inserted) {
jobs_to_run->append(je);
- dump_job(je, "Appended job");
+ dump_job(je, _("Appended job"));
}
#ifdef SCHED_DEBUG
foreach_dlist(ji, jobs_to_run) {
- dump_job(ji, "Run queue");
+ dump_job(ji, _("Run queue"));
}
Dmsg0(000, "End run queue\n");
#endif
free_jcr(jcr);
continue;
}
- bsnprintf(buf, sizeof(buf), "JobId=%s Job=%s", edit_int64(jcr->JobId, ed1), jcr->Job);
+ bsnprintf(buf, sizeof(buf), _("JobId=%s Job=%s"), edit_int64(jcr->JobId, ed1), jcr->Job);
add_prompt(ua, buf);
free_jcr(jcr);
}
Dmsg1(120, "setdebug:%s:\n", cmd);
level = -1;
- i = find_arg_with_value(ua, _("level"));
+ i = find_arg_with_value(ua, "level");
if (i >= 0) {
level = atoi(ua->argv[i]);
}
}
/* Look for trace flag. -1 => not change */
- i = find_arg_with_value(ua, _("trace"));
+ i = find_arg_with_value(ua, "trace");
if (i >= 0) {
trace_flag = atoi(ua->argv[i]);
if (trace_flag > 0) {
/* General debug? */
for (i=1; i<ua->argc; i++) {
- if (strcasecmp(ua->argk[i], _("all")) == 0) {
+ if (strcasecmp(ua->argk[i], "all") == 0) {
do_all_setdebug(ua, level, trace_flag);
return 1;
}
- if (strcasecmp(ua->argk[i], _("dir")) == 0 ||
- strcasecmp(ua->argk[i], _("director")) == 0) {
+ if (strcasecmp(ua->argk[i], "dir") == 0 ||
+ strcasecmp(ua->argk[i], "director") == 0) {
debug_level = level;
set_trace(trace_flag);
return 1;
}
- if (strcasecmp(ua->argk[i], _("client")) == 0 ||
- strcasecmp(ua->argk[i], _("fd")) == 0) {
+ if (strcasecmp(ua->argk[i], "client") == 0 ||
+ strcasecmp(ua->argk[i], "fd") == 0) {
client = NULL;
if (ua->argv[i]) {
client = (CLIENT *)GetResWithName(R_CLIENT, ua->argv[i]);
}
}
- if (strcasecmp(ua->argk[i], _("store")) == 0 ||
- strcasecmp(ua->argk[i], _("storage")) == 0 ||
- strcasecmp(ua->argk[i], _("sd")) == 0) {
+ if (strcasecmp(ua->argk[i], "store") == 0 ||
+ strcasecmp(ua->argk[i], "storage") == 0 ||
+ strcasecmp(ua->argk[i], "sd") == 0) {
store = NULL;
if (ua->argv[i]) {
store = (STORE *)GetResWithName(R_STORAGE, ua->argv[i]);
* prompt the user.
*/
start_prompt(ua, _("Available daemons are: \n"));
- add_prompt(ua, _("Director"));
- add_prompt(ua, _("Storage"));
- add_prompt(ua, _("Client"));
- add_prompt(ua, _("All"));
+ add_prompt(ua, "Director");
+ add_prompt(ua, "Storage");
+ add_prompt(ua, "Client");
+ add_prompt(ua, "All");
switch(do_prompt(ua, "", _("Select daemon type to set debug level"), NULL, 0)) {
case 0: /* Director */
debug_level = level;
jcr->JobLevel = L_FULL;
for (int i=1; i<ua->argc; i++) {
- if (strcasecmp(ua->argk[i], _("client")) == 0 ||
- strcasecmp(ua->argk[i], _("fd")) == 0) {
+ if (strcasecmp(ua->argk[i], "client") == 0 ||
+ strcasecmp(ua->argk[i], "fd") == 0) {
if (ua->argv[i]) {
client = (CLIENT *)GetResWithName(R_CLIENT, ua->argv[i]);
continue;
}
}
- if (strcasecmp(ua->argk[i], _("job")) == 0) {
+ if (strcasecmp(ua->argk[i], "job") == 0) {
if (ua->argv[i]) {
job = (JOB *)GetResWithName(R_JOB, ua->argv[i]);
continue;
}
}
- if (strcasecmp(ua->argk[i], _("fileset")) == 0) {
+ if (strcasecmp(ua->argk[i], "fileset") == 0) {
if (ua->argv[i]) {
fileset = (FILESET *)GetResWithName(R_FILESET, ua->argv[i]);
continue;
}
}
- if (strcasecmp(ua->argk[i], _("listing")) == 0) {
+ if (strcasecmp(ua->argk[i], "listing") == 0) {
listing = 1;
continue;
}
- if (strcasecmp(ua->argk[i], _("level")) == 0) {
+ if (strcasecmp(ua->argk[i], "level") == 0) {
if (!get_level_from_name(ua->jcr, ua->argv[i])) {
bsendmsg(ua, _("Level %s not valid.\n"), ua->argv[i]);
}
return 1;
case 2:
int i;
- while ((i=find_arg(ua, _("jobid"))) > 0) {
+ while ((i=find_arg(ua, "jobid")) > 0) {
delete_job(ua);
*ua->argk[i] = 0; /* zap keyword already visited */
}
JobId_t JobId;
char *s,*sep,*tok;
- int i = find_arg_with_value(ua, _("jobid"));
+ int i = find_arg_with_value(ua, N_("jobid"));
if (i >= 0) {
if (strchr(ua->argv[i], ',') != NULL || strchr(ua->argv[i], '-') != NULL) {
s = bstrdup(ua->argv[i]);
unsigned int i;
for (i=0; i<comsize; i++) {
- bsendmsg(ua, _("%s %s\n"), _(commands[i].key), _(commands[i].help));
+ bsendmsg(ua, "%s %s\n", _(commands[i].key), _(commands[i].help));
}
return 1;
}
static int version_cmd(UAContext *ua, const char *cmd)
{
- bsendmsg(ua, "%s Version: " VERSION " (" BDATE ")\n", my_name);
+ bsendmsg(ua, _("%s Version: %s (%s)\n"), my_name, VERSION, BDATE);
return 1;
}
JCR *jcr = NULL;
int a;
- bsendmsg(ua, "The Director will segment fault.\n");
+ bsendmsg(ua, _("The Director will segment fault.\n"));
a = jcr->JobId; /* ref NULL pointer */
jcr->JobId = 1000; /* another ref NULL pointer */
return 0;
return false;
}
/* Kludge for slots blank line => 0 */
- if (ua->cmd[0] == 0 && strncmp(prompt, "Enter slot", 10) == 0) {
+ if (ua->cmd[0] == 0 && strncmp(prompt, _("Enter slot"), strlen(_("Enter slot"))) == 0) {
return true;
}
if (!is_a_number(ua->cmd)) {
- bsendmsg(ua, "Expected a positive integer, got: %s\n", ua->cmd);
+ bsendmsg(ua, _("Expected a positive integer, got: %s\n"), ua->cmd);
continue;
}
errno = 0;
dval = strtod(ua->cmd, NULL);
if (errno != 0 || dval < 0) {
- bsendmsg(ua, "Expected a positive integer, got: %s\n", ua->cmd);
+ bsendmsg(ua, _("Expected a positive integer, got: %s\n"), ua->cmd);
continue;
}
ua->pint32_val = (uint32_t)dval;
}
set_storage(ua->jcr, store);
- scan = find_arg(ua, _("scan")) >= 0;
+ scan = find_arg(ua, N_("scan")) >= 0;
max_slots = get_num_slots_from_SD(ua);
if (max_slots <= 0) {
mr.InChanger = 1;
mr.StorageId = store->StorageId;
if (!db_update_media_record(ua->jcr, ua->db, &mr)) {
- bsendmsg(ua, "Error setting InChanger: ERR=%s", db_strerror(ua->db));
+ bsendmsg(ua, _("Error setting InChanger: ERR=%s"), db_strerror(ua->db));
}
continue;
}
bsendmsg(ua, "%s", db_strerror(ua->db));
}
} else {
- bsendmsg(ua, "Catalog error on cleaning tape: %s", db_strerror(ua->db));
+ bsendmsg(ua, _("Catalog error on cleaning tape: %s"), db_strerror(ua->db));
}
}
continue; /* done, go handle next volume */
/* Scan arguments looking for things to do */
for (i=1; i<ua->argc; i++) {
/* List JOBS */
- if (strcasecmp(ua->argk[i], _("jobs")) == 0) {
+ if (strcasecmp(ua->argk[i], N_("jobs")) == 0) {
/* Apply any limit */
- j = find_arg_with_value(ua, _("limit"));
+ j = find_arg_with_value(ua, N_("limit"));
if (j >= 0) {
jr.limit = atoi(ua->argv[j]);
}
db_list_job_records(ua->jcr, ua->db, &jr, prtit, ua, llist);
/* List JOBTOTALS */
- } else if (strcasecmp(ua->argk[i], _("jobtotals")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("jobtotals")) == 0) {
db_list_job_totals(ua->jcr, ua->db, &jr, prtit, ua);
/* List JOBID */
- } else if (strcasecmp(ua->argk[i], _("jobid")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("jobid")) == 0) {
if (ua->argv[i]) {
jobid = str_to_int64(ua->argv[i]);
if (jobid > 0) {
}
/* List JOB */
- } else if (strcasecmp(ua->argk[i], _("job")) == 0 && ua->argv[i]) {
+ } else if (strcasecmp(ua->argk[i], N_("job")) == 0 && ua->argv[i]) {
bstrncpy(jr.Job, ua->argv[i], MAX_NAME_LENGTH);
jr.JobId = 0;
db_list_job_records(ua->jcr, ua->db, &jr, prtit, ua, llist);
/* List FILES */
- } else if (strcasecmp(ua->argk[i], _("files")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("files")) == 0) {
for (j=i+1; j<ua->argc; j++) {
- if (strcasecmp(ua->argk[j], _("job")) == 0 && ua->argv[j]) {
+ if (strcasecmp(ua->argk[j], N_("job")) == 0 && ua->argv[j]) {
bstrncpy(jr.Job, ua->argv[j], MAX_NAME_LENGTH);
jr.JobId = 0;
db_get_job_record(ua->jcr, ua->db, &jr);
jobid = jr.JobId;
- } else if (strcasecmp(ua->argk[j], _("jobid")) == 0 && ua->argv[j]) {
+ } else if (strcasecmp(ua->argk[j], N_("jobid")) == 0 && ua->argv[j]) {
jobid = str_to_int64(ua->argv[j]);
} else {
continue;
}
/* List JOBMEDIA */
- } else if (strcasecmp(ua->argk[i], _("jobmedia")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("jobmedia")) == 0) {
int done = FALSE;
for (j=i+1; j<ua->argc; j++) {
- if (strcasecmp(ua->argk[j], _("job")) == 0 && ua->argv[j]) {
+ if (strcasecmp(ua->argk[j], N_("job")) == 0 && ua->argv[j]) {
bstrncpy(jr.Job, ua->argv[j], MAX_NAME_LENGTH);
jr.JobId = 0;
db_get_job_record(ua->jcr, ua->db, &jr);
jobid = jr.JobId;
- } else if (strcasecmp(ua->argk[j], _("jobid")) == 0 && ua->argv[j]) {
+ } else if (strcasecmp(ua->argk[j], N_("jobid")) == 0 && ua->argv[j]) {
jobid = str_to_int64(ua->argv[j]);
} else {
continue;
}
/* List POOLS */
- } else if (strcasecmp(ua->argk[i], _("pools")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("pools")) == 0) {
db_list_pool_records(ua->jcr, ua->db, prtit, ua, llist);
- } else if (strcasecmp(ua->argk[i], _("clients")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("clients")) == 0) {
db_list_client_records(ua->jcr, ua->db, prtit, ua, llist);
/* List MEDIA or VOLUMES */
- } else if (strcasecmp(ua->argk[i], _("media")) == 0 ||
- strcasecmp(ua->argk[i], _("volumes")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("media")) == 0 ||
+ strcasecmp(ua->argk[i], N_("volumes")) == 0) {
bool done = false;
for (j=i+1; j<ua->argc; j++) {
- if (strcasecmp(ua->argk[j], _("job")) == 0 && ua->argv[j]) {
+ if (strcasecmp(ua->argk[j], N_("job")) == 0 && ua->argv[j]) {
bstrncpy(jr.Job, ua->argv[j], MAX_NAME_LENGTH);
jr.JobId = 0;
db_get_job_record(ua->jcr, ua->db, &jr);
jobid = jr.JobId;
- } else if (strcasecmp(ua->argk[j], _("jobid")) == 0 && ua->argv[j]) {
+ } else if (strcasecmp(ua->argk[j], N_("jobid")) == 0 && ua->argv[j]) {
jobid = str_to_int64(ua->argv[j]);
} else {
continue;
uint32_t *ids;
/* Is a specific pool wanted? */
for (i=1; i<ua->argc; i++) {
- if (strcasecmp(ua->argk[i], _("pool")) == 0) {
+ if (strcasecmp(ua->argk[i], N_("pool")) == 0) {
if (!get_pool_dbr(ua, &pr)) {
bsendmsg(ua, _("No Pool specified.\n"));
return 1;
return 1;
}
/* List a specific volume */
- } else if (strcasecmp(ua->argk[i], _("volume")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("volume")) == 0) {
if (!ua->argv[i]) {
bsendmsg(ua, _("No Volume Name specified.\n"));
return 1;
db_list_media_records(ua->jcr, ua->db, &mr, prtit, ua, llist);
return 1;
/* List next volume */
- } else if (strcasecmp(ua->argk[i], _("nextvol")) == 0 ||
- strcasecmp(ua->argk[i], _("nextvolume")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("nextvol")) == 0 ||
+ strcasecmp(ua->argk[i], N_("nextvolume")) == 0) {
list_nextvol(ua);
- } else if (strcasecmp(ua->argk[i], _("limit")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("limit")) == 0) {
/* Ignore it */
} else {
bsendmsg(ua, _("Unknown list keyword: %s\n"), NPRT(ua->argk[i]));
if (cnt.count == 0) {
/* Don't mark appendable volume as purged */
if (strcmp(mr->VolStatus, "Append") == 0 && verbose) {
- bsendmsg(ua, "There are no Jobs associated with Volume \"%s\". Prune not needed.\n",
+ bsendmsg(ua, _("There are no Jobs associated with Volume \"%s\". Prune not needed.\n"),
mr->VolumeName);
stat = 1;
goto bail_out;
}
/* If volume not already purged, do so */
if (strcmp(mr->VolStatus, "Purged") != 0 && verbose) {
- bsendmsg(ua, "There are no Jobs associated with Volume \"%s\". Marking it purged.\n",
+ bsendmsg(ua, _("There are no Jobs associated with Volume \"%s\". Marking it purged.\n"),
mr->VolumeName);
}
stat = mark_media_purged(ua, mr);
}
/* Volume */
case 2:
- while ((i=find_arg(ua, _("volume"))) >= 0) {
+ while ((i=find_arg(ua, N_("volume"))) >= 0) {
if (select_media_dbr(ua, &mr)) {
purge_jobs_from_volume(ua, &mr);
}
}
if (cnt.count == 0) {
- bsendmsg(ua, "There are no Jobs associated with Volume \"%s\". Marking it purged.\n",
+ bsendmsg(ua, _("There are no Jobs associated with Volume \"%s\". Marking it purged.\n"),
mr->VolumeName);
if (!mark_media_purged(ua, mr)) {
bsendmsg(ua, "%s", db_strerror(ua->db));
}
if (cnt.count == 0) {
- bsendmsg(ua, "There are no more Jobs associated with Volume \"%s\". Marking it purged.\n",
+ bsendmsg(ua, _("There are no more Jobs associated with Volume \"%s\". Marking it purged.\n"),
mr->VolumeName);
if (!(stat = mark_media_purged(ua, mr))) {
bsendmsg(ua, "%s", db_strerror(ua->db));
goto bail_out;
}
if ((fd=fopen(query_file, "r")) == NULL) {
- bsendmsg(ua, "Could not open %s: ERR=%s\n", query_file,
+ bsendmsg(ua, _("Could not open %s: ERR=%s\n"), query_file,
strerror(errno));
goto bail_out;
}
bsendmsg(ua, _("Entering SQL query mode.\n"
"Terminate each query with a semicolon.\n"
"Terminate query mode with a blank line.\n"));
- msg = "Enter SQL query: ";
+ msg = _("Enter SQL query: ");
while (get_cmd(ua, msg)) {
len = strlen(ua->cmd);
Dmsg2(400, "len=%d cmd=%s:\n", len, ua->cmd);
if (rx.selected_files == 0) {
rx.selected_files = selected_files;
}
- bsendmsg(ua, _("\n%u file%s selected to be restored.\n\n"), rx.selected_files,
- rx.selected_files==1?"":"s");
+ if (rx.selected_files==1) {
+ bsendmsg(ua, _("\n1 file selected to be restored.\n\n"));
+ }
+ else {
+ bsendmsg(ua, _("\n%u files selected to be restored.\n\n"), rx.selected_files);
+ }
} else {
bsendmsg(ua, _("No files selected to be restored.\n"));
goto bail_out;
fname, rx.selected_files, ua->catalog->hdr.name);
}
free_pool_memory(fname);
- if (find_arg(ua, _("yes")) > 0) {
+ if (find_arg(ua, N_("yes")) > 0) {
pm_strcat(ua->cmd, " yes"); /* pass it on to the run command */
}
Dmsg1(400, "Submitting: %s\n", ua->cmd);
if (!rx->ClientName[0]) {
CLIENT_DBR cr;
/* try command line argument */
- int i = find_arg_with_value(ua, _("client"));
+ int i = find_arg_with_value(ua, N_("client"));
if (i >= 0) {
bstrncpy(rx->ClientName, ua->argv[i], sizeof(rx->ClientName));
return 1;
bool done = false;
int i, j;
const char *list[] = {
- "List last 20 Jobs run",
- "List Jobs where a given File is saved",
- "Enter list of comma separated JobIds to select",
- "Enter SQL list command",
- "Select the most recent backup for a client",
- "Select backup for a client before a specified time",
- "Enter a list of files to restore",
- "Enter a list of files to restore before a specified time",
- "Find the JobIds of the most recent backup for a client",
- "Find the JobIds for a backup for a client before a specified time",
- "Enter a list of directories to restore for found JobIds",
- "Cancel",
+ _("List last 20 Jobs run"),
+ _("List Jobs where a given File is saved"),
+ _("Enter list of comma separated JobIds to select"),
+ _("Enter SQL list command"),
+ _("Select the most recent backup for a client"),
+ _("Select backup for a client before a specified time"),
+ _("Enter a list of files to restore"),
+ _("Enter a list of files to restore before a specified time"),
+ _("Find the JobIds of the most recent backup for a client"),
+ _("Find the JobIds for a backup for a client before a specified time"),
+ _("Enter a list of directories to restore for found JobIds"),
+ _("Cancel"),
NULL };
const char *kw[] = {
bsendmsg(ua, _("No Jobs selected.\n"));
return 0;
}
- bsendmsg(ua, _("You have selected the following JobId%s: %s\n"),
- strchr(rx->JobIds,',')?"s":"",rx->JobIds);
+ if (strchr(rx->JobIds,',')) {
+ bsendmsg(ua, _("You have selected the following JobIds: %s\n"), rx->JobIds);
+ }
+ else {
+ bsendmsg(ua, _("You have selected the following JobId: %s\n"), rx->JobIds);
+ }
memset(&jr, 0, sizeof(JOB_DBR));
}
}
if (tree.FileCount == 0) {
- bsendmsg(ua, "\nThere were no files inserted into the tree, so file selection\n"
- "is not possible.Most likely your retention policy pruned the files\n");
+ bsendmsg(ua, _("\nThere were no files inserted into the tree, so file selection\n"
+ "is not possible.Most likely your retention policy pruned the files\n"));
if (!get_yesno(ua, _("\nDo you want to restore all the files? (yes|no): "))) {
OK = false;
} else {
}
} else {
char ec1[50];
- bsendmsg(ua, "\n%d Job%s, %s files inserted into the tree%s.\n",
- items, items==1?"":"s", edit_uint64_with_commas(tree.FileCount, ec1),
- tree.all?" and marked for extraction":"");
+ if (items==1) {
+ if (tree.all) {
+ bsendmsg(ua, _("\n1 Job, %s files inserted into the tree and marked for extraction.\n"),
+ edit_uint64_with_commas(tree.FileCount, ec1));
+ }
+ else {
+ bsendmsg(ua, _("\n1 Job, %s files inserted into the tree.\n"),
+ edit_uint64_with_commas(tree.FileCount, ec1));
+ }
+ }
+ else {
+ if (tree.all) {
+ bsendmsg(ua, _("\n%d Jobs, %s files inserted into the tree and marked for extraction.\n"),
+ items, edit_uint64_with_commas(tree.FileCount, ec1));
+ }
+ else {
+ bsendmsg(ua, _("\n%d Jobs, %s files inserted into the tree.\n"),
+ items, edit_uint64_with_commas(tree.FileCount, ec1));
+ }
+ }
/* Check MediaType and select storage that corresponds */
get_storage_from_mediatype(ua, &rx->name_list, rx);
- if (find_arg(ua, _("done")) < 0) {
+ if (find_arg(ua, N_("done")) < 0) {
/* Let the user interact in selecting which files to restore */
OK = user_select_files_from_tree(&tree);
}
jcr->cloned = cloned;
- if (find_arg(ua, _("fdcalled")) > 0) {
+ if (find_arg(ua, N_("fdcalled")) > 0) {
jcr->file_bsock = dup_bsock(ua->UA_sock);
ua->quit = true;
}
}
/* Run without prompting? */
- if (ua->batch || find_arg(ua, _("yes")) > 0) {
+ if (ua->batch || find_arg(ua, N_("yes")) > 0) {
goto start_job;
}
int i;
for (i=1; i<ua->argc; i++) {
- if ((strcasecmp(ua->argk[i], _("client")) == 0 ||
- strcasecmp(ua->argk[i], _("fd")) == 0) && ua->argv[i]) {
+ if ((strcasecmp(ua->argk[i], N_("client")) == 0 ||
+ strcasecmp(ua->argk[i], N_("fd")) == 0) && ua->argv[i]) {
if (!acl_access_ok(ua, Client_ACL, ua->argv[i])) {
break;
}
uint32_t *ids;
for (i=1; i<ua->argc; i++) {
- if (strcasecmp(ua->argk[i], _("pool")) == 0 && ua->argv[i] &&
+ if (strcasecmp(ua->argk[i], N_("pool")) == 0 && ua->argv[i] &&
acl_access_ok(ua, Pool_ACL, ua->argv[i])) {
bstrncpy(pr->Name, ua->argv[i], sizeof(pr->Name));
if (!db_get_pool_record(ua->jcr, ua->db, pr)) {
int i;
for (i=1; i<ua->argc; i++) {
- if (strcasecmp(ua->argk[i], _("job")) == 0 && ua->argv[i]) {
+ if (strcasecmp(ua->argk[i], N_("job")) == 0 && ua->argv[i]) {
jr->JobId = 0;
bstrncpy(jr->Job, ua->argv[i], sizeof(jr->Job));
- } else if (strcasecmp(ua->argk[i], _("jobid")) == 0 && ua->argv[i]) {
+ } else if (strcasecmp(ua->argk[i], N_("jobid")) == 0 && ua->argv[i]) {
jr->JobId = str_to_int64(ua->argv[i]);
} else {
continue;
break;
}
} else {
- if (strcasecmp(ua->argk[i], _("storage")) == 0 ||
- strcasecmp(ua->argk[i], _("sd")) == 0) {
+ if (strcasecmp(ua->argk[i], N_("storage")) == 0 ||
+ strcasecmp(ua->argk[i], N_("sd")) == 0) {
store_name = ua->argv[i];
break;
- } else if (strcasecmp(ua->argk[i], _("jobid")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("jobid")) == 0) {
jobid = str_to_int64(ua->argv[i]);
if (jobid <= 0) {
bsendmsg(ua, _("Expecting jobid=nn command, got: %s\n"), ua->argk[i]);
free_jcr(jcr);
break;
- } else if (strcasecmp(ua->argk[i], _("job")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("job")) == 0) {
if (!ua->argv[i]) {
bsendmsg(ua, _("Expecting job=xxx, got: %s.\n"), ua->argk[i]);
return NULL;
if (!store && store_name) {
store = (STORE *)GetResWithName(R_STORAGE, store_name);
if (!store) {
- bsendmsg(ua, "Storage resource \"%s\": not found\n", store_name);
+ bsendmsg(ua, _("Storage resource \"%s\": not found\n"), store_name);
}
}
if (store && !acl_access_ok(ua, Storage_ACL, store->hdr.name)) {
Dmsg1(20, "status:%s:\n", cmd);
for (i=1; i<ua->argc; i++) {
- if (strcasecmp(ua->argk[i], _("all")) == 0) {
+ if (strcasecmp(ua->argk[i], N_("all")) == 0) {
do_all_status(ua);
return 1;
- } else if (strcasecmp(ua->argk[i], _("dir")) == 0 ||
- strcasecmp(ua->argk[i], _("director")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("dir")) == 0 ||
+ strcasecmp(ua->argk[i], N_("director")) == 0) {
do_director_status(ua);
return 1;
- } else if (strcasecmp(ua->argk[i], _("client")) == 0) {
+ } else if (strcasecmp(ua->argk[i], N_("client")) == 0) {
client = get_client_resource(ua);
if (client) {
do_client_status(ua, client);
char prmt[MAX_NAME_LENGTH];
start_prompt(ua, _("Status available for:\n"));
- add_prompt(ua, _("Director"));
- add_prompt(ua, _("Storage"));
- add_prompt(ua, _("Client"));
- add_prompt(ua, _("All"));
+ add_prompt(ua, N_("Director"));
+ add_prompt(ua, N_("Storage"));
+ add_prompt(ua, N_("Client"));
+ add_prompt(ua, N_("All"));
Dmsg0(20, "do_prompt: select daemon\n");
if ((item=do_prompt(ua, "", _("Select daemon type for status"), prmt, sizeof(prmt))) < 0) {
return 1;
{
char dt[MAX_TIME_LENGTH];
- bsendmsg(ua, "%s Version: " VERSION " (" BDATE ") %s %s %s\n", my_name,
+ bsendmsg(ua, _("%s Version: %s (%s) %s %s %s\n"), my_name, VERSION, BDATE,
HOST_OS, DISTNAME, DISTVER);
bstrftime_nc(dt, sizeof(dt), daemon_start_time);
- bsendmsg(ua, _("Daemon started %s, %d Job%s run since started.\n"),
- dt, num_jobs_run, num_jobs_run == 1 ? "" : "s");
+ if (num_jobs_run == 1) {
+ bsendmsg(ua, _("Daemon started %s, 1 Job run since started.\n"), dt);
+ }
+ else {
+ bsendmsg(ua, _("Daemon started %s, %d Jobs run since started.\n"),
+ dt, num_jobs_run);
+ }
if (debug_level > 0) {
char b1[35], b2[35], b3[35], b4[35];
bsendmsg(ua, _(" Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"),
* List terminated jobs
*/
list_terminated_jobs(ua);
- bsendmsg(ua, "====\n");
+ bsendmsg(ua, _("====\n"));
}
static void do_storage_status(UAContext *ua, STORE *store)
if (num_jobs == 0) {
bsendmsg(ua, _("No Scheduled Jobs.\n"));
}
- bsendmsg(ua, "====\n");
+ bsendmsg(ua, _("====\n"));
Dmsg0(200, "Leave list_sched_jobs_runs()\n");
}
}
free_jcr(jcr);
}
- bsendmsg(ua, "====\n");
+ bsendmsg(ua, _("====\n"));
Dmsg0(200, "leave list_run_jobs()\n");
}
}
switch (je->JobStatus) {
case JS_Created:
- termstat = "Created";
+ termstat = _("Created");
break;
case JS_FatalError:
case JS_ErrorTerminated:
- termstat = "Error";
+ termstat = _("Error");
break;
case JS_Differences:
- termstat = "Diffs";
+ termstat = _("Diffs");
break;
case JS_Canceled:
- termstat = "Cancel";
+ termstat = _("Cancel");
break;
case JS_Terminated:
- termstat = "OK";
+ termstat = _("OK");
break;
default:
- termstat = "Other";
+ termstat = _("Other");
break;
}
bsendmsg(ua, _("%6d %-6s %8s %14s %-7s %-8s %s\n"),
termstat,
dt, JobName);
}
- bsendmsg(ua, "\n");
+ bsendmsg(ua, _("\n"));
unlock_last_jobs_list();
}
}
if (count == 0) {
bsendmsg(ua, _("No files marked.\n"));
+ } else if (count == 1) {
+ bsendmsg(ua, _("1 file marked.\n"));
} else {
- bsendmsg(ua, _("%s file%s marked.\n"),
- edit_uint64_with_commas(count, ec1), count==0?"":"s");
+ bsendmsg(ua, _("%s files marked.\n"),
+ edit_uint64_with_commas(count, ec1));
}
return 1;
}
}
if (count == 0) {
bsendmsg(ua, _("No directories marked.\n"));
+ } else if (count == 1) {
+ bsendmsg(ua, _("1 directory marked.\n"));
} else {
- bsendmsg(ua, _("%s director%s marked.\n"),
- edit_uint64_with_commas(count, ec1), count==1?"y":"ies");
+ bsendmsg(ua, _("%s directories marked.\n"),
+ edit_uint64_with_commas(count, ec1));
}
return 1;
}
}
}
}
- bsendmsg(ua, "%s total files/dirs. %s marked to be restored.\n",
+ bsendmsg(ua, _("%s total files/dirs. %s marked to be restored.\n"),
edit_uint64_with_commas(total, ec1),
edit_uint64_with_commas(num_extract, ec2));
return 1;
char cwd[1100], *pcwd;
if (!tree_node_has_child(tree->node)) {
- bsendmsg(ua, "Node %s has no children.\n", tree->node->fname);
+ bsendmsg(ua, _("Node %s has no children.\n"), tree->node->fname);
return 1;
}
}
}
}
- bsendmsg(ua, "%d total files; %d marked to be restored; %s bytes.\n",
+ bsendmsg(ua, _("%d total files; %d marked to be restored; %s bytes.\n"),
total, num_extract, edit_uint64_with_commas(total_bytes, ec1));
return 1;
}
bsendmsg(ua, _(" Command Description\n ======= ===========\n"));
for (i=0; i<comsize; i++) {
- bsendmsg(ua, _(" %-10s %s\n"), _(commands[i].key), _(commands[i].help));
+ bsendmsg(ua, " %-10s %s\n", _(commands[i].key), _(commands[i].help));
}
bsendmsg(ua, "\n");
return 1;
}
if (count == 0) {
bsendmsg(ua, _("No files unmarked.\n"));
+ } else if (count == 1) {
+ bsendmsg(ua, _("1 file unmarked.\n"));
} else {
- bsendmsg(ua, _("%d file%s unmarked.\n"), count, count==0?"":"s");
+ bsendmsg(ua, _("%d files unmarked.\n"), count);
}
return 1;
}
if (count == 0) {
bsendmsg(ua, _("No directories unmarked.\n"));
+ } else if (count == 1) {
+ bsendmsg(ua, _("1 directory unmarked.\n"));
} else {
- bsendmsg(ua, _("%d director%s unmarked.\n"), count, count==1?"y":"ies");
+ bsendmsg(ua, _("%d directories unmarked.\n"), count);
}
return 1;
}
{
POOLMEM *query = get_pool_memory(PM_MESSAGE);
const char *kw[] = {
- "Append",
- "Archive",
- "Disabled",
- "Full",
- "Used",
- "Cleaning",
- "Recycle",
- "Read-Only",
+ _("Append"),
+ _("Archive"),
+ _("Disabled"),
+ _("Full"),
+ _("Used"),
+ _("Cleaning"),
+ _("Recycle"),
+ _("Read-Only"),
NULL};
bool found = false;
int i;
char ed1[130];
bool done = false;
const char *kw[] = {
- N_("VolStatus"), /* 0 */
- N_("VolRetention"), /* 1 */
- N_("VolUse"), /* 2 */
- N_("MaxVolJobs"), /* 3 */
- N_("MaxVolFiles"), /* 4 */
- N_("MaxVolBytes"), /* 5 */
- N_("Recycle"), /* 6 */
- N_("Pool"), /* 7 */
- N_("FromPool"), /* 8 */
- N_("AllFromPool"), /* 9 */
+ _("VolStatus"), /* 0 */
+ _("VolRetention"), /* 1 */
+ _("VolUse"), /* 2 */
+ _("MaxVolJobs"), /* 3 */
+ _("MaxVolFiles"), /* 4 */
+ _("MaxVolBytes"), /* 5 */
+ _("Recycle"), /* 6 */
+ _("Pool"), /* 7 */
+ _("FromPool"), /* 8 */
+ _("AllFromPool"), /* 9 */
NULL };
for (int i=0; kw[i]; i++) {
/* Modify Volume Status */
bsendmsg(ua, _("Current Volume status is: %s\n"), mr.VolStatus);
start_prompt(ua, _("Possible Values are:\n"));
- add_prompt(ua, "Append"); /* Better not translate these as */
- add_prompt(ua, "Archive"); /* They are known in the database code */
- add_prompt(ua, "Disabled");
- add_prompt(ua, "Full");
- add_prompt(ua, "Used");
- add_prompt(ua, "Cleaning");
- if (strcmp(mr.VolStatus, "Purged") == 0) {
- add_prompt(ua, "Recycle");
+ add_prompt(ua, _("Append"));
+ add_prompt(ua, _("Archive"));
+ add_prompt(ua, _("Disabled"));
+ add_prompt(ua, _("Full"));
+ add_prompt(ua, _("Used"));
+ add_prompt(ua, _("Cleaning"));
+ if (strcmp(mr.VolStatus, _("Purged")) == 0) {
+ add_prompt(ua, _("Recycle"));
}
- add_prompt(ua, "Read-Only");
+ add_prompt(ua, _("Read-Only"));
if (do_prompt(ua, "", _("Choose new Volume Status"), ua->cmd, sizeof(mr.VolStatus)) < 0) {
return 1;
}
update_all_vols_from_pool(ua);
return 1;
default: /* Done or error */
- bsendmsg(ua, "Selection done.\n");
+ bsendmsg(ua, _("Selection done.\n"));
return 1;
}
}
jobstatus_to_ascii(jcr->FDJobStatus, fd_term_msg, sizeof(fd_term_msg));
if (jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG) {
jobstatus_to_ascii(jcr->SDJobStatus, sd_term_msg, sizeof(sd_term_msg));
- Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n"
+ Jmsg(jcr, msg_type, 0, _("Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" FileSet: %s\n"
" FD termination status: %s\n"
" SD termination status: %s\n"
" Termination: %s\n\n"),
+ VERSION,
+ LSMDATE,
edt,
jcr->jr.JobId,
jcr->jr.Job,
sd_term_msg,
term_msg);
} else {
- Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n"
+ Jmsg(jcr, msg_type, 0, _("Bacula %s (%s): %s\n"
" JobId: %d\n"
" Job: %s\n"
" FileSet: %s\n"
" Non-fatal FD errors: %d\n"
" FD termination status: %s\n"
" Termination: %s\n\n"),
+ VERSION,
+ LSMDATE,
edt,
jcr->jr.JobId,
jcr->jr.Job,
alist *verify_list = NULL;
if (rcode != R_DIRECTOR) {
- Dmsg1(50, _("I only authenticate directors, not %d\n"), rcode);
+ Dmsg1(50, "I only authenticate directors, not %d\n", rcode);
Emsg1(M_FATAL, 0, _("I only authenticate directors, not %d\n"), rcode);
return 0;
}
if (bs->msglen < 25 || bs->msglen > 200) {
- Dmsg2(50, _("Bad Hello command from Director at %s. Len=%d.\n"),
+ Dmsg2(50, "Bad Hello command from Director at %s. Len=%d.\n",
bs->who, bs->msglen);
Emsg2(M_FATAL, 0, _("Bad Hello command from Director at %s. Len=%d.\n"),
bs->who, bs->msglen);
if (sscanf(bs->msg, "Hello Director %s calling\n", dirname) != 1) {
free_pool_memory(dirname);
bs->msg[100] = 0;
- Dmsg2(50, _("Bad Hello command from Director at %s: %s\n"),
+ Dmsg2(50, "Bad Hello command from Director at %s: %s\n",
bs->who, bs->msg);
Emsg2(M_FATAL, 0, _("Bad Hello command from Director at %s: %s\n"),
bs->who, bs->msg);
}
UnlockRes();
if (!director) {
- Dmsg2(50, _("Connection from unknown Director %s at %s rejected.\n"),
+ Dmsg2(50, "Connection from unknown Director %s at %s rejected.\n",
dirname, bs->who);
Emsg2(M_FATAL, 0, _("Connection from unknown Director %s at %s rejected.\n"
"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for help.\n"),
if (tls_local_need >= BNET_TLS_OK && tls_remote_need >= BNET_TLS_OK) {
/* Engage TLS! Full Speed Ahead! */
if (!bnet_tls_server(director->tls_ctx, bs, verify_list)) {
- Emsg0(M_FATAL, 0, "TLS negotiation failed.\n");
+ Emsg0(M_FATAL, 0, _("TLS negotiation failed.\n"));
director = NULL;
goto auth_fatal;
}
if (tls_local_need >= BNET_TLS_OK && tls_remote_need >= BNET_TLS_OK) {
/* Engage TLS! Full Speed Ahead! */
if (!bnet_tls_client(me->tls_ctx, sd)) {
- Jmsg(jcr, M_FATAL, 0, "TLS negotiation failed.\n");
+ Jmsg(jcr, M_FATAL, 0, _("TLS negotiation failed.\n"));
auth_success = false;
goto auth_fatal;
}
len = bacl_get(jcr, acltype);
if (len < 0) {
- Jmsg1(jcr, M_WARNING, 0, "Error reading ACL of %s\n", jcr->last_fname);
+ Jmsg1(jcr, M_WARNING, 0, _("Error reading ACL of %s\n"), jcr->last_fname);
return true;
}
if (len == 0) {
static void usage()
{
- Pmsg0(-1, _(
+ Pmsg2(-1, _(
"Copyright (C) 2000-2005 Kern Sibbald\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n"
" -c <file> use <file> as configuration file\n"
" -dnn set debug level to nn\n"
" -u userid\n"
" -v verbose user messages\n"
" -? print this message.\n"
-"\n"));
+"\n"), VERSION, BDATE);
exit(1);
}
char *uid = NULL;
char *gid = NULL;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
init_stack_dump();
my_name_is(argc, argv, "bacula-fd");
- textdomain("bacula");
init_msg(NULL, NULL);
daemon_start_time = time(NULL);
res = NULL;
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
}
/* Common stuff again -- free the resource, recurse to next one */
if (res) {
/* Resources containing another resource */
case R_DIRECTOR:
if ((res = (URES *)GetResWithName(R_DIRECTOR, res_all.res_dir.hdr.name)) == NULL) {
- Emsg1(M_ABORT, 0, "Cannot find Director resource %s\n", res_all.res_dir.hdr.name);
+ Emsg1(M_ABORT, 0, _("Cannot find Director resource %s\n"), res_all.res_dir.hdr.name);
}
res->res_dir.tls_allowed_cns = res_all.res_dir.tls_allowed_cns;
break;
case R_CLIENT:
if ((res = (URES *)GetResWithName(R_CLIENT, res_all.res_dir.hdr.name)) == NULL) {
- Emsg1(M_ABORT, 0, "Cannot find Client resource %s\n", res_all.res_dir.hdr.name);
+ Emsg1(M_ABORT, 0, _("Cannot find Client resource %s\n"), res_all.res_dir.hdr.name);
}
res->res_client.messages = res_all.res_client.messages;
break;
if (sscanf(dir->msg, "cancel Job=%127s", Job) == 1) {
if (!(cjcr=get_jcr_by_full_name(Job))) {
- bnet_fsend(dir, "2901 Job %s not found.\n", Job);
+ bnet_fsend(dir, _("2901 Job %s not found.\n"), Job);
} else {
if (cjcr->store_bsock) {
P(cjcr->mutex);
Dmsg1(110, "setdebug_cmd: %s", dir->msg);
if (sscanf(dir->msg, "setdebug=%d trace=%d", &level, &trace_flag) != 2 || level < 0) {
pm_strcpy(jcr->errmsg, dir->msg);
- bnet_fsend(dir, "2991 Bad setdebug command: %s\n", jcr->errmsg);
+ bnet_fsend(dir, _("2991 Bad setdebug command: %s\n"), jcr->errmsg);
return 0;
}
debug_level = level;
if (sscanf(dir->msg, estimatecmd, &jcr->listing) != 1) {
pm_strcpy(jcr->errmsg, dir->msg);
Jmsg(jcr, M_FATAL, 0, _("Bad estimate command: %s"), jcr->errmsg);
- bnet_fsend(dir, "2992 Bad estimate command.\n");
+ bnet_fsend(dir, _("2992 Bad estimate command.\n"));
return 0;
}
make_estimate(jcr);
if (sscanf(dir->msg, runbefore, cmd) != 1) {
pm_strcpy(jcr->errmsg, dir->msg);
Jmsg1(jcr, M_FATAL, 0, _("Bad RunBeforeJob command: %s\n"), jcr->errmsg);
- bnet_fsend(dir, "2905 Bad RunBeforeJob command.\n");
+ bnet_fsend(dir, _("2905 Bad RunBeforeJob command.\n"));
free_memory(cmd);
return 0;
}
bnet_fsend(dir, OKRunBefore);
return 1;
} else {
- bnet_fsend(dir, "2905 Bad RunBeforeJob command.\n");
+ bnet_fsend(dir, _("2905 Bad RunBeforeJob command.\n"));
return 0;
}
}
if (sscanf(dir->msg, runafter, msg) != 1) {
pm_strcpy(jcr->errmsg, dir->msg);
Jmsg1(jcr, M_FATAL, 0, _("Bad RunAfter command: %s\n"), jcr->errmsg);
- bnet_fsend(dir, "2905 Bad RunAfterJob command.\n");
+ bnet_fsend(dir, _("2905 Bad RunAfterJob command.\n"));
free_memory(msg);
return 0;
}
regerror(rc, preg, prbuf, sizeof(prbuf));
regfree(preg);
free(preg);
- Jmsg(jcr, M_FATAL, 0, "REGEX %s compile error. ERR=%s\n", item, prbuf);
+ Jmsg(jcr, M_FATAL, 0, _("REGEX %s compile error. ERR=%s\n"), item, prbuf);
state = state_error;
break;
}
state = state_options;
break;
default:
- Jmsg(jcr, M_FATAL, 0, "Invalid FileSet command: %s\n", item);
+ Jmsg(jcr, M_FATAL, 0, _("Invalid FileSet command: %s\n"), item);
state = state_error;
break;
}
Dmsg1(200, "Compression level=%d\n", fo->GZIP_level);
break;
default:
- Emsg1(M_ERROR, 0, "Unknown include/exclude option: %c\n", *p);
+ Emsg1(M_ERROR, 0, _("Unknown include/exclude option: %c\n"), *p);
break;
}
}
jcr->incremental = 1; /* set incremental or decremental backup */
jcr->mtime = (time_t)since_time; /* set since time */
} else {
- Jmsg1(jcr, M_FATAL, 0, "Unknown backup level: %s\n", level);
+ Jmsg1(jcr, M_FATAL, 0, _("Unknown backup level: %s\n"), level);
free_memory(level);
return 0;
}
&jcr->StartFile, &jcr->EndFile,
&jcr->StartBlock, &jcr->EndBlock) != 7) {
pm_strcpy(jcr->errmsg, dir->msg);
- Jmsg(jcr, M_FATAL, 0, "Bad session command: %s", jcr->errmsg);
+ Jmsg(jcr, M_FATAL, 0, _("Bad session command: %s"), jcr->errmsg);
return 0;
}
jcr->JobType = JT_VERIFY;
if (sscanf(dir->msg, verifycmd, level) != 1) {
- bnet_fsend(dir, "2994 Bad verify command: %s\n", dir->msg);
+ bnet_fsend(dir, _("2994 Bad verify command: %s\n"), dir->msg);
return 0;
}
} else if (strcasecmp(level, "disk_to_catalog") == 0) {
jcr->JobLevel = L_VERIFY_DISK_TO_CATALOG;
} else {
- bnet_fsend(dir, "2994 Bad verify level: %s\n", dir->msg);
+ bnet_fsend(dir, _("2994 Bad verify level: %s\n"), dir->msg);
return 0;
}
do_verify(jcr);
break;
default:
- bnet_fsend(dir, "2994 Bad verify level: %s\n", dir->msg);
+ bnet_fsend(dir, _("2994 Bad verify level: %s\n"), dir->msg);
return 0;
}
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
- bstrncpy(errmsg, "Job pointer not found.", sizeof(errmsg));
+ bstrncpy(errmsg, _("Job pointer not found."), sizeof(errmsg));
goto bail_out;
}
for (i=0; getvars[i].name; i++) {
buf[0] = jcr->JobStatus;
return Py_BuildValue(getvars[i].fmt, buf);
}
- bsnprintf(errmsg, sizeof(errmsg), "Attribute %s not found.", attrname);
+ bsnprintf(errmsg, sizeof(errmsg), _("Attribute %s not found."), attrname);
bail_out:
PyErr_SetString(PyExc_AttributeError, errmsg);
return NULL;
Dmsg2(100, "In job_setattr=%s val=%p.\n", attrname, value);
if (value == NULL) { /* Cannot delete variables */
- bsnprintf(buf, sizeof(buf), "Cannot delete attribute %s", attrname);
+ bsnprintf(buf, sizeof(buf), _("Cannot delete attribute %s"), attrname);
errmsg = buf;
goto bail_out;
}
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
- errmsg = "Job pointer not found.";
+ errmsg = _("Job pointer not found.");
goto bail_out;
}
}
}
if (!found) {
- bsnprintf(buf, sizeof(buf), "Cannot find attribute %s", attrname);
+ bsnprintf(buf, sizeof(buf), _("Cannot find attribute %s"), attrname);
errmsg = buf;
goto bail_out;
}
/* Get argument value ***FIXME*** handle other formats */
if (setvars[i].fmt != NULL) {
if (!PyArg_Parse(value, setvars[i].fmt, &strval)) {
- PyErr_SetString(PyExc_TypeError, "Read-only attribute");
+ PyErr_SetString(PyExc_TypeError, _("Read-only attribute"));
return -1;
}
}
Jmsg(jcr, M_INFO, 0, "%s", strval);
return 0;
}
- bsnprintf(buf, sizeof(buf), "Cannot find attribute %s", attrname);
+ bsnprintf(buf, sizeof(buf), _("Cannot find attribute %s"), attrname);
errmsg = buf;
bail_out:
PyErr_SetString(PyExc_AttributeError, errmsg);
}
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
- PyErr_SetString(PyExc_AttributeError, "Job pointer not found.");
+ PyErr_SetString(PyExc_AttributeError, _("Job pointer not found."));
return NULL;
}
Py_XDECREF((PyObject *)jcr->Python_events); /* release any old events Object */
if (extract) {
if (prev_stream != stream) {
if (bopen_rsrc(&altbfd, jcr->last_fname, O_WRONLY | O_TRUNC | O_BINARY, 0) < 0) {
- Jmsg(jcr, M_ERROR, 0, _(" Cannot open resource fork for %s\n"), jcr->last_fname);
+ Jmsg(jcr, M_ERROR, 0, _(" Cannot open resource fork for %s.\n"), jcr->last_fname);
extract = false;
continue;
}
pm_strcpy(jcr->acl_text, sd->msg);
Dmsg2(400, "Restoring ACL type 0x%2x <%s>\n", BACL_TYPE_ACCESS, jcr->acl_text);
if (bacl_set(jcr, BACL_TYPE_ACCESS) != 0) {
- Jmsg1(jcr, M_WARNING, 0, "Can't restore ACL of %s\n", jcr->last_fname);
+ Jmsg1(jcr, M_WARNING, 0, _("Can't restore ACL of %s\n"), jcr->last_fname);
}
#else
non_support_acl++;
pm_strcpy(jcr->acl_text, sd->msg);
Dmsg2(400, "Restoring ACL type 0x%2x <%s>\n", BACL_TYPE_DEFAULT, jcr->acl_text);
if (bacl_set(jcr, BACL_TYPE_DEFAULT) != 0) {
- Jmsg1(jcr, M_WARNING, 0, "Can't restore default ACL of %s\n", jcr->last_fname);
+ Jmsg1(jcr, M_WARNING, 0, _("Can't restore default ACL of %s\n"), jcr->last_fname);
}
#else
non_support_acl++;
static const char *zlib_strerror(int stat)
{
if (stat >= 0) {
- return "None";
+ return _("None");
}
switch (stat) {
case Z_ERRNO:
- return "Zlib errno";
+ return _("Zlib errno");
case Z_STREAM_ERROR:
- return "Zlib stream error";
+ return _("Zlib stream error");
case Z_DATA_ERROR:
- return "Zlib data error";
+ return _("Zlib data error");
case Z_MEM_ERROR:
- return "Zlib memory error";
+ return _("Zlib memory error");
case Z_BUF_ERROR:
- return "Zlib buffer error";
+ return _("Zlib buffer error");
case Z_VERSION_ERROR:
- return "Zlib version error";
+ return _("Zlib version error");
default:
- return "*none*";
+ return _("*none*");
}
}
#endif
msg = (char *)get_pool_memory(PM_MESSAGE);
found = 0;
- len = Mmsg(msg, "%s Version: " VERSION " (" BDATE ")" VSS " %s %s %s\n",
- my_name, HOST_OS, DISTNAME, DISTVER);
+ len = Mmsg(msg, _("%s Version: %s (%s) %s %s %s %s\n"),
+ my_name, VERSION, BDATE, VSS, HOST_OS, DISTNAME, DISTVER);
sendit(msg, len, arg);
bstrftime_nc(dt, sizeof(dt), daemon_start_time);
len = Mmsg(msg, _("Daemon started %s, %d Job%s run since started.\n"),
}
switch (je->JobStatus) {
case JS_Created:
- termstat = "Created";
+ termstat = _("Created");
break;
case JS_FatalError:
case JS_ErrorTerminated:
- termstat = "Error";
+ termstat = _("Error");
break;
case JS_Differences:
- termstat = "Diffs";
+ termstat = _("Diffs");
break;
case JS_Canceled:
- termstat = "Cancel";
+ termstat = _("Cancel");
break;
case JS_Terminated:
- termstat = "OK";
+ termstat = _("OK");
break;
default:
- termstat = "Other";
+ termstat = _("Other");
break;
}
bstrncpy(JobName, je->Job, sizeof(JobName));
dt, JobName);
sendit(buf, strlen(buf), arg);
}
- sendit("====\n", 5, arg);
+ sendit(_("====\n"), 5, arg);
unlock_last_jobs_list();
}
if (sscanf(dir->msg, qstatus, time) != 1) {
pm_strcpy(&jcr->errmsg, dir->msg);
Jmsg1(jcr, M_FATAL, 0, _("Bad .status command: %s\n"), jcr->errmsg);
- bnet_fsend(dir, "2900 Bad .status command, missing argument.\n");
+ bnet_fsend(dir, _("2900 Bad .status command, missing argument.\n"));
bnet_sig(dir, BNET_EOD);
free_memory(time);
return 0;
else {
pm_strcpy(&jcr->errmsg, dir->msg);
Jmsg1(jcr, M_FATAL, 0, _("Bad .status command: %s\n"), jcr->errmsg);
- bnet_fsend(dir, "2900 Bad .status command, wrong argument.\n");
+ bnet_fsend(dir, _("2900 Bad .status command, wrong argument.\n"));
bnet_sig(dir, BNET_EOD);
free_memory(time);
return 0;
if (bopen_rsrc(&bfd, ff_pkt->fname, O_RDONLY | O_BINARY, 0) < 0) {
ff_pkt->ff_errno = errno;
berrno be;
- Jmsg(jcr, M_NOTSAVED, -1, _(" Cannot open resource fork for %s: ERR=%s\n"),
+ Jmsg(jcr, M_NOTSAVED, -1, _(" Cannot open resource fork for %s: ERR=%s.\n"),
ff_pkt->fname, be.strerror());
jcr->Errors++;
if (is_bopen(&ff_pkt->bfd)) {
switch (stream) {
case STREAM_GZIP_DATA:
- return "GZIP data";
+ return _("GZIP data");
case STREAM_SPARSE_GZIP_DATA:
- return "GZIP sparse data";
+ return _("GZIP sparse data");
case STREAM_WIN32_DATA:
- return "Win32 data";
+ return _("Win32 data");
case STREAM_WIN32_GZIP_DATA:
- return "Win32 GZIP data";
+ return _("Win32 GZIP data");
case STREAM_UNIX_ATTRIBUTES:
- return "File attributes";
+ return _("File attributes");
case STREAM_FILE_DATA:
- return "File data";
+ return _("File data");
case STREAM_MD5_SIGNATURE:
- return "MD5 signature";
+ return _("MD5 signature");
case STREAM_UNIX_ATTRIBUTES_EX:
- return "Extended attributes";
+ return _("Extended attributes");
case STREAM_SPARSE_DATA:
- return "Sparse data";
+ return _("Sparse data");
case STREAM_PROGRAM_NAMES:
- return "Program names";
+ return _("Program names");
case STREAM_PROGRAM_DATA:
- return "Program data";
+ return _("Program data");
case STREAM_SHA1_SIGNATURE:
- return "SHA1 signature";
+ return _("SHA1 signature");
case STREAM_MACOS_FORK_DATA:
- return "HFS+ resource fork";
+ return _("HFS+ resource fork");
case STREAM_HFSPLUS_ATTRIBUTES:
- return "HFS+ Finder Info";
+ return _("HFS+ Finder Info");
default:
sprintf(buf, "%d", stream);
return (const char *)buf;
}
Dmsg1(50, "Create file: %s\n", attr->ofname);
if (is_bopen(bfd)) {
- Jmsg1(jcr, M_ERROR, 0, "bpkt already open fid=%d\n", bfd->fid);
+ Jmsg1(jcr, M_ERROR, 0, _("bpkt already open fid=%d\n"), bfd->fid);
bclose(bfd);
}
/*
tid = NULL;
}
if (is_bopen(bfd)) {
- Jmsg1(jcr, M_ERROR, 0, "bpkt already open fid=%d\n", bfd->fid);
+ Jmsg1(jcr, M_ERROR, 0, _("bpkt already open fid=%d\n"), bfd->fid);
}
if ((bopen(bfd, attr->ofname, mode, 0)) < 0) {
berrno be;
*/
if (!is_portable_backup(bfd)) {
if (is_bopen(bfd)) {
- Jmsg1(jcr, M_ERROR, 0, "bpkt already open fid=%d\n", bfd->fid);
+ Jmsg1(jcr, M_ERROR, 0, _("bpkt already open fid=%d\n"), bfd->fid);
}
if ((bopen(bfd, attr->ofname, O_WRONLY|O_BINARY, 0)) < 0) {
berrno be;
if (lerror != ERROR_SUCCESS) {
if (!ignore_errors) {
char buf[200];
- strcpy(buf, "AdjustTokenPrivileges set ");
+ strcpy(buf, _("AdjustTokenPrivileges set "));
bstrncat(buf, name, sizeof(buf));
win_error(jcr, buf, lerror);
}
Dmsg1(200, "Compression level=%d\n", inc->level);
break;
default:
- Emsg1(M_ERROR, 0, "Unknown include/exclude option: %c\n", *rp);
+ Emsg1(M_ERROR, 0, _("Unknown include/exclude option: %c\n"), *rp);
break;
}
}
cwd->desc = open(".", O_RDONLY);
if (cwd->desc < 0) {
berrno be;
- Emsg1(M_ERROR, 0, "Cannot open current directory: %s\n", be.strerror());
+ Emsg1(M_ERROR, 0, _("Cannot open current directory: %s\n"), be.strerror());
return 1;
}
have_working_fchdir = 0;
} else {
berrno be;
- Emsg1(M_ERROR, 0, "Current directory: %s\n", be.strerror());
+ Emsg1(M_ERROR, 0, _("Current directory: %s\n"), be.strerror());
close(cwd->desc);
cwd->desc = -1;
return 1;
cwd->name = (POOLMEM *)getcwd(buf, sizeof_pool_memory(buf));
if (cwd->name == NULL) {
berrno be;
- Emsg1(M_ERROR, 0, "Cannot get current directory: %s\n", be.strerror());
+ Emsg1(M_ERROR, 0, _("Cannot get current directory: %s\n"), be.strerror());
free_pool_memory(buf);
return 1;
}
int fail = 0;
if (cwd->desc >= 0) {
if (fchdir(cwd->desc)) {
- berrno be;
- Emsg4(M_ERROR, 0, "Cannot return to %s%s%s: %s\n",
- (dest ? dest : "saved working directory"),
- (from ? " from " : ""),
- (from ? from : ""), be.strerror());
- fail = 1;
+ berrno be;
+ if (from) {
+ if (dest) {
+ Emsg3(M_ERROR, 0, _("Cannot return to %s from %s: %s\n"),
+ dest, from, be.strerror());
+ }
+ else {
+ Emsg2(M_ERROR, 0, _("Cannot return to saved working directory from %s: %s\n"),
+ from, be.strerror());
+ }
+ }
+ else {
+ if (dest) {
+ Emsg2(M_ERROR, 0, _("Cannot return to %s: %s\n"),
+ dest, be.strerror());
+ }
+ else {
+ Emsg1(M_ERROR, 0, _("Cannot return to saved working directory: %s\n"),
+ be.strerror());
+ }
+ }
+ fail = 1;
}
} else if (chdir(cwd->name) < 0) {
berrno be;
{
fprintf(stderr, _(
"Copyright (C) 2002-2005 Kern Sibbald\n"
-"\nVersion: " VERSION " (" BDATE ") %s %s %s\n\n"
+"\nVersion: %s (%s) %s %s %s\n\n"
"Usage: gnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n"
" -c <file> set configuration file to file\n"
" -dnn set debug level to nn\n"
" -s no signals\n"
" -t test - read configuration and exit\n"
" -? print this message.\n"
-"\n"), HOST_OS, DISTNAME, DISTVER);
+"\n"), VERSION, BDATE, HOST_OS, DISTNAME, DISTVER);
exit(1);
}
const char *gargv[2] = {"gnome-console", NULL};
CONFONTRES *con_font;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
init_stack_dump();
my_name_is(argc, argv, "gnome-console");
init_msg(NULL, NULL);
/* Initialize Console TLS context */
if (cons && (cons->tls_enable || cons->tls_require)) {
/* Generate passphrase prompt */
- bsnprintf(buf, sizeof(buf), "Passphrase for Console \"%s\" TLS private key: ", cons->hdr.name);
+ bsnprintf(buf, sizeof(buf), _("Passphrase for Console \"%s\" TLS private key: "), cons->hdr.name);
/* Initialize TLS context:
* Args: CA certfile, CA certdir, Certfile, Keyfile,
/* Initialize Director TLS context */
if (dir->tls_enable || dir->tls_require) {
/* Generate passphrase prompt */
- bsnprintf(buf, sizeof(buf), "Passphrase for Director \"%s\" TLS private key: ", dir->hdr.name);
+ bsnprintf(buf, sizeof(buf), _("Passphrase for Director \"%s\" TLS private key: "), dir->hdr.name);
/* Initialize TLS context:
* Args: CA certfile, CA certdir, Certfile, Keyfile,
}
- UA_sock = bnet_connect(NULL, 5, 15, "Director daemon", dir->address,
+ UA_sock = bnet_connect(NULL, 5, 15, _("Director daemon"), dir->address,
NULL, dir->DIRport, 0);
if (UA_sock == NULL) {
return 0;
return 0;
}
- set_status(" Initializing ...");
+ set_status(_(" Initializing ..."));
bnet_fsend(UA_sock, "autodisplay on");
fill_combo(restore_dialog, "combo_restore_pool", pool_list);
fill_combo(restore_dialog, "combo_restore_storage", storage_list);
- set_status(" Connected");
+ set_status(_(" Connected"));
return 1;
}
void set_status_ready()
{
- gtk_label_set_text(GTK_LABEL(status1), " Ready");
+ gtk_label_set_text(GTK_LABEL(status1), _(" Ready"));
ready = true;
// set_scroll_bar_to_end();
}
bool recurse = true;
if (res == NULL) {
- printf("No record for %d %s\n", type, res_to_str(type));
+ printf(_("No record for %d %s\n"), type, res_to_str(type));
return;
}
if (type < 0) { /* no recursion */
}
switch (type) {
case R_DIRECTOR:
- printf("Director: name=%s address=%s DIRport=%d\n", reshdr->name,
+ printf(_("Director: name=%s address=%s DIRport=%d\n"), reshdr->name,
res->dir_res.address, res->dir_res.DIRport);
break;
case R_CONSOLE:
- printf("Console: name=%s\n", reshdr->name);
+ printf(_("Console: name=%s\n"), reshdr->name);
break;
case R_CONSOLE_FONT:
- printf("ConsoleFont: name=%s font face=%s\n",
+ printf(_("ConsoleFont: name=%s font face=%s\n"),
reshdr->name, NPRT(res->con_font.fontface));
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
}
if (recurse && res->dir_res.hdr.next) {
dump_resource(type, res->dir_res.hdr.next, sendit, sock);
}
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
}
/* Common stuff again -- free the resource, recurse to next one */
free(res);
for (i=0; items[i].name; i++) {
if (items[i].flags & ITEM_REQUIRED) {
if (!bit_is_set(i, res_all.dir_res.hdr.item_present)) {
- Emsg2(M_ABORT, 0, "%s item is required in %s resource, but not found.\n",
+ Emsg2(M_ABORT, 0, _("%s item is required in %s resource, but not found.\n"),
items[i].name, resources[rindex]);
}
}
break;
default:
- Emsg1(M_ERROR, 0, "Unknown resource type %d\n", type);
+ Emsg1(M_ERROR, 0, _("Unknown resource type %d\n"), type);
error = 1;
break;
}
size = sizeof(CONRES);
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
error = 1;
break;
}
static GnomeUIInfo file1_menu_uiinfo[] =
{
{
- GNOME_APP_UI_ITEM, N_("_Connect"),
- N_("Connect to Director"),
+ GNOME_APP_UI_ITEM, _("_Connect"),
+ _("Connect to Director"),
(gpointer) on_connect_activate, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
- GNOME_APP_UI_ITEM, N_("_Disconnect"),
- N_("Disconnect from Director"),
+ GNOME_APP_UI_ITEM, _("_Disconnect"),
+ _("Disconnect from Director"),
(gpointer) on_disconnect_activate, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
static GnomeUIInfo item1_menu_uiinfo[] =
{
{
- GNOME_APP_UI_ITEM, N_("_Display Messages"),
+ GNOME_APP_UI_ITEM, _("_Display Messages"),
NULL,
(gpointer) on_msgs_activate, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
static GnomeUIInfo menubar1_uiinfo[] =
{
{
- GNOME_APP_UI_SUBTREE, N_("_File"),
+ GNOME_APP_UI_SUBTREE, _("_File"),
NULL,
file1_menu_uiinfo, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
- GNOME_APP_UI_SUBTREE, N_("_Edit"),
+ GNOME_APP_UI_SUBTREE,_("_Edit"),
NULL,
edit1_menu_uiinfo, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
- GNOME_APP_UI_SUBTREE, N_("_View"),
- N_("Display Messages"),
+ GNOME_APP_UI_SUBTREE, _("_View"),
+ _("Display Messages"),
item1_menu_uiinfo, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
- GNOME_APP_UI_SUBTREE, N_("_Settings"),
+ GNOME_APP_UI_SUBTREE, _("_Settings"),
NULL,
settings1_menu_uiinfo, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
- GNOME_APP_UI_SUBTREE, N_("_Help"),
+ GNOME_APP_UI_SUBTREE, _("_Help"),
NULL,
help1_menu_uiinfo, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
gtk_widget_show (button11);
gtk_box_pack_start (GTK_BOX (hbox21), button11, FALSE, FALSE, 0);
- label46 = gtk_label_new (_(" "));
+ label46 = gtk_label_new (" ");
gtk_widget_show (label46);
gtk_box_pack_start (GTK_BOX (hbox21), label46, FALSE, FALSE, 0);
gtk_misc_set_padding (GTK_MISC (label46), 2, 0);
gtk_widget_show (entry_type);
gtk_editable_set_editable (GTK_EDITABLE (entry_type), FALSE);
- label114 = gtk_label_new (_(" "));
+ label114 = gtk_label_new (" ");
gtk_widget_show (label114);
gtk_box_pack_start (GTK_BOX (hbox28), label114, FALSE, FALSE, 30);
gtk_label_set_justify (GTK_LABEL (label114), GTK_JUSTIFY_LEFT);
gtk_widget_show (entry_client);
gtk_editable_set_editable (GTK_EDITABLE (entry_client), FALSE);
- label67 = gtk_label_new (_(" "));
+ label67 = gtk_label_new (" ");
gtk_widget_show (label67);
gtk_box_pack_start (GTK_BOX (hbox30), label67, FALSE, FALSE, 123);
gtk_widget_show (entry_level);
gtk_editable_set_editable (GTK_EDITABLE (entry_level), FALSE);
- label71 = gtk_label_new (_(" "));
+ label71 = gtk_label_new (" ");
gtk_widget_show (label71);
gtk_box_pack_start (GTK_BOX (hbox32), label71, FALSE, FALSE, 100);
gtk_widget_show (entry_pool);
gtk_editable_set_editable (GTK_EDITABLE (entry_pool), FALSE);
- label73 = gtk_label_new (_(" "));
+ label73 = gtk_label_new (" ");
gtk_widget_show (label73);
gtk_box_pack_start (GTK_BOX (hbox33), label73, FALSE, FALSE, 120);
gtk_widget_show (entry_storage);
gtk_editable_set_editable (GTK_EDITABLE (entry_storage), FALSE);
- label97 = gtk_label_new (_(" "));
+ label97 = gtk_label_new (" ");
gtk_widget_show (label97);
gtk_box_pack_start (GTK_BOX (hbox39), label97, FALSE, FALSE, 120);
gtk_widget_show (entry_messages);
gtk_editable_set_editable (GTK_EDITABLE (entry_messages), FALSE);
- label99 = gtk_label_new (_(" "));
+ label99 = gtk_label_new (" ");
gtk_widget_show (label99);
gtk_box_pack_start (GTK_BOX (hbox40), label99, FALSE, FALSE, 120);
gtk_widget_show (entry_where);
gtk_box_pack_start (GTK_BOX (hbox34), entry_where, TRUE, TRUE, 0);
- label78 = gtk_label_new (_(" "));
+ label78 = gtk_label_new (" ");
gtk_widget_show (label78);
gtk_box_pack_start (GTK_BOX (hbox34), label78, FALSE, FALSE, 120);
gtk_widget_show (entry_when);
gtk_box_pack_start (GTK_BOX (hbox41), entry_when, TRUE, TRUE, 0);
- label101 = gtk_label_new (_(" "));
+ label101 = gtk_label_new (" ");
gtk_widget_show (label101);
gtk_box_pack_start (GTK_BOX (hbox41), label101, FALSE, FALSE, 120);
gtk_widget_show (entry28);
gtk_box_pack_start (GTK_BOX (hbox60), entry28, TRUE, TRUE, 0);
- label154 = gtk_label_new (_(" "));
+ label154 = gtk_label_new (" ");
gtk_widget_show (label154);
gtk_box_pack_start (GTK_BOX (hbox60), label154, FALSE, FALSE, 36);
- label84 = gtk_label_new (_(" "));
+ label84 = gtk_label_new (" ");
gtk_widget_show (label84);
gtk_box_pack_start (GTK_BOX (vbox11), label84, FALSE, FALSE, 0);
gtk_widget_set_size_request (label84, 12, 19);
static GnomeUIInfo file2_menu_uiinfo[] =
{
- GNOMEUIINFO_MENU_NEW_ITEM (N_("_New"), NULL, on_new1_activate, NULL),
+ GNOMEUIINFO_MENU_NEW_ITEM (_("_New"), NULL, on_new1_activate, NULL),
GNOMEUIINFO_MENU_OPEN_ITEM (on_open1_activate, NULL),
GNOMEUIINFO_MENU_SAVE_ITEM (on_save1_activate, NULL),
GNOMEUIINFO_MENU_SAVE_AS_ITEM (on_save_as1_activate, NULL),
gtk_widget_show (restore_select_cancel);
gtk_box_pack_start (GTK_BOX (hbox44), restore_select_cancel, FALSE, TRUE, 0);
- label1001 = gtk_label_new (_(" "));
+ label1001 = gtk_label_new (" ");
gtk_widget_show (label1001);
gtk_box_pack_start (GTK_BOX (hbox44), label1001, FALSE, FALSE, 8);
gtk_label_set_justify (GTK_LABEL (label1001), GTK_JUSTIFY_LEFT);
gtk_box_pack_start (GTK_BOX (hbox48), label_slot, TRUE, TRUE, 0);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (label_slot), TRUE);
- label113 = gtk_label_new (_(" "));
+ label113 = gtk_label_new (" ");
gtk_widget_show (label113);
gtk_box_pack_start (GTK_BOX (vbox16), label113, FALSE, FALSE, 0);
gtk_widget_show (restore_client_entry);
gtk_editable_set_editable (GTK_EDITABLE (restore_client_entry), FALSE);
- label127 = gtk_label_new (_(" "));
+ label127 = gtk_label_new (" ");
gtk_widget_show (label127);
gtk_box_pack_start (GTK_BOX (hbox52), label127, FALSE, FALSE, 25);
gtk_widget_show (restore_fileset_entry);
gtk_editable_set_editable (GTK_EDITABLE (restore_fileset_entry), FALSE);
- label130 = gtk_label_new (_(" "));
+ label130 = gtk_label_new (" ");
gtk_widget_show (label130);
gtk_box_pack_start (GTK_BOX (hbox53), label130, FALSE, FALSE, 23);
gtk_widget_show (restore_pool_entry);
gtk_editable_set_editable (GTK_EDITABLE (restore_pool_entry), FALSE);
- label138 = gtk_label_new (_(" "));
+ label138 = gtk_label_new (" ");
gtk_widget_show (label138);
gtk_box_pack_start (GTK_BOX (hbox55), label138, FALSE, FALSE, 21);
gtk_widget_show (restore_storage_entry);
gtk_editable_set_editable (GTK_EDITABLE (restore_storage_entry), FALSE);
- label142 = gtk_label_new (_(" "));
+ label142 = gtk_label_new (" ");
gtk_widget_show (label142);
gtk_box_pack_start (GTK_BOX (hbox56), label142, FALSE, FALSE, 21);
gtk_widget_show (restore_before_entry);
gtk_box_pack_start (GTK_BOX (hbox59), restore_before_entry, TRUE, TRUE, 0);
- label149 = gtk_label_new (_(" "));
+ label149 = gtk_label_new (" ");
gtk_widget_show (label149);
gtk_box_pack_start (GTK_BOX (hbox59), label149, FALSE, FALSE, 53);
- label150 = gtk_label_new (_(" "));
+ label150 = gtk_label_new (" ");
gtk_widget_show (label150);
gtk_box_pack_start (GTK_BOX (vbox17), label150, FALSE, FALSE, 0);
*/
void select_restore_setup()
{
- const gchar *title[NUM_COLUMNS] = {"Mark", "File", "Mode", "User", "Group", "Size", "Date"};
+ const gchar *title[NUM_COLUMNS] = {_("Mark"), _("File"), _("Mode"), _("User"), _("Group"), _("Size"), _("Date")};
restore_file_selection = create_restore_file_selection();
if (!restore_file_selection) {
found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget),
widget_name);
if (!found_widget)
- g_warning ("Widget not found: %s", widget_name);
+ g_warning (_("Widget not found: %s"), widget_name);
return found_widget;
}
pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
if (!pixbuf)
{
- fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
+ fprintf (stderr, _("Failed to load pixbuf file: %s: %s\n"),
pathname, error->message);
g_error_free (error);
}
} else if (iaddr->get_type() != type) {
*errstr = (char *)malloc(1024);
bsnprintf(*errstr, 1023,
- "the old style addresses cannot be mixed with new style");
+ _("the old style addresses cannot be mixed with new style"));
return 0;
}
}
port = s->s_port;
} else {
*errstr = (char *)malloc(1024);
- bsnprintf(*errstr, 1023, "can't resolve service(%s)", port_str);
+ bsnprintf(*errstr, 1023, _("can't resolve service(%s)"), port_str);
return 0;
}
}
hostaddrs = bnet_host2ipaddrs(hostname_str, family, &myerrstr);
if (!hostaddrs) {
*errstr = (char *)malloc(1024);
- bsnprintf(*errstr, 1023, "can't resolve hostname(%s) %s", hostname_str,
+ bsnprintf(*errstr, 1023, _("can't resolve hostname(%s) %s"), hostname_str,
myerrstr);
return 0;
}
if (berrno_ & b_errno_exit) {
stat = (berrno_ & ~b_errno_exit); /* remove bit */
if (stat == 0) {
- return "Child exited normally."; /* this really shouldn't happen */
+ return _("Child exited normally."); /* this really shouldn't happen */
} else {
/* Maybe an execvp failure */
if (stat >= 200) {
if (stat < 200 + num_execvp_errors) {
berrno_ = execvp_errors[stat - 200];
} else {
- return "Unknown error during program execvp";
+ return _("Unknown error during program execvp");
}
} else {
- Mmsg(&buf_, "Child exited with code %d", stat);
+ Mmsg(&buf_, _("Child exited with code %d"), stat);
return buf_;
}
/* If we drop out here, berrno_ is set to an execvp errno */
}
if (berrno_ & b_errno_signal) {
stat = (berrno_ & ~b_errno_signal); /* remove bit */
- Mmsg(&buf_, "Child died from signal %d: %s", stat, get_signal_name(stat));
+ Mmsg(&buf_, _("Child died from signal %d: %s"), stat, get_signal_name(stat));
return buf_;
}
#endif
case BNET_STATUS:
/* *****FIXME***** Implement BNET_STATUS */
Dmsg0(msglvl, "Got BNET_STATUS\n");
- bnet_fsend(sock, "Status OK\n");
+ bnet_fsend(sock, _("Status OK\n"));
bnet_sig(sock, BNET_EOD);
break;
default:
- Emsg1(M_ERROR, 0, "bget_msg: unknown signal %d\n", sock->msglen);
+ Emsg1(M_ERROR, 0, _("bget_msg: unknown signal %d\n"), sock->msglen);
break;
}
}
msg = be.strerror();
break;
case NETDB_SUCCESS:
- msg = "No problem.";
+ msg = _("No problem.");
break;
case HOST_NOT_FOUND:
- msg = "Authoritative answer for host not found.";
+ msg = _("Authoritative answer for host not found.");
break;
case TRY_AGAIN:
- msg = "Non-authoritative for host not found, or ServerFail.";
+ msg = _("Non-authoritative for host not found, or ServerFail.");
break;
case NO_RECOVERY:
- msg = "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP.";
+ msg = _("Non-recoverable errors, FORMERR, REFUSED, or NOTIMP.");
break;
case NO_DATA:
- msg = "Valid name, no data record of resquested type.";
+ msg = _("Valid name, no data record of resquested type.");
break;
default:
- msg = "Unknown error.";
+ msg = _("Unknown error.");
}
return msg;
}
*/
if ((addr_list = bnet_host2ipaddrs(host, 0, &errstr)) == NULL) {
/* Note errstr is not malloc'ed */
- Qmsg2(jcr, M_ERROR, 0, "gethostbyname() for host \"%s\" failed: ERR=%s\n",
+ Qmsg2(jcr, M_ERROR, 0, _("gethostbyname() for host \"%s\" failed: ERR=%s\n"),
host, errstr);
Dmsg2(100, "bnet_host2ipaddrs() for host %s failed: ERR=%s\n",
host, errstr);
berrno be;
save_errno = errno;
*fatal = 1;
- Pmsg3(000, "Socket open error. proto=%d port=%d. ERR=%s\n",
+ Pmsg3(000, _("Socket open error. proto=%d port=%d. ERR=%s\n"),
ipaddr->get_family(), ipaddr->get_port_host_order(), be.strerror());
continue;
}
if (i < 0) {
i = 60 * 5; /* complain again in 5 minutes */
if (verbose)
- Qmsg4(jcr, M_WARNING, 0, "Could not connect to %s on %s:%d. ERR=%s\n"
-"Retrying ...\n", name, host, port, be.strerror());
+ Qmsg4(jcr, M_WARNING, 0, _(
+ "Could not connect to %s on %s:%d. ERR=%s\n"
+ "Retrying ...\n"), name, host, port, be.strerror());
}
bmicrosleep(retry_interval, 0);
max_retry_time -= retry_interval;
/* Get current flags */
if((oflags = fcntl(bsock->fd, F_GETFL, 0)) < 0) {
berrno be;
- Emsg1(M_ABORT, 0, "fcntl F_GETFL error. ERR=%s\n", be.strerror());
+ Emsg1(M_ABORT, 0, _("fcntl F_GETFL error. ERR=%s\n"), be.strerror());
}
/* Set O_NONBLOCK flag */
if((fcntl(bsock->fd, F_SETFL, oflags|O_NONBLOCK)) < 0) {
berrno be;
- Emsg1(M_ABORT, 0, "fcntl F_SETFL error. ERR=%s\n", be.strerror());
+ Emsg1(M_ABORT, 0, _("fcntl F_SETFL error. ERR=%s\n"), be.strerror());
}
bsock->blocking = 0;
/* Get current flags */
if((oflags = fcntl(bsock->fd, F_GETFL, 0)) < 0) {
berrno be;
- Emsg1(M_ABORT, 0, "fcntl F_GETFL error. ERR=%s\n", be.strerror());
+ Emsg1(M_ABORT, 0, _("fcntl F_GETFL error. ERR=%s\n"), be.strerror());
}
/* Set O_NONBLOCK flag */
if((fcntl(bsock->fd, F_SETFL, oflags & ~O_NONBLOCK)) < 0) {
berrno be;
- Emsg1(M_ABORT, 0, "fcntl F_SETFL error. ERR=%s\n", be.strerror());
+ Emsg1(M_ABORT, 0, _("fcntl F_SETFL error. ERR=%s\n"), be.strerror());
}
bsock->blocking = 1;
#ifndef WIN32
if((fcntl(bsock->fd, F_SETFL, flags)) < 0) {
berrno be;
- Emsg1(M_ABORT, 0, "fcntl F_SETFL error. ERR=%s\n", be.strerror());
+ Emsg1(M_ABORT, 0, _("fcntl F_SETFL error. ERR=%s\n"), be.strerror());
}
bsock->blocking = (flags & O_NONBLOCK);
case BNET_PROMPT:
return "BNET_PROMPT";
default:
- sprintf(buf, "Unknown sig %d", (int)bs->msglen);
+ sprintf(buf, _("Unknown sig %d"), (int)bs->msglen);
return buf;
}
}
berrno be;
if (tlog <= 0) {
tlog = 2 * 60; /* Complain every 2 minutes */
- Emsg2(M_WARNING, 0, _("Cannot bind port %d: ERR=%s. Retrying ...\n"),
+ Emsg2(M_WARNING, 0, _("Cannot bind port %d: ERR=%s: Retrying ...\n"),
ntohs(fd_ptr->port), be.strerror());
}
bmicrosleep(5, 0);
return NULL;
} else {
if (caller == NULL) {
- caller = "unknown";
+ caller = _("unknown");
}
len = strlen(caller) + strlen(who) + 3;
buf = (char *)malloc(len);
bstrncpy(buf, len, who);
bstrncat(buf, len, ": ");
bstrncat(buf, len, caller);
- bs = init_bsock(NULL, newsockfd, "client", buf, bsock->port, &cli_addr);
+ bs = init_bsock(NULL, newsockfd, _("client"), buf, bsock->port, &cli_addr);
free(buf);
return bs; /* return new BSOCK */
}
* by the watchdog. */
if (bpipe->timer_id->killed) {
stat1 = ETIME;
- pm_strcat(results, "Program killed by Bacula watchdog (timeout)\n");
+ pm_strcat(results, _("Program killed by Bacula watchdog (timeout)\n"));
}
}
}
if (bpipe->timer_id) {
Dmsg1(100, "Run program fgets killed=%d\n", bpipe->timer_id->killed);
if (bpipe->timer_id->killed) {
- pm_strcat(tmp, "Program killed by Bacula watchdog (timeout)\n");
+ pm_strcat(tmp, _("Program killed by Bacula watchdog (timeout)\n"));
stat1 = ETIME;
break;
}
Dmsg1(110, "shm_create size=%d\n", shm->size);
for (i=0; i<MAX_TRIES; i++) {
if ((shmid = shmget(shmkey, shm->size, shm->perms | IPC_CREAT)) < 0) {
- Emsg1(M_WARN, 0, "shmget failure key = %x\n", shmkey);
+ Emsg1(M_WARN, 0, _("shmget failure key = %x\n"), shmkey);
shmkey++;
continue;
}
break;
}
if (not_found)
- Emsg2(M_ABORT, 0, "Could not get %d bytes of shared memory: %s\n", shm->size, strerror(errno));
+ Emsg2(M_ABORT, 0, _("Could not get %d bytes of shared memory: %s\n"), shm->size, strerror(errno));
shm->shmkey = shmkey;
shm->shmid = shmid;
Dmsg2(110, "shm_create return key=%x id=%d\n", shmkey, shmid);
shmbuf = shmat(shmid, NULL, 0);
Dmsg1(110, "shm_open buf=%x\n", shmbuf);
if (shmbuf == (char *) -1)
- Emsg1(M_ABORT, 0, "Could not attach shared memory: %s\n", strerror(errno));
+ Emsg1(M_ABORT, 0, _("Could not attach shared memory: %s\n"), strerror(errno));
shm->shmbuf = shmbuf;
shm->shmid = shmid;
return shmbuf;
#ifdef NEED_SHARED_MEMORY
if (shm->size) {
if (shmdt(shm->shmbuf) < 0) {
- Emsg1(M_ERROR, 0, "Error detaching shared memory: %s\n", strerror(errno));
+ Emsg1(M_ERROR, 0, _("Error detaching shared memory: %s\n"), strerror(errno));
}
}
#else
#ifdef NEED_SHARED_MEMORY
if (shm->size) {
if (shmctl(shm->shmid, IPC_RMID, NULL) < 0) {
- Emsg1(M_ERROR, 0, "Could not destroy shared memory: %s\n", strerror(errno));
+ Emsg1(M_ERROR, 0, _("Could not destroy shared memory: %s\n"), strerror(errno));
}
}
#else
{
/* Testing for 2000 byte zero at beginning of Volume block */
if (num > 1900 && num < 3000) {
- Pmsg3(000, "Memset for %d bytes at %s:%d\n", (int)num, file, line);
+ Pmsg3(000, _("Memset for %d bytes at %s:%d\n"), (int)num, file, line);
}
memset(mem, val, num);
}
Mmsg(&fname, "%s/%s.%d.state", dir, progname, port);
/* Create new state file */
if ((sfd = open(fname, O_CREAT|O_WRONLY|O_BINARY, 0640)) < 0) {
- Dmsg2(000, _("Could not create state file. %s ERR=%s\n"), fname, strerror(errno));
+ Dmsg2(000, "Could not create state file. %s ERR=%s\n", fname, strerror(errno));
Emsg2(M_ERROR, 0, _("Could not create state file. %s ERR=%s\n"), fname, strerror(errno));
goto bail_out;
}
goto bail_out;
}
if (write(sfd, &state_hdr, sizeof(state_hdr)) != sizeof(state_hdr)) {
- Pmsg1(000, "Write final hdr error: ERR=%s\n", strerror(errno));
+ Pmsg1(000, _("Write final hdr error: ERR=%s\n"), strerror(errno));
}
// Dmsg1(010, "rewrote header = %d\n", sizeof(state_hdr));
bail_out:
static void stop_btimer(btimer_t *wid)
{
if (wid == NULL) {
- Emsg0(M_ABORT, 0, "stop_btimer called with NULL btimer_id\n");
+ Emsg0(M_ABORT, 0, _("stop_btimer called with NULL btimer_id\n"));
}
unregister_watchdog(wid->wd);
free(wid->wd);
bnet_fsend(bs, "1000 OK auth\n");
} else {
Dmsg1(50, "Auth failed PW: %s\n", password);
- bnet_fsend(bs, "1999 Authorization failed.\n");
+ bnet_fsend(bs, _("1999 Authorization failed.\n"));
bmicrosleep(5, 0);
}
return ok;
if (sscanf(bs->msg, "auth cram-md5 %s ssl=%d\n", chal, tls_remote_need) != 2) {
if (sscanf(bs->msg, "auth cram-md5 %s\n", chal) != 1) {
Dmsg1(50, "Cannot scan challenge: %s", bs->msg);
- bnet_fsend(bs, "1999 Authorization failed.\n");
+ bnet_fsend(bs, _("1999 Authorization failed.\n"));
bmicrosleep(5, 0);
return 0;
}
Dmsg0(900, "Enter daemon_start\n");
if ( (cpid = fork() ) < 0)
- Emsg1(M_ABORT, 0, "Cannot fork to become daemon: %s\n", strerror(errno));
+ Emsg1(M_ABORT, 0, _("Cannot fork to become daemon: %s\n"), strerror(errno));
else if (cpid > 0)
exit(0); /* parent exits */
/* Child continues */
if (!shm_OK || myUPS.eventfile[0] == 0 ||
(events_file = fopen(myUPS.eventfile, "r")) == NULL) {
SendDlgItemMessage(hwnd, idlist, LB_ADDSTRING, 0,
- (LONG)"Events not available");
+ (LONG)_("Events not available"));
return;
}
{
Dmsg0(3400, "Enter remove_jcr\n");
if (!jcr) {
- Emsg0(M_ABORT, 0, "NULL jcr.\n");
+ Emsg0(M_ABORT, 0, _("NULL jcr.\n"));
}
jcrs->remove(jcr);
Dmsg0(3400, "Leave remove_jcr\n");
Dmsg1(2000, "Close lex file: %s\n", lf->fname);
if (lf == NULL) {
- Emsg0(M_ABORT, 0, "Close of NULL file\n");
+ Emsg0(M_ABORT, 0, _("Close of NULL file\n"));
}
of = lf->next;
fclose(lf->fd);
int lex_get_char(LEX *lf)
{
if (lf->ch == L_EOF) {
- Emsg0(M_ABORT, 0, "get_char: called after EOF\n");
+ Emsg0(M_ABORT, 0, _("get_char: called after EOF\n"));
}
if (lf->ch == L_EOL) {
if (bfgets(lf->line, MAXSTRING, lf->fd) == NULL) {
static const char *lex_state_to_str(int state)
{
switch (state) {
- case lex_none: return "none";
- case lex_comment: return "comment";
- case lex_number: return "number";
- case lex_ip_addr: return "ip_addr";
- case lex_identifier: return "identifier";
- case lex_string: return "string";
- case lex_quoted_string: return "quoted_string";
+ case lex_none: return _("none");
+ case lex_comment: return _("comment");
+ case lex_number: return _("number");
+ case lex_ip_addr: return _("ip_addr");
+ case lex_identifier: return _("identifier");
+ case lex_string: return _("string");
+ case lex_quoted_string: return _("quoted_string");
default: return "??????";
}
}
struct abufhead *buf;
if (pool > PM_MAX) {
- Emsg2(M_ABORT, 0, "MemPool index %d larger than max %d\n", pool, PM_MAX);
+ Emsg2(M_ABORT, 0, _("MemPool index %d larger than max %d\n"), pool, PM_MAX);
}
P(mutex);
if (pool_ctl[pool].free_buf) {
if ((buf = (struct abufhead *)sm_malloc(fname, lineno, pool_ctl[pool].size+HEAD_SIZE)) == NULL) {
V(mutex);
- Emsg1(M_ABORT, 0, "Out of memory requesting %d bytes\n", pool_ctl[pool].size);
+ Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), pool_ctl[pool].size);
}
buf->ablen = pool_ctl[pool].size;
buf->pool = pool;
int pool = 0;
if ((buf = (struct abufhead *)sm_malloc(fname, lineno, size+HEAD_SIZE)) == NULL) {
- Emsg1(M_ABORT, 0, "Out of memory requesting %d bytes\n", size);
+ Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), size);
}
buf->ablen = size;
buf->pool = pool;
buf = sm_realloc(fname, lineno, cp, size+HEAD_SIZE);
if (buf == NULL) {
V(mutex);
- Emsg1(M_ABORT, 0, "Out of memory requesting %d bytes\n", size);
+ Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), size);
}
((struct abufhead *)buf)->ablen = size;
pool = ((struct abufhead *)buf)->pool;
if ((buf=malloc(pool_ctl[pool].size+HEAD_SIZE)) == NULL) {
V(mutex);
- Emsg1(M_ABORT, 0, "Out of memory requesting %d bytes\n", pool_ctl[pool].size);
+ Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), pool_ctl[pool].size);
}
buf->ablen = pool_ctl[pool].size;
buf->pool = pool;
int pool = 0;
if ((buf=malloc(size+HEAD_SIZE)) == NULL) {
- Emsg1(M_ABORT, 0, "Out of memory requesting %d bytes\n", size);
+ Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), size);
}
buf->ablen = size;
buf->pool = pool;
buf = realloc(cp, size+HEAD_SIZE);
if (buf == NULL) {
V(mutex);
- Emsg1(M_ABORT, 0, "Out of memory requesting %d bytes\n", size);
+ Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), size);
}
((struct abufhead *)buf)->ablen = size;
pool = ((struct abufhead *)buf)->pool;
buf = (char *)realloc(cp, size+HEAD_SIZE);
if (buf == NULL) {
V(mutex);
- Emsg1(M_ABORT, 0, "Out of memory requesting %d bytes\n", size);
+ Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), size);
}
Dmsg2(000, "Old buf=0x%x new buf=0x%x\n", cp, buf);
((struct abufhead *)buf)->ablen = size;
if (!(bpipe = open_bpipe(cmd, 120, "rw"))) {
berrno be;
- Jmsg(jcr, M_ERROR, 0, "open mail pipe %s failed: ERR=%s\n",
+ Jmsg(jcr, M_ERROR, 0, _("open mail pipe %s failed: ERR=%s\n"),
cmd, be.strerror());
}
/* If we had to use sendmail, add subject */
if (!d->mail_cmd) {
- fprintf(bpipe->wfd, "Subject: Bacula Message\r\n\r\n");
+ fprintf(bpipe->wfd, "Subject: %s\r\n\r\n", _("Bacula Message"));
}
return bpipe;
}
if (!(bpipe=open_mail_pipe(jcr, cmd, d))) {
- Pmsg0(000, "open mail pipe failed.\n");
+ Pmsg0(000, _("open mail pipe failed.\n"));
goto rem_temp_file;
}
Dmsg0(850, "Opened mail pipe\n");
}
if (!close_wpipe(bpipe)) { /* close write pipe sending mail */
berrno be;
- Pmsg1(000, "close error: ERR=%s\n", be.strerror());
+ Pmsg1(000, _("close error: ERR=%s\n"), be.strerror());
}
/*
if (!d->fd) {
berrno be;
d->fd = stdout;
- Qmsg2(jcr, M_ERROR, 0, "fopen %s failed: ERR=%s\n", name,
+ Qmsg2(jcr, M_ERROR, 0, _("fopen %s failed: ERR=%s\n"), name,
be.strerror());
d->fd = NULL;
free_pool_memory(name);
if (!d->fd) {
berrno be;
d->fd = stdout;
- Qmsg2(jcr, M_ERROR, 0, "fopen %s failed: ERR=%s\n", d->where,
+ Qmsg2(jcr, M_ERROR, 0, _("fopen %s failed: ERR=%s\n"), d->where,
be.strerror());
d->fd = NULL;
break;
if (!d->fd) {
berrno be;
d->fd = stdout;
- Qmsg2(jcr, M_ERROR, 0, "fopen %s failed: ERR=%s\n", d->where,
+ Qmsg2(jcr, M_ERROR, 0, _("fopen %s failed: ERR=%s\n"), d->where,
be.strerror());
d->fd = NULL;
break;
}
switch (type) {
case M_ABORT:
- len = bsnprintf(buf, sizeof(buf), "%s: ABORTING due to ERROR in %s:%d\n",
+ len = bsnprintf(buf, sizeof(buf), _("%s: ABORTING due to ERROR in %s:%d\n"),
my_name, file, line);
break;
case M_ERROR_TERM:
- len = bsnprintf(buf, sizeof(buf), "%s: ERROR TERMINATION at %s:%d\n",
+ len = bsnprintf(buf, sizeof(buf), _("%s: ERROR TERMINATION at %s:%d\n"),
my_name, file, line);
break;
case M_FATAL:
if (level == -1) /* skip details */
- len = bsnprintf(buf, sizeof(buf), "%s: Fatal Error because: ", my_name);
+ len = bsnprintf(buf, sizeof(buf), _("%s: Fatal Error because: "), my_name);
else
- len = bsnprintf(buf, sizeof(buf), "%s: Fatal Error at %s:%d because:\n", my_name, file, line);
+ len = bsnprintf(buf, sizeof(buf), _("%s: Fatal Error at %s:%d because:\n"), my_name, file, line);
break;
case M_ERROR:
if (level == -1) /* skip details */
- len = bsnprintf(buf, sizeof(buf), "%s: ERROR: ", my_name);
+ len = bsnprintf(buf, sizeof(buf), _("%s: ERROR: "), my_name);
else
- len = bsnprintf(buf, sizeof(buf), "%s: ERROR in %s:%d ", my_name, file, line);
+ len = bsnprintf(buf, sizeof(buf), _("%s: ERROR in %s:%d "), my_name, file, line);
break;
case M_WARNING:
- len = bsnprintf(buf, sizeof(buf), "%s: Warning: ", my_name);
+ len = bsnprintf(buf, sizeof(buf), _("%s: Warning: "), my_name);
break;
case M_SECURITY:
- len = bsnprintf(buf, sizeof(buf), "%s: Security violation: ", my_name);
+ len = bsnprintf(buf, sizeof(buf), _("%s: Security violation: "), my_name);
break;
default:
len = bsnprintf(buf, sizeof(buf), "%s: ", my_name);
}
switch (type) {
case M_ABORT:
- len = bsnprintf(rbuf, sizeof(rbuf), "%s ABORTING due to ERROR\n", my_name);
+ len = bsnprintf(rbuf, sizeof(rbuf), _("%s ABORTING due to ERROR\n"), my_name);
break;
case M_ERROR_TERM:
- len = bsnprintf(rbuf, sizeof(rbuf), "%s ERROR TERMINATION\n", my_name);
+ len = bsnprintf(rbuf, sizeof(rbuf), _("%s ERROR TERMINATION\n"), my_name);
break;
case M_FATAL:
- len = bsnprintf(rbuf, sizeof(rbuf), "%s: %s Fatal error: ", my_name, job);
+ len = bsnprintf(rbuf, sizeof(rbuf), _("%s: %s Fatal error: "), my_name, job);
if (jcr) {
set_jcr_job_status(jcr, JS_FatalError);
}
break;
case M_ERROR:
- len = bsnprintf(rbuf, sizeof(rbuf), "%s: %s Error: ", my_name, job);
+ len = bsnprintf(rbuf, sizeof(rbuf), _("%s: %s Error: "), my_name, job);
if (jcr) {
jcr->Errors++;
}
break;
case M_WARNING:
- len = bsnprintf(rbuf, sizeof(rbuf), "%s: %s Warning: ", my_name, job);
+ len = bsnprintf(rbuf, sizeof(rbuf), _("%s: %s Warning: "), my_name, job);
break;
case M_SECURITY:
- len = bsnprintf(rbuf, sizeof(rbuf), "%s: %s Security violation: ", my_name, job);
+ len = bsnprintf(rbuf, sizeof(rbuf), _("%s: %s Security violation: "), my_name, job);
break;
default:
len = bsnprintf(rbuf, sizeof(rbuf), "%s: ", my_name);
} else if (strcasecmp(lc->str, "no") == 0) {
*(int *)(item->value) &= ~(item->code);
} else {
- scan_err1(lc, _("Expect a YES or NO, got: %s"), lc->str);
+ scan_err3(lc, _("Expect a %s or %s, got: %s"), "YES", "NO", lc->str); /* YES and NO must not be translated */
}
scan_to_eol(lc);
set_bit(index, res_all.hdr.item_present);
}
}
if (i != 0) {
- scan_err1(lc, "Expected a Tape Label keyword, got: %s", lc->str);
+ scan_err1(lc, _("Expected a Tape Label keyword, got: %s"), lc->str);
}
scan_to_eol(lc);
set_bit(index, res_all.hdr.item_present);
PyModule_AddStringConstant(bacula_module, "ConfigFile", configfile);
PyModule_AddStringConstant(bacula_module, "WorkingDir", (char *)working_directory);
if (!bacula_module) {
- Jmsg0(NULL, M_ERROR_TERM, 0, "Could not initialize Python\n");
+ Jmsg0(NULL, M_ERROR_TERM, 0, _("Could not initialize Python\n"));
}
bsnprintf(buf, sizeof(buf), "import sys\n"
"sys.path.append('%s')\n", scripts);
if (PyRun_SimpleString(buf) != 0) {
- Jmsg1(NULL, M_ERROR_TERM, 0, "Could not Run Python string %s\n", buf);
+ Jmsg1(NULL, M_ERROR_TERM, 0, _("Could not Run Python string %s\n"), buf);
}
/* Explicitly set values we want */
JobType.tp_setattr = job_setattr;
if (PyType_Ready(&JobType) != 0) {
- Jmsg0(NULL, M_ERROR_TERM, 0, "Could not initialize Python Job type.\n");
+ Jmsg0(NULL, M_ERROR_TERM, 0, _("Could not initialize Python Job type.\n"));
PyErr_Print();
}
StartUp_module = PyImport_ImportModule((char *)module);
if (!StartUp_module) {
- Emsg2(M_ERROR, 0, "Could not import Python script %s/%s. Python disabled.\n",
+ Emsg2(M_ERROR, 0, _("Could not import Python script %s/%s. Python disabled.\n"),
scripts, module);
if (PyErr_Occurred()) {
PyErr_Print();
/* Create JCR argument to send to function */
pJob = (PyObject *)PyObject_New(JobObject, &JobType);
if (!pJob) {
- Jmsg(jcr, M_ERROR, 0, "Could not create Python Job Object.\n");
+ Jmsg(jcr, M_ERROR, 0, _("Could not create Python Job Object.\n"));
goto bail_out;
}
((JobObject *)pJob)->jcr = jcr;
PyErr_Print();
Dmsg0(000, "Python JobStart error.\n");
}
- Jmsg(jcr, M_ERROR, 0, "Python function \"%s\" not found.\n", event);
+ Jmsg(jcr, M_ERROR, 0, _("Python function \"%s\" not found.\n"), event);
Py_XDECREF(pJob);
goto bail_out;
}
jcr->JobId);
JobEnd_method = NULL;
}
- Jmsg(jcr, M_ERROR, 0, "Python function \"%s\" not found.\n", event);
+ Jmsg(jcr, M_ERROR, 0, _("Python function \"%s\" not found.\n"), event);
goto bail_out;
}
stat = 1; /* OK */
}
stat = 1; /* OK */
} else {
- Jmsg1(jcr, M_ABORT, 0, "Unknown Python daemon event %s\n", event);
+ Jmsg1(jcr, M_ABORT, 0, _("Unknown Python daemon event %s\n"), event);
}
bail_out:
static const char re_error_msgid[] =
{
#define REG_NOERROR_IDX 0
- gettext_noop ("Success") /* REG_NOERROR */
+ _("Success") /* REG_NOERROR */
"\0"
#define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success")
- gettext_noop ("No match") /* REG_NOMATCH */
+ _("No match") /* REG_NOMATCH */
"\0"
#define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match")
- gettext_noop ("Invalid regular expression") /* REG_BADPAT */
+ _("Invalid regular expression") /* REG_BADPAT */
"\0"
#define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression")
- gettext_noop ("Invalid collation character") /* REG_ECOLLATE */
+ _("Invalid collation character") /* REG_ECOLLATE */
"\0"
#define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character")
- gettext_noop ("Invalid character class name") /* REG_ECTYPE */
+ _("Invalid character class name") /* REG_ECTYPE */
"\0"
#define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name")
- gettext_noop ("Trailing backslash") /* REG_EESCAPE */
+ _("Trailing backslash") /* REG_EESCAPE */
"\0"
#define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash")
- gettext_noop ("Invalid back reference") /* REG_ESUBREG */
+ _("Invalid back reference") /* REG_ESUBREG */
"\0"
#define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference")
- gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */
+ _("Unmatched [ or [^") /* REG_EBRACK */
"\0"
#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
- gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
+ _("Unmatched ( or \\(") /* REG_EPAREN */
"\0"
#define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
- gettext_noop ("Unmatched \\{") /* REG_EBRACE */
+ _("Unmatched \\{") /* REG_EBRACE */
"\0"
#define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{")
- gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */
+ _("Invalid content of \\{\\}") /* REG_BADBR */
"\0"
#define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}")
- gettext_noop ("Invalid range end") /* REG_ERANGE */
+ _("Invalid range end") /* REG_ERANGE */
"\0"
#define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end")
- gettext_noop ("Memory exhausted") /* REG_ESPACE */
+ _("Memory exhausted") /* REG_ESPACE */
"\0"
#define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted")
- gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */
+ _("Invalid preceding regular expression") /* REG_BADRPT */
"\0"
#define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression")
- gettext_noop ("Premature end of regular expression") /* REG_EEND */
+ _("Premature end of regular expression") /* REG_EEND */
"\0"
#define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression")
- gettext_noop ("Regular expression too big") /* REG_ESIZE */
+ _("Regular expression too big") /* REG_ESIZE */
"\0"
#define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big")
- gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
+ _("Unmatched ) or \\)") /* REG_ERPAREN */
};
static const size_t re_error_msgid_idx[] =
}
#endif
if ((errstat=rwl_writelock(&res_lock)) != 0) {
- Emsg3(M_ABORT, 0, "rwl_writelock failure at %s:%d: ERR=%s\n",
+ Emsg3(M_ABORT, 0, _("rwl_writelock failure at %s:%d: ERR=%s\n"),
file, line, strerror(errstat));
}
res_locked++;
{
int errstat;
if ((errstat=rwl_writeunlock(&res_lock)) != 0) {
- Emsg3(M_ABORT, 0, "rwl_writeunlock failure at %s:%d:. ERR=%s\n",
+ Emsg3(M_ABORT, 0, _("rwl_writeunlock failure at %s:%d:. ERR=%s\n"),
file, line, strerror(errstat));
}
res_locked--;
return stat;
}
if (rwl->w_active <= 0) {
- Emsg0(M_ABORT, 0, "rwl_writeunlock called too many times.\n");
+ Emsg0(M_ABORT, 0, _("rwl_writeunlock called too many times.\n"));
}
rwl->w_active--;
if (!pthread_equal(pthread_self(), rwl->writer_id)) {
- Emsg0(M_ABORT, 0, "rwl_writeunlock by non-owner.\n");
+ Emsg0(M_ABORT, 0, _("rwl_writeunlock by non-owner.\n"));
}
if (rwl->w_active > 0) {
stat = 0; /* writers still active */
if ((iteration % self->interval) == 0) {
status = rwl_writelock(&data[element].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Write lock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Write lock failed. ERR=%s\n"), strerror(status));
}
data[element].data = self->thread_num;
data[element].writes++;
self->writes++;
status = rwl_writeunlock(&data[element].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Write unlock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Write unlock failed. ERR=%s\n"), strerror(status));
}
} else {
/*
*/
status = rwl_readlock(&data[element].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Read lock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Read lock failed. ERR=%s\n"), strerror(status));
}
self->reads++;
if (data[element].data == self->thread_num)
repeats++;
status = rwl_readunlock(&data[element].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Read unlock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Read unlock failed. ERR=%s\n"), strerror(status));
}
}
element++;
}
}
if (repeats > 0) {
- Pmsg2(000, "Thread %d found unchanged elements %d times\n",
+ Pmsg2(000, _("Thread %d found unchanged elements %d times\n"),
self->thread_num, repeats);
}
return NULL;
data[data_count].writes = 0;
status = rwl_init (&data[data_count].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Init rwlock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Init rwlock failed. ERR=%s\n"), strerror(status));
}
}
status = pthread_create (&threads[count].thread_id,
NULL, thread_routine, (void*)&threads[count]);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Create thread failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Create thread failed. ERR=%s\n"), strerror(status));
}
}
for (count = 0; count < THREADS; count++) {
status = pthread_join (threads[count].thread_id, NULL);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Join thread failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Join thread failed. ERR=%s\n"), strerror(status));
}
thread_writes += threads[count].writes;
- printf ("%02d: interval %d, writes %d, reads %d\n",
+ printf (_("%02d: interval %d, writes %d, reads %d\n"),
count, threads[count].interval,
threads[count].writes, threads[count].reads);
}
*/
for (data_count = 0; data_count < DATASIZE; data_count++) {
data_writes += data[data_count].writes;
- printf ("data %02d: value %d, %d writes\n",
+ printf (_("data %02d: value %d, %d writes\n"),
data_count, data[data_count].data, data[data_count].writes);
rwl_destroy (&data[data_count].lock);
}
- printf ("Total: %d thread writes, %d data writes\n",
+ printf (_("Total: %d thread writes, %d data writes\n"),
thread_writes, data_writes);
return 0;
}
self->updates++;
rwl_writeunlock (&data[element].lock);
} else
- err_abort (status, "Try write lock");
+ err_abort (status, _("Try write lock"));
} else {
status = rwl_readtrylock (&data[element].lock);
if (status == EBUSY)
self->r_collisions++;
else if (status != 0) {
- err_abort (status, "Try read lock");
+ err_abort (status, _("Try read lock"));
} else {
if (data[element].data != data[element].updates)
printf ("%d: data[%d] %d != %d\n",
status = pthread_create (&threads[count].thread_id,
NULL, thread_routine, (void*)&threads[count]);
if (status != 0)
- err_abort (status, "Create thread");
+ err_abort (status, _("Create thread"));
}
/*
for (count = 0; count < THREADS; count++) {
status = pthread_join (threads[count].thread_id, NULL);
if (status != 0)
- err_abort (status, "Join thread");
+ err_abort (status, _("Join thread"));
thread_updates += threads[count].updates;
- printf ("%02d: interval %d, updates %d, "
- "r_collisions %d, w_collisions %d\n",
+ printf (_("%02d: interval %d, updates %d, "
+ "r_collisions %d, w_collisions %d\n"),
count, threads[count].interval,
threads[count].updates,
threads[count].r_collisions, threads[count].w_collisions);
*/
for (data_count = 0; data_count < DATASIZE; data_count++) {
data_updates += data[data_count].updates;
- printf ("data %02d: value %d, %d updates\n",
+ printf (_("data %02d: value %d, %d updates\n"),
data_count, data[data_count].data, data[data_count].updates);
rwl_destroy (&data[data_count].lock);
}
}
sem->active--;
if (sem->active < 0) {
- Emsg0(M_ABORT, 0, "sem_unlock by non-owner.\n");
+ Emsg0(M_ABORT, 0, _("sem_unlock by non-owner.\n"));
}
if (sem->active >= sem->max_active) {
stat = 0; /* caller(s) still active */
if ((iteration % self->interval) == 0) {
status = sem_writelock(&data[element].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Write lock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Write lock failed. ERR=%s\n"), strerror(status));
}
data[element].data = self->thread_num;
data[element].writes++;
self->writes++;
status = sem_writeunlock(&data[element].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Write unlock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Write unlock failed. ERR=%s\n"), strerror(status));
}
} else {
/*
*/
status = sem_readlock(&data[element].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Read lock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Read lock failed. ERR=%s\n"), strerror(status));
}
self->reads++;
if (data[element].data == self->thread_num)
repeats++;
status = sem_readunlock(&data[element].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Read unlock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Read unlock failed. ERR=%s\n"), strerror(status));
}
}
element++;
}
}
if (repeats > 0) {
- Pmsg2(000, "Thread %d found unchanged elements %d times\n",
+ Pmsg2(000, _("Thread %d found unchanged elements %d times\n"),
self->thread_num, repeats);
}
return NULL;
data[data_count].writes = 0;
status = sem_init (&data[data_count].lock);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Init rwlock failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Init rwlock failed. ERR=%s\n"), strerror(status));
}
}
status = pthread_create(&threads[count].thread_id,
NULL, thread_routine, (void*)&threads[count]);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Create thread failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Create thread failed. ERR=%s\n"), strerror(status));
}
}
for (count = 0; count < THREADS; count++) {
status = pthread_join (threads[count].thread_id, NULL);
if (status != 0) {
- Emsg1(M_ABORT, 0, "Join thread failed. ERR=%s\n", strerror(status));
+ Emsg1(M_ABORT, 0, _("Join thread failed. ERR=%s\n"), strerror(status));
}
thread_writes += threads[count].writes;
- printf ("%02d: interval %d, writes %d, reads %d\n",
+ printf (_("%02d: interval %d, writes %d, reads %d\n"),
count, threads[count].interval,
threads[count].writes, threads[count].reads);
}
*/
for (data_count = 0; data_count < DATASIZE; data_count++) {
data_writes += data[data_count].writes;
- printf ("data %02d: value %d, %d writes\n",
+ printf (_("data %02d: value %d, %d writes\n"),
data_count, data[data_count].data, data[data_count].writes);
sem_destroy (&data[data_count].lock);
}
- printf ("Total: %d thread writes, %d data writes\n",
+ printf (_("Total: %d thread writes, %d data writes\n"),
thread_writes, data_writes);
return 0;
}
self->updates++;
sem_writeunlock (&data[element].lock);
} else
- err_abort (status, "Try write lock");
+ err_abort (status, _("Try write lock"));
} else {
status = sem_readtrylock (&data[element].lock);
if (status == EBUSY)
self->r_collisions++;
else if (status != 0) {
- err_abort (status, "Try read lock");
+ err_abort (status, _("Try read lock"));
} else {
if (data[element].data != data[element].updates)
printf ("%d: data[%d] %d != %d\n",
status = pthread_create (&threads[count].thread_id,
NULL, thread_routine, (void*)&threads[count]);
if (status != 0)
- err_abort (status, "Create thread");
+ err_abort (status, _("Create thread"));
}
/*
for (count = 0; count < THREADS; count++) {
status = pthread_join(threads[count].thread_id, NULL);
if (status != 0)
- err_abort(status, "Join thread");
+ err_abort(status, _("Join thread"));
thread_updates += threads[count].updates;
- printf ("%02d: interval %d, updates %d, "
- "r_collisions %d, w_collisions %d\n",
+ printf (_("%02d: interval %d, updates %d, "
+ "r_collisions %d, w_collisions %d\n"),
count, threads[count].interval,
threads[count].updates,
threads[count].r_collisions, threads[count].w_collisions);
*/
for (data_count = 0; data_count < DATASIZE; data_count++) {
data_updates += data[data_count].updates;
- printf ("data %02d: value %d, %d updates\n",
+ printf (_("data %02d: value %d, %d updates\n"),
data_count, data[data_count].data, data[data_count].updates);
sem_destroy(&data[data_count].lock);
}
const char *get_signal_name(int sig)
{
if (sig < 0 || sig > BA_NSIG || !sig_names[sig]) {
- return "Invalid signal number";
+ return _("Invalid signal number");
} else {
return sig_names[sig];
}
if (sig == SIGTERM) {
// Emsg1(M_TERM, -1, "Shutting down Bacula service: %s ...\n", my_name);
} else {
- Emsg2(M_FATAL, -1, "Bacula interrupted by signal %d: %s\n", sig, sig_names[sig]);
+ Emsg2(M_FATAL, -1, _("Bacula interrupted by signal %d: %s\n"), sig, sig_names[sig]);
}
#ifdef TRACEBACK
pid_t pid;
int exelen = strlen(exepath);
- fprintf(stderr, "Kaboom! %s, %s got signal %d. Attempting traceback.\n",
+ fprintf(stderr, _("Kaboom! %s, %s got signal %d. Attempting traceback.\n"),
exename, my_name, sig);
- fprintf(stderr, "Kaboom! exepath=%s\n", exepath);
+ fprintf(stderr, _("Kaboom! exepath=%s\n"), exepath);
if (exelen + 12 > (int)sizeof(btpath)) {
bstrncpy(btpath, "btraceback", sizeof(btpath));
Dmsg1(300, "exepath=%s\n", exepath);
switch (pid = fork()) {
case -1: /* error */
- fprintf(stderr, "Fork error: ERR=%s\n", strerror(errno));
+ fprintf(stderr, _("Fork error: ERR=%s\n"), strerror(errno));
break;
case 0: /* child */
argv[0] = btpath; /* path to btraceback */
argv[1] = exepath; /* path to exe */
argv[2] = pid_buf;
argv[3] = (char *)NULL;
- fprintf(stderr, "Calling: %s %s %s\n", btpath, exepath, pid_buf);
+ fprintf(stderr, _("Calling: %s %s %s\n"), btpath, exepath, pid_buf);
if (execv(btpath, argv) != 0) {
- printf("execv: %s failed: ERR=%s\n", btpath, strerror(errno));
+ printf(_("execv: %s failed: ERR=%s\n"), btpath, strerror(errno));
}
exit(-1);
default: /* parent */
if (pid > 0) {
Dmsg0(500, "Doing waitpid\n");
waitpid(pid, NULL, 0); /* wait for child to produce dump */
- fprintf(stderr, "Traceback complete, attempting cleanup ...\n");
+ fprintf(stderr, _("Traceback complete, attempting cleanup ...\n"));
Dmsg0(500, "Done waitpid\n");
exit_handler(sig); /* clean up if possible */
Dmsg0(500, "Done exit_handler\n");
Dmsg0(500, "Doing sleep\n");
bmicrosleep(30, 0);
}
- fprintf(stderr, "It looks like the traceback worked ...\n");
+ fprintf(stderr, _("It looks like the traceback worked ...\n"));
}
#endif
exit_handler = terminate;
if (BA_NSIG < _sys_nsig)
- Emsg2(M_ABORT, 0, "BA_NSIG too small (%d) should be (%d)\n", BA_NSIG, _sys_nsig);
+ Emsg2(M_ABORT, 0, _("BA_NSIG too small (%d) should be (%d)\n"), BA_NSIG, _sys_nsig);
for (i=0; i<_sys_nsig; i++)
sig_names[i] = _sys_siglist[i];
#else
exit_handler = terminate;
- sig_names[0] = "UNKNOWN SIGNAL";
- sig_names[SIGHUP] = "Hangup";
- sig_names[SIGINT] = "Interrupt";
- sig_names[SIGQUIT] = "Quit";
- sig_names[SIGILL] = "Illegal instruction";;
- sig_names[SIGTRAP] = "Trace/Breakpoint trap";
- sig_names[SIGABRT] = "Abort";
+ sig_names[0] = _("UNKNOWN SIGNAL");
+ sig_names[SIGHUP] = _("Hangup");
+ sig_names[SIGINT] = _("Interrupt");
+ sig_names[SIGQUIT] = _("Quit");
+ sig_names[SIGILL] = _("Illegal instruction");;
+ sig_names[SIGTRAP] = _("Trace/Breakpoint trap");
+ sig_names[SIGABRT] = _("Abort");
#ifdef SIGEMT
- sig_names[SIGEMT] = "EMT instruction (Emulation Trap)";
+ sig_names[SIGEMT] = _("EMT instruction (Emulation Trap)");
#endif
#ifdef SIGIOT
- sig_names[SIGIOT] = "IOT trap";
+ sig_names[SIGIOT] = _("IOT trap");
#endif
- sig_names[SIGBUS] = "BUS error";
- sig_names[SIGFPE] = "Floating-point exception";
- sig_names[SIGKILL] = "Kill, unblockable";
- sig_names[SIGUSR1] = "User-defined signal 1";
- sig_names[SIGSEGV] = "Segmentation violation";
- sig_names[SIGUSR2] = "User-defined signal 2";
- sig_names[SIGPIPE] = "Broken pipe";
- sig_names[SIGALRM] = "Alarm clock";
- sig_names[SIGTERM] = "Termination";
+ sig_names[SIGBUS] = _("BUS error");
+ sig_names[SIGFPE] = _("Floating-point exception");
+ sig_names[SIGKILL] = _("Kill, unblockable");
+ sig_names[SIGUSR1] = _("User-defined signal 1");
+ sig_names[SIGSEGV] = _("Segmentation violation");
+ sig_names[SIGUSR2] = _("User-defined signal 2");
+ sig_names[SIGPIPE] = _("Broken pipe");
+ sig_names[SIGALRM] = _("Alarm clock");
+ sig_names[SIGTERM] = _("Termination");
#ifdef SIGSTKFLT
- sig_names[SIGSTKFLT] = "Stack fault";
+ sig_names[SIGSTKFLT] = _("Stack fault");
#endif
- sig_names[SIGCHLD] = "Child status has changed";
- sig_names[SIGCONT] = "Continue";
- sig_names[SIGSTOP] = "Stop, unblockable";
- sig_names[SIGTSTP] = "Keyboard stop";
- sig_names[SIGTTIN] = "Background read from tty";
- sig_names[SIGTTOU] = "Background write to tty";
- sig_names[SIGURG] = "Urgent condition on socket";
- sig_names[SIGXCPU] = "CPU limit exceeded";
- sig_names[SIGXFSZ] = "File size limit exceeded";
- sig_names[SIGVTALRM] = "Virtual alarm clock";
- sig_names[SIGPROF] = "Profiling alarm clock";
- sig_names[SIGWINCH] = "Window size change";
- sig_names[SIGIO] = "I/O now possible";
+ sig_names[SIGCHLD] = _("Child status has changed");
+ sig_names[SIGCONT] = _("Continue");
+ sig_names[SIGSTOP] = _("Stop, unblockable");
+ sig_names[SIGTSTP] = _("Keyboard stop");
+ sig_names[SIGTTIN] = _("Background read from tty");
+ sig_names[SIGTTOU] = _("Background write to tty");
+ sig_names[SIGURG] = _("Urgent condition on socket");
+ sig_names[SIGXCPU] = _("CPU limit exceeded");
+ sig_names[SIGXFSZ] = _("File size limit exceeded");
+ sig_names[SIGVTALRM] = _("Virtual alarm clock");
+ sig_names[SIGPROF] = _("Profiling alarm clock");
+ sig_names[SIGWINCH] = _("Window size change");
+ sig_names[SIGIO] = _("I/O now possible");
#ifdef SIGPWR
- sig_names[SIGPWR] = "Power failure restart";
+ sig_names[SIGPWR] = _("Power failure restart");
#endif
#ifdef SIGWAITING
- sig_names[SIGWAITING] = "No runnable lwp";
+ sig_names[SIGWAITING] = _("No runnable lwp");
#endif
#ifdef SIGLWP
- sig_name[SIGLWP] = "SIGLWP special signal used by thread library";
+ sig_name[SIGLWP] = _("SIGLWP special signal used by thread library");
#endif
#ifdef SIGFREEZE
- sig_names[SIGFREEZE] = "Checkpoint Freeze";
+ sig_names[SIGFREEZE] = _("Checkpoint Freeze");
#endif
#ifdef SIGTHAW
- sig_names[SIGTHAW] = "Checkpoint Thaw";
+ sig_names[SIGTHAW] = _("Checkpoint Thaw");
#endif
#ifdef SIGCANCEL
- sig_names[SIGCANCEL] = "Thread Cancellation";
+ sig_names[SIGCANCEL] = _("Thread Cancellation");
#endif
#ifdef SIGLOST
- sig_names[SIGLOST] = "Resource Lost (e.g. record-lock lost)";
+ sig_names[SIGLOST] = _("Resource Lost (e.g. record-lock lost)");
#endif
#endif
struct b_queue *qp;
if (cp == NULL) {
- Emsg2(M_ABORT, 0, "Attempt to free NULL called from %s:%d\n", file, line);
+ Emsg2(M_ABORT, 0, _("Attempt to free NULL called from %s:%d\n"), file, line);
}
cp -= HEAD_SIZE;
of an address which isn't an allocated buffer. */
if (qp->qnext->qprev != qp) {
V(mutex);
- Emsg2(M_ABORT, 0, "qp->qnext->qprev != qp called from %s:%d\n", file, line);
+ Emsg2(M_ABORT, 0, _("qp->qnext->qprev != qp called from %s:%d\n"), file, line);
}
if (qp->qprev->qnext != qp) {
V(mutex);
- Emsg2(M_ABORT, 0, "qp->qprev->qnext != qp called from %s:%d\n", file, line);
+ Emsg2(M_ABORT, 0, _("qp->qprev->qnext != qp called from %s:%d\n"), file, line);
}
/* The following assertion detects storing off the end of the
if (((unsigned char *)cp)[head->ablen - 1] != ((((long) cp) & 0xFF) ^ 0xC5)) {
V(mutex);
- Emsg2(M_ABORT, 0, "Buffer overrun called from %s:%d\n", file, line);
+ Emsg2(M_ABORT, 0, _("Buffer overrun called from %s:%d\n"), file, line);
}
sm_buffers--;
sm_bytes -= head->ablen;
Dmsg4(400, "sm_realloc %s:%d 0x%x %d\n", fname, lineno, ptr, size);
if (size <= 0) {
- e_msg(fname, lineno, M_ABORT, 0, "sm_realloc size: %d\n", size);
+ e_msg(fname, lineno, M_ABORT, 0, _("sm_realloc size: %d\n"), size);
}
/* If the old block pointer is NULL, treat realloc() as a
sm_free(__FILE__, __LINE__, ptr);
}
- Dmsg4(150, "sm_realloc %d at %x from %s:%d\n", size, buf, fname, lineno);
+ Dmsg4(150, _("sm_realloc %d at %x from %s:%d\n"), size, buf, fname, lineno);
return buf;
}
if ((ap == NULL) ||
(ap->abq.qnext->qprev != (struct b_queue *) ap) ||
(ap->abq.qprev->qnext != (struct b_queue *) ap)) {
- fprintf(stderr,
- "\nOrphaned buffers exist. Dump terminated following\n");
- fprintf(stderr,
- " discovery of bad links in chain of orphaned buffers.\n");
- fprintf(stderr,
- " Buffer address with bad links: %lx\n", (long) ap);
+ fprintf(stderr, _(
+ "\nOrphaned buffers exist. Dump terminated following\n"
+ " discovery of bad links in chain of orphaned buffers.\n"
+ " Buffer address with bad links: %lx\n"), (long) ap);
break;
}
char errmsg[500];
bsnprintf(errmsg, sizeof(errmsg),
- "Orphaned buffer: %6u bytes allocated at line %d of %s %s\n",
+ _("Orphaned buffer: %6u bytes allocated at line %d of %s %s\n"),
memsize, ap->ablineno, my_name, ap->abfname
);
fprintf(stderr, "%s", errmsg);
void sm_check(const char *fname, int lineno, bool bufdump)
{
if (!sm_check_rtn(fname, lineno, bufdump)) {
- Emsg2(M_ABORT, 0, "Damaged buffer found. Called from %s:%d\n",
+ Emsg2(M_ABORT, 0, _("Damaged buffer found. Called from %s:%d\n"),
fname, lineno);
}
}
badbuf |= bad;
if (bad) {
fprintf(stderr,
- "\nDamaged buffers found at %s:%d\n", fname, lineno);
+ _("\nDamaged buffers found at %s:%d\n"), fname, lineno);
if (bad & 0x1) {
- fprintf(stderr, " discovery of bad prev link.\n");
+ fprintf(stderr, _(" discovery of bad prev link.\n"));
}
if (bad & 0x2) {
- fprintf(stderr, " discovery of bad next link.\n");
+ fprintf(stderr, _(" discovery of bad next link.\n"));
}
if (bad & 0x4) {
- fprintf(stderr, " discovery of data overrun.\n");
+ fprintf(stderr, _(" discovery of data overrun.\n"));
}
- fprintf(stderr, " Buffer address: %lx\n", (long) ap);
+ fprintf(stderr, _(" Buffer address: %lx\n"), (long) ap);
if (ap->abfname != NULL) {
unsigned memsize = ap->ablen - (HEAD_SIZE + 1);
char errmsg[80];
fprintf(stderr,
- "Damaged buffer: %6u bytes allocated at line %d of %s %s\n",
+ _("Damaged buffer: %6u bytes allocated at line %d of %s %s\n"),
memsize, ap->ablineno, my_name, ap->abfname
);
if (bufdump) {
bio = BIO_new(BIO_s_socket());
if (!bio) {
/* Not likely, but never say never */
- openssl_post_errors(M_ERROR, "Error creating file descriptor-based BIO");
+ openssl_post_errors(M_ERROR, _("Error creating file descriptor-based BIO"));
return NULL; /* Nothing allocated, nothing to clean up */
}
BIO_set_fd(bio, fd, BIO_NOCLOSE);
/* Create the SSL object and attach the socket BIO */
if ((tls->openssl = SSL_new(ctx->openssl)) == NULL) {
/* Not likely, but never say never */
- openssl_post_errors(M_ERROR, "Error creating new SSL object");
+ openssl_post_errors(M_ERROR, _("Error creating new SSL object"));
goto err;
}
goto cleanup;
case SSL_ERROR_ZERO_RETURN:
/* TLS connection was cleanly shut down */
- openssl_post_errors(M_ERROR, "Connect failure");
+ openssl_post_errors(M_ERROR, _("Connect failure"));
stat = false;
goto cleanup;
case SSL_ERROR_WANT_READ:
break;
default:
/* Socket Error Occured */
- openssl_post_errors(M_ERROR, "Connect failure");
+ openssl_post_errors(M_ERROR, _("Connect failure"));
stat = false;
goto cleanup;
}
dynlock = (struct CRYPTO_dynlock_value *) malloc(sizeof(struct CRYPTO_dynlock_value));
if ((stat = pthread_mutex_init(&dynlock->mutex, NULL)) != 0) {
- Emsg1(M_ABORT, 0, "Unable to init mutex: ERR=%s\n", strerror(stat));
+ Emsg1(M_ABORT, 0, _("Unable to init mutex: ERR=%s\n"), strerror(stat));
}
return dynlock;
int stat;
if ((stat = pthread_mutex_destroy(&dynlock->mutex)) != 0) {
- Emsg1(M_ABORT, 0, "Unable to destroy mutex: ERR=%s\n", strerror(stat));
+ Emsg1(M_ABORT, 0, _("Unable to destroy mutex: ERR=%s\n"), strerror(stat));
}
free(dynlock);
mutexes = (pthread_mutex_t *) malloc(numlocks * sizeof(pthread_mutex_t));
for (i = 0; i < numlocks; i++) {
if ((stat = pthread_mutex_init(&mutexes[i], NULL)) != 0) {
- Emsg1(M_ERROR, 0, "Unable to init mutex: ERR=%s\n", strerror(stat));
+ Emsg1(M_ERROR, 0, _("Unable to init mutex: ERR=%s\n"), strerror(stat));
return stat;
}
}
for (i = 0; i < numlocks; i++) {
if ((stat = pthread_mutex_destroy(&mutexes[i])) != 0) {
/* We don't halt execution, reporting the error should be sufficient */
- Emsg1(M_ERROR, 0, "Unable to destroy mutex: ERR=%s\n", strerror(stat));
+ Emsg1(M_ERROR, 0, _("Unable to destroy mutex: ERR=%s\n"), strerror(stat));
}
}
int stat;
if ((stat = openssl_init_threads()) != 0) {
- Emsg1(M_ABORT, 0, "Unable to init OpenSSL threading: ERR=%s\n", strerror(stat));
+ Emsg1(M_ABORT, 0, _("Unable to init OpenSSL threading: ERR=%s\n"), strerror(stat));
}
/* Load libssl and libcrypto human-readable error strings */
if (jcr) {
str = jcr->client_name;
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
case 'd':
if (jcr) {
str = job_status_to_str(jcr->JobStatus);
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
case 'i':
bsnprintf(add, sizeof(add), "%d", jcr->JobId);
str = add;
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
case 'j': /* Job name */
if (jcr) {
str = jcr->Job;
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
case 'l':
if (jcr) {
str = job_level_to_str(jcr->JobLevel);
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
case 'n':
}
str = name;
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
case 'r':
if (jcr && jcr->stime) {
str = jcr->stime;
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
case 't':
if (jcr) {
str = job_type_to_str(jcr->JobType);
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
case 'v':
str = "";
}
} else {
- str = "*none*";
+ str = _("*none*");
}
break;
default:
/* var_rc_t to string mapping table */
static const char *var_errors[] = {
- "everything ok", /* VAR_OK = 0 */
- "incomplete named character", /* VAR_ERR_INCOMPLETE_NAMED_CHARACTER */
- "incomplete hexadecimal value", /* VAR_ERR_INCOMPLETE_HEX */
- "invalid hexadecimal value", /* VAR_ERR_INVALID_HEX */
- "octal value too large", /* VAR_ERR_OCTAL_TOO_LARGE */
- "invalid octal value", /* VAR_ERR_INVALID_OCTAL */
- "incomplete octal value", /* VAR_ERR_INCOMPLETE_OCTAL */
- "incomplete grouped hexadecimal value", /* VAR_ERR_INCOMPLETE_GROUPED_HEX */
- "incorrect character class specification", /* VAR_ERR_INCORRECT_CLASS_SPEC */
- "invalid expansion configuration", /* VAR_ERR_INVALID_CONFIGURATION */
- "out of memory", /* VAR_ERR_OUT_OF_MEMORY */
- "incomplete variable specification", /* VAR_ERR_INCOMPLETE_VARIABLE_SPEC */
- "undefined variable", /* VAR_ERR_UNDEFINED_VARIABLE */
- "input is neither text nor variable", /* VAR_ERR_INPUT_ISNT_TEXT_NOR_VARIABLE */
- "unknown command character in variable", /* VAR_ERR_UNKNOWN_COMMAND_CHAR */
- "malformatted search and replace operation", /* VAR_ERR_MALFORMATTED_REPLACE */
- "unknown flag in search and replace operation", /* VAR_ERR_UNKNOWN_REPLACE_FLAG */
- "invalid regex in search and replace operation", /* VAR_ERR_INVALID_REGEX_IN_REPLACE */
- "missing parameter in command", /* VAR_ERR_MISSING_PARAMETER_IN_COMMAND */
- "empty search string in search and replace operation", /* VAR_ERR_EMPTY_SEARCH_STRING */
- "start offset missing in cut operation", /* VAR_ERR_MISSING_START_OFFSET */
- "offsets in cut operation delimited by unknown character", /* VAR_ERR_INVALID_OFFSET_DELIMITER */
- "range out of bounds in cut operation", /* VAR_ERR_RANGE_OUT_OF_BOUNDS */
- "offset out of bounds in cut operation", /* VAR_ERR_OFFSET_OUT_OF_BOUNDS */
- "logic error in cut operation", /* VAR_ERR_OFFSET_LOGIC */
- "malformatted transpose operation", /* VAR_ERR_MALFORMATTED_TRANSPOSE */
- "source and target class mismatch in transpose operation", /* VAR_ERR_TRANSPOSE_CLASSES_MISMATCH */
- "empty character class in transpose operation", /* VAR_ERR_EMPTY_TRANSPOSE_CLASS */
- "incorrect character class in transpose operation", /* VAR_ERR_INCORRECT_TRANSPOSE_CLASS_SPEC */
- "malformatted padding operation", /* VAR_ERR_MALFORMATTED_PADDING */
- "width parameter missing in padding operation", /* VAR_ERR_MISSING_PADDING_WIDTH */
- "fill string missing in padding operation", /* VAR_ERR_EMPTY_PADDING_FILL_STRING */
- "unknown quoted pair in search and replace operation", /* VAR_ERR_UNKNOWN_QUOTED_PAIR_IN_REPLACE */
- "sub-matching reference out of range", /* VAR_ERR_SUBMATCH_OUT_OF_RANGE */
- "invalid argument", /* VAR_ERR_INVALID_ARGUMENT */
- "incomplete quoted pair", /* VAR_ERR_INCOMPLETE_QUOTED_PAIR */
- "lookup function does not support variable arrays", /* VAR_ERR_ARRAY_LOOKUPS_ARE_UNSUPPORTED */
- "index of array variable contains an invalid character", /* VAR_ERR_INVALID_CHAR_IN_INDEX_SPEC */
- "index of array variable is incomplete", /* VAR_ERR_INCOMPLETE_INDEX_SPEC */
- "bracket expression in array variable's index not closed", /* VAR_ERR_UNCLOSED_BRACKET_IN_INDEX */
- "division by zero error in index specification", /* VAR_ERR_DIVISION_BY_ZERO_IN_INDEX */
- "unterminated loop construct", /* VAR_ERR_UNTERMINATED_LOOP_CONSTRUCT */
- "invalid character in loop limits", /* VAR_ERR_INVALID_CHAR_IN_LOOP_LIMITS */
- "malformed operation argument list", /* VAR_ERR_MALFORMED_OPERATION_ARGUMENTS */
- "undefined operation", /* VAR_ERR_UNDEFINED_OPERATION */
- "formatting failure" /* VAR_ERR_FORMATTING_FAILURE */
+ _("everything ok"), /* VAR_OK = 0 */
+ _("incomplete named character"), /* VAR_ERR_INCOMPLETE_NAMED_CHARACTER */
+ _("incomplete hexadecimal value"), /* VAR_ERR_INCOMPLETE_HEX */
+ _("invalid hexadecimal value"), /* VAR_ERR_INVALID_HEX */
+ _("octal value too large"), /* VAR_ERR_OCTAL_TOO_LARGE */
+ _("invalid octal value"), /* VAR_ERR_INVALID_OCTAL */
+ _("incomplete octal value"), /* VAR_ERR_INCOMPLETE_OCTAL */
+ _("incomplete grouped hexadecimal value"), /* VAR_ERR_INCOMPLETE_GROUPED_HEX */
+ _("incorrect character class specification"), /* VAR_ERR_INCORRECT_CLASS_SPEC */
+ _("invalid expansion configuration"), /* VAR_ERR_INVALID_CONFIGURATION */
+ _("out of memory"), /* VAR_ERR_OUT_OF_MEMORY */
+ _("incomplete variable specification"), /* VAR_ERR_INCOMPLETE_VARIABLE_SPEC */
+ _("undefined variable"), /* VAR_ERR_UNDEFINED_VARIABLE */
+ _("input is neither text nor variable"), /* VAR_ERR_INPUT_ISNT_TEXT_NOR_VARIABLE */
+ _("unknown command character in variable"), /* VAR_ERR_UNKNOWN_COMMAND_CHAR */
+ _("malformatted search and replace operation"), /* VAR_ERR_MALFORMATTED_REPLACE */
+ _("unknown flag in search and replace operation"), /* VAR_ERR_UNKNOWN_REPLACE_FLAG */
+ _("invalid regex in search and replace operation"), /* VAR_ERR_INVALID_REGEX_IN_REPLACE */
+ _("missing parameter in command"), /* VAR_ERR_MISSING_PARAMETER_IN_COMMAND */
+ _("empty search string in search and replace operation"), /* VAR_ERR_EMPTY_SEARCH_STRING */
+ _("start offset missing in cut operation"), /* VAR_ERR_MISSING_START_OFFSET */
+ _("offsets in cut operation delimited by unknown character"), /* VAR_ERR_INVALID_OFFSET_DELIMITER */
+ _("range out of bounds in cut operation"), /* VAR_ERR_RANGE_OUT_OF_BOUNDS */
+ _("offset out of bounds in cut operation"), /* VAR_ERR_OFFSET_OUT_OF_BOUNDS */
+ _("logic error in cut operation"), /* VAR_ERR_OFFSET_LOGIC */
+ _("malformatted transpose operation"), /* VAR_ERR_MALFORMATTED_TRANSPOSE */
+ _("source and target class mismatch in transpose operation"), /* VAR_ERR_TRANSPOSE_CLASSES_MISMATCH */
+ _("empty character class in transpose operation"), /* VAR_ERR_EMPTY_TRANSPOSE_CLASS */
+ _("incorrect character class in transpose operation"), /* VAR_ERR_INCORRECT_TRANSPOSE_CLASS_SPEC */
+ _("malformatted padding operation"), /* VAR_ERR_MALFORMATTED_PADDING */
+ _("width parameter missing in padding operation"), /* VAR_ERR_MISSING_PADDING_WIDTH */
+ _("fill string missing in padding operation"), /* VAR_ERR_EMPTY_PADDING_FILL_STRING */
+ _("unknown quoted pair in search and replace operation"), /* VAR_ERR_UNKNOWN_QUOTED_PAIR_IN_REPLACE */
+ _("sub-matching reference out of range"), /* VAR_ERR_SUBMATCH_OUT_OF_RANGE */
+ _("invalid argument"), /* VAR_ERR_INVALID_ARGUMENT */
+ _("incomplete quoted pair"), /* VAR_ERR_INCOMPLETE_QUOTED_PAIR */
+ _("lookup function does not support variable arrays"), /* VAR_ERR_ARRAY_LOOKUPS_ARE_UNSUPPORTED */
+ _("index of array variable contains an invalid character"), /* VAR_ERR_INVALID_CHAR_IN_INDEX_SPEC */
+ _("index of array variable is incomplete"), /* VAR_ERR_INCOMPLETE_INDEX_SPEC */
+ _("bracket expression in array variable's index not closed"), /* VAR_ERR_UNCLOSED_BRACKET_IN_INDEX */
+ _("division by zero error in index specification"), /* VAR_ERR_DIVISION_BY_ZERO_IN_INDEX */
+ _("unterminated loop construct"), /* VAR_ERR_UNTERMINATED_LOOP_CONSTRUCT */
+ _("invalid character in loop limits"), /* VAR_ERR_INVALID_CHAR_IN_LOOP_LIMITS */
+ _("malformed operation argument list"), /* VAR_ERR_MALFORMED_OPERATION_ARGUMENTS */
+ _("undefined operation"), /* VAR_ERR_UNDEFINED_OPERATION */
+ _("formatting failure") /* VAR_ERR_FORMATTING_FAILURE */
};
/* translate a return code into its corresponding descriptive text */
const char *str;
rc = (var_rc_t)(0 - rc);
if (rc < 0 || rc >= (int)sizeof(var_errors) / (int)sizeof(char *)) {
- str = "unknown error";
+ str = _("unknown error");
} else {
str = (char *)var_errors[rc];
}
bool register_watchdog(watchdog_t *wd)
{
if (!wd_is_init) {
- Emsg0(M_ABORT, 0, "BUG! register_watchdog called before start_watchdog\n");
+ Emsg0(M_ABORT, 0, _("BUG! register_watchdog called before start_watchdog\n"));
}
if (wd->callback == NULL) {
- Emsg1(M_ABORT, 0, "BUG! Watchdog %p has NULL callback\n", wd);
+ Emsg1(M_ABORT, 0, _("BUG! Watchdog %p has NULL callback\n"), wd);
}
if (wd->interval == 0) {
- Emsg1(M_ABORT, 0, "BUG! Watchdog %p has zero interval\n", wd);
+ Emsg1(M_ABORT, 0, _("BUG! Watchdog %p has zero interval\n"), wd);
}
wd_lock();
bool ok = false;
if (!wd_is_init) {
- Emsg0(M_ABORT, 0, "BUG! unregister_watchdog_unlocked called before start_watchdog\n");
+ Emsg0(M_ABORT, 0, _("BUG! unregister_watchdog_unlocked called before start_watchdog\n"));
}
wd_lock();
{
int errstat;
if ((errstat=rwl_writelock(&lock)) != 0) {
- Emsg1(M_ABORT, 0, "rwl_writelock failure. ERR=%s\n",
+ Emsg1(M_ABORT, 0, _("rwl_writelock failure. ERR=%s\n"),
strerror(errstat));
}
}
{
int errstat;
if ((errstat=rwl_writeunlock(&lock)) != 0) {
- Emsg1(M_ABORT, 0, "rwl_writeunlock failure. ERR=%s\n",
+ Emsg1(M_ABORT, 0, _("rwl_writeunlock failure. ERR=%s\n"),
strerror(errstat));
}
}
*q = 0;
new_volume(dcr, dev->VolHdr.VolumeName);
Dmsg2(100, "Wanted ANSI Vol %s got %6s\n", VolName, dev->VolHdr.VolumeName);
- Mmsg2(jcr->errmsg, "Wanted ANSI Volume \"%s\" got \"%s\"\n", VolName, dev->VolHdr.VolumeName);
+ Mmsg2(jcr->errmsg, _("Wanted ANSI Volume \"%s\" got \"%s\"\n"), VolName, dev->VolHdr.VolumeName);
return VOL_NAME_ERROR;
}
}
dir_send_job_status(jcr);
if (dev->VolCatInfo.VolCatName[0] == 0) {
- Pmsg0(000, "NULL Volume name. This shouldn't happen!!!\n");
+ Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n"));
}
Dmsg1(20, "Begin append device=%s\n", dev->print_name());
Dmsg0(100, "Just after acquire_device_for_append\n");
if (dev->VolCatInfo.VolCatName[0] == 0) {
- Pmsg0(000, "NULL Volume name. This shouldn't happen!!!\n");
+ Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n"));
}
/*
* Write Begin Session Record
ok = false;
}
if (dev->VolCatInfo.VolCatName[0] == 0) {
- Pmsg0(000, "NULL Volume name. This shouldn't happen!!!\n");
+ Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n"));
}
/* Tell File daemon to send data */
Dmsg1(200, "Write session label JobStatus=%d\n", jcr->JobStatus);
if ((!ok || job_canceled(jcr)) && dev->VolCatInfo.VolCatName[0] == 0) {
- Pmsg0(000, "NULL Volume name. This shouldn't happen!!!\n");
+ Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n"));
}
/*
ok = false;
}
if (dev->VolCatInfo.VolCatName[0] == 0) {
- Pmsg0(000, "NULL Volume name. This shouldn't happen!!!\n");
+ Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n"));
}
Dmsg0(90, "back from write_end_session_label()\n");
/* Flush out final partial block of this session */
}
}
if (dev->VolCatInfo.VolCatName[0] == 0) {
- Pmsg0(000, "NULL Volume name. This shouldn't happen!!!\n");
+ Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n"));
}
if (!ok) {
if (vol->VolCatName[0] == 0) {
Jmsg0(jcr, M_FATAL, 0, _("NULL Volume name. This shouldn't happen!!!\n"));
- Pmsg0(000, "NULL Volume name. This shouldn't happen!!!\n");
+ Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n"));
return false;
}
if (dev->can_read()) {
Jmsg0(jcr, M_FATAL, 0, _("Attempt to update_volume_info in read mode!!!\n"));
- Pmsg0(000, "Attempt to update_volume_info in read mode!!!\n");
+ Pmsg0(000, _("Attempt to update_volume_info in read mode!!!\n"));
return false;
}
/* Do not lock device here because it may be locked from label */
if (!do_get_volume_info(dcr)) {
Jmsg(jcr, M_FATAL, 0, "%s", jcr->errmsg);
- Pmsg2(000, "Didn't get vol info vol=%s: ERR=%s",
+ Pmsg2(000, _("Didn't get vol info vol=%s: ERR=%s"),
vol->VolCatName, jcr->errmsg);
return false;
}
bool dir_ask_sysop_to_mount_volume(DCR *dcr)
{
int stat = 0;
- const char *msg;
DEVICE *dev = dcr->dev;
JCR *jcr = dcr->jcr;
}
if (!dev->poll) {
- msg = _("Please mount");
- Jmsg(jcr, M_MOUNT, 0, _("%s Volume \"%s\" on Storage Device %s for Job %s\n"),
- msg, dcr->VolumeName, dev->print_name(), jcr->Job);
+ Jmsg(jcr, M_MOUNT, 0, _("Please mount Volume \"%s\" on Storage Device %s for Job %s\n"),
+ dcr->VolumeName, dev->print_name(), jcr->Job);
Dmsg3(400, "Mount \"%s\" on device \"%s\" for Job %s\n",
dcr->VolumeName, dev->print_name(), jcr->Job);
}
#endif
if (rcode != R_DIRECTOR) {
- Dmsg1(50, _("I only authenticate Directors, not %d\n"), rcode);
+ Dmsg1(50, "I only authenticate Directors, not %d\n", rcode);
Emsg1(M_FATAL, 0, _("I only authenticate Directors, not %d\n"), rcode);
return 0;
}
if (bs->msglen < 25 || bs->msglen > 200) {
- Dmsg2(50, _("Bad Hello command from Director at %s. Len=%d.\n"),
+ Dmsg2(50, "Bad Hello command from Director at %s. Len=%d.\n",
bs->who, bs->msglen);
Emsg2(M_FATAL, 0, _("Bad Hello command from Director at %s. Len=%d.\n"),
bs->who, bs->msglen);
if (sscanf(bs->msg, "Hello Director %127s calling\n", dirname) != 1) {
bs->msg[100] = 0;
- Dmsg2(50, _("Bad Hello command from Director at %s: %s\n"),
+ Dmsg2(50, "Bad Hello command from Director at %s: %s\n",
bs->who, bs->msg);
Emsg2(M_FATAL, 0, _("Bad Hello command from Director at %s: %s\n"),
bs->who, bs->msg);
}
// UnlockRes();
if (!director) {
- Dmsg2(50, _("Connection from unknown Director %s at %s rejected.\n"),
+ Dmsg2(50, "Connection from unknown Director %s at %s rejected.\n",
dirname, bs->who);
Emsg2(M_FATAL, 0, _("Connection from unknown Director %s at %s rejected.\n"
"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for help.\n"),
if (tls_local_need >= BNET_TLS_OK && tls_remote_need >= BNET_TLS_OK) {
/* Engage TLS! Full Speed Ahead! */
if (!bnet_tls_server(director->tls_ctx, bs, verify_list)) {
- Emsg0(M_FATAL, 0, "TLS negotiation failed.\n");
+ Emsg0(M_FATAL, 0, _("TLS negotiation failed.\n"));
auth_success = false;
goto auth_fatal;
}
if (!authenticate(R_DIRECTOR, dir, jcr)) {
bnet_fsend(dir, "%s", Dir_sorry);
- Dmsg1(50, _("Unable to authenticate Director at %s.\n"), dir->who);
+ Dmsg1(50, "Unable to authenticate Director at %s.\n", dir->who);
Emsg1(M_ERROR, 0, _("Unable to authenticate Director at %s.\n"), dir->who);
bmicrosleep(5, 0);
return 0;
if (tls_local_need >= BNET_TLS_OK && tls_remote_need >= BNET_TLS_OK) {
/* Engage TLS! Full Speed Ahead! */
if (!bnet_tls_server(me->tls_ctx, fd, verify_list)) {
- Jmsg(jcr, M_FATAL, 0, "TLS negotiation failed.\n");
+ Jmsg(jcr, M_FATAL, 0, _("TLS negotiation failed.\n"));
auth_success = false;
goto auth_fatal;
}
if (stat != 0) {
berrno be;
be.set_errno(stat);
- bnet_fsend(dir, "Autochanger error: ERR=%s\n", be.strerror());
+ bnet_fsend(dir, _("Autochanger error: ERR=%s\n"), be.strerror());
}
bnet_sig(dir, BNET_EOD);
ok = true;
{
fprintf(stderr, _(
"Copyright (C) 2002-2005 Kern Sibbald.\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: bcopy [-d debug_level] <input-archive> <output-archive>\n"
" -b bootstrap specify a bootstrap file\n"
" -c <file> specify configuration file\n"
" -p proceed inspite of errors\n"
" -v verbose\n"
" -w <dir> specify working directory (default /tmp)\n"
-" -? print this message\n\n"));
+" -? print this message\n\n"), VERSION, BDATE);
exit(1);
}
char *oVolumeName = NULL;
bool ignore_label_errors = false;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
my_name_is(argc, argv, "bcopy");
init_msg(NULL, NULL);
}
switch (rec->FileIndex) {
case PRE_LABEL:
- Pmsg0(000, "Volume is prelabeled. This volume cannot be copied.\n");
+ Pmsg0(000, _("Volume is prelabeled. This volume cannot be copied.\n"));
return false;
case VOL_LABEL:
- Pmsg0(000, "Volume label not copied.\n");
+ Pmsg0(000, _("Volume label not copied.\n"));
return true;
case SOS_LABEL:
jobs++;
}
break;
case EOM_LABEL:
- Pmsg0(000, "EOM label not copied.\n");
+ Pmsg0(000, _("EOM label not copied.\n"));
return true;
case EOT_LABEL: /* end of all tapes */
- Pmsg0(000, "EOT label not copied.\n");
+ Pmsg0(000, _("EOT label not copied.\n"));
return true;
default:
break;
bool dir_ask_sysop_to_mount_volume(DCR *dcr)
{
DEVICE *dev = dcr->dev;
- fprintf(stderr, "Mount Volume \"%s\" on device %s and press return when ready: ",
+ fprintf(stderr, _("Mount Volume \"%s\" on device %s and press return when ready: "),
dcr->VolumeName, dev->print_name());
getchar();
return true;
static void usage()
{
- fprintf(stderr,
+ fprintf(stderr, _(
"Copyright (C) 2000-2005 Kern Sibbald.\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: bextract <options> <bacula-archive-device-name> <directory-to-store-files>\n"
" -b <file> specify a bootstrap file\n"
" -c <file> specify a configuration file\n"
" -p proceed inspite of I/O errors\n"
" -v verbose\n"
" -V <volumes> specify Volume names (separated by |)\n"
-" -? print this message\n\n");
+" -? print this message\n\n"), VERSION, BDATE);
exit(1);
}
char line[1000];
bool got_inc = false;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
working_directory = "/tmp";
my_name_is(argc, argv, "bextract");
init_msg(NULL, NULL); /* setup message handler */
case 'e': /* exclude list */
if ((fd = fopen(optarg, "r")) == NULL) {
berrno be;
- Pmsg2(0, "Could not open exclude file: %s, ERR=%s\n",
+ Pmsg2(0, _("Could not open exclude file: %s, ERR=%s\n"),
optarg, be.strerror());
exit(1);
}
case 'i': /* include list */
if ((fd = fopen(optarg, "r")) == NULL) {
berrno be;
- Pmsg2(0, "Could not open include file: %s, ERR=%s\n",
+ Pmsg2(0, _("Could not open include file: %s, ERR=%s\n"),
optarg, be.strerror());
exit(1);
}
argv += optind;
if (argc != 2) {
- Pmsg0(0, "Wrong number of arguments: \n");
+ Pmsg0(0, _("Wrong number of arguments: \n"));
usage();
}
free_bsr(bsr);
}
if (prog_name_msg) {
- Pmsg1(000, "%d Program Name and/or Program Data Stream records ignored.\n",
+ Pmsg1(000, _("%d Program Name and/or Program Data Stream records ignored.\n"),
prog_name_msg);
}
if (win32_data_msg) {
- Pmsg1(000, "%d Win32 data or Win32 gzip data stream records. Ignored.\n",
+ Pmsg1(000, _("%d Win32 data or Win32 gzip data stream records. Ignored.\n"),
win32_data_msg);
}
term_include_exclude_files(ff);
/* Make sure where directory exists and that it is a directory */
if (stat(where, &statp) < 0) {
berrno be;
- Emsg2(M_ERROR_TERM, 0, "Cannot stat %s. It must exist. ERR=%s\n",
+ Emsg2(M_ERROR_TERM, 0, _("Cannot stat %s. It must exist. ERR=%s\n"),
where, be.strerror());
}
if (!S_ISDIR(statp.st_mode)) {
- Emsg1(M_ERROR_TERM, 0, "%s must be a directory.\n", where);
+ Emsg1(M_ERROR_TERM, 0, _("%s must be a directory.\n"), where);
}
free(jcr->where);
free_jcr(jcr);
term_dev(dev);
- printf("%u files restored.\n", num_files);
+ printf(_("%u files restored.\n"), num_files);
return;
}
Dmsg2(100, "Write uncompressed %d bytes, total before write=%d\n", compress_len, total);
if ((uLongf)bwrite(&bfd, compress_buf, (size_t)compress_len) != compress_len) {
berrno be;
- Pmsg0(0, "===Write error===\n");
+ Pmsg0(0, _("===Write error===\n"));
Emsg2(M_ERROR, 0, _("Write error on %s: %s\n"),
attr->ofname, be.strerror());
extract = false;
}
#else
if (extract) {
- Emsg0(M_ERROR, 0, "GZIP data stream found, but GZIP not configured!\n");
+ Emsg0(M_ERROR, 0, _("GZIP data stream found, but GZIP not configured!\n"));
extract = false;
return true;
}
case STREAM_PROGRAM_NAMES:
case STREAM_PROGRAM_DATA:
if (!prog_name_msg) {
- Pmsg0(000, "Got Program Name or Data Stream. Ignored.\n");
+ Pmsg0(000, _("Got Program Name or Data Stream. Ignored.\n"));
prog_name_msg++;
}
break;
/* If extracting, wierd stream (not 1 or 2), close output file anyway */
if (extract) {
if (!is_bopen(&bfd)) {
- Emsg0(M_ERROR, 0, "Logic error output file should be open but is not.\n");
+ Emsg0(M_ERROR, 0, _("Logic error output file should be open but is not.\n"));
}
set_attributes(jcr, attr, &bfd);
extract = false;
bool dir_ask_sysop_to_mount_volume(DCR *dcr)
{
DEVICE *dev = dcr->dev;
- fprintf(stderr, "Mount Volume \"%s\" on device %s and press return when ready: ",
+ fprintf(stderr, _("Mount Volume \"%s\" on device %s and press return when ready: "),
dcr->VolumeName, dev->print_name());
getchar();
return true;
BlockCheckSum = bcrc32((uint8_t *)b->buf+BLKHDR_CS_LENGTH,
block_len-BLKHDR_CS_LENGTH);
- Pmsg6(000, "Dump block %s %x: size=%d BlkNum=%d\n"
-" Hdrcksum=%x cksum=%x\n",
+ Pmsg6(000, _("Dump block %s %x: size=%d BlkNum=%d\n"
+" Hdrcksum=%x cksum=%x\n"),
msg, b, block_len, BlockNumber, CheckSum, BlockCheckSum);
p = b->buf + bhl;
while (p < (b->buf + block_len+WRITE_RECHDR_LENGTH)) {
unser_int32(FileIndex);
unser_int32(Stream);
unser_uint32(data_len);
- Pmsg6(000, " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n",
+ Pmsg6(000, _(" Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n"),
VolSessionId, VolSessionTime, FI_to_ascii(FileIndex),
stream_to_ascii(Stream, FileIndex), data_len, p);
p += data_len + rhl;
#ifdef DEBUG_BLOCK_ZEROING
uint32_t *bp = (uint32_t *)block->buf;
if (bp[0] == 0 && bp[1] == 0 && bp[2] == 0 && block->buf[12] == 0) {
- Jmsg0(jcr, M_ABORT, 0, "Write block header zeroed.\n");
+ Jmsg0(jcr, M_ABORT, 0, _("Write block header zeroed.\n"));
}
#endif
#ifdef DEBUG_BLOCK_ZEROING
if (bp[0] == 0 && bp[1] == 0 && bp[2] == 0 && block->buf[12] == 0) {
- Jmsg0(jcr, M_ABORT, 0, "Write block header zeroed.\n");
+ Jmsg0(jcr, M_ABORT, 0, _("Write block header zeroed.\n"));
}
#endif
dcr->block->write_failed = true;
if (weof_dev(dev, 1) != 0) { /* end the tape */
dev->VolCatInfo.VolCatErrors++;
- Jmsg(dcr->jcr, M_ERROR, 0, "Error writing final EOF to tape. This tape may not be readable.\n"
- "%s", dev->errmsg);
+ Jmsg(dcr->jcr, M_ERROR, 0, _("Error writing final EOF to tape. This tape may not be readable.\n"
+ "%s"), dev->errmsg);
ok = false;
Dmsg0(100, "WEOF error.\n");
}
static void usage()
{
- fprintf(stderr,
+ fprintf(stderr, _(
"Copyright (C) 2000-2005 Kern Sibbald.\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: bls [options] <device-name>\n"
" -b <file> specify a bootstrap file\n"
" -c <file> specify a config file\n"
" -p proceed inspite of errors\n"
" -v be verbose\n"
" -V specify Volume names (separated by |)\n"
-" -? print this message\n\n");
+" -? print this message\n\n"), VERSION, BDATE);
exit(1);
}
char *bsrName = NULL;
bool ignore_label_errors = false;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
working_directory = "/tmp";
my_name_is(argc, argv, "bls");
init_msg(NULL, NULL); /* initialize message handler */
* If on second or subsequent volume, adjust buffer pointer
*/
if (dev->VolHdr.PrevVolumeName[0] != 0) { /* second volume */
- Pmsg1(0, "\n"
-"Warning, this Volume is a continuation of Volume %s\n",
+ Pmsg1(0, _("\n"
+ "Warning, this Volume is a continuation of Volume %s\n"),
dev->VolHdr.PrevVolumeName);
}
block->VolSessionId, block->VolSessionTime);
if (verbose == 1) {
read_record_from_block(block, rec);
- Pmsg9(-1, "File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%s rlen=%d\n",
+ Pmsg9(-1, _("File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%s rlen=%d\n"),
dev->file, dev->block_num,
block->BlockNumber, block->block_len,
FI_to_ascii(rec->FileIndex), rec->VolSessionId, rec->VolSessionTime,
} else if (verbose > 1) {
dump_block(block, "");
} else {
- printf("Block: %d size=%d\n", block->BlockNumber, block->block_len);
+ printf(_("Block: %d size=%d\n"), block->BlockNumber, block->block_len);
}
}
if (file_is_included(ff, attr->fname) && !file_is_excluded(ff, attr->fname)) {
if (verbose) {
- Pmsg5(-1, "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n",
+ Pmsg5(-1, _("FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n"),
rec->FileIndex, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len);
}
print_ls_output(jcr, attr);
memset(sessrec, 0, sizeof(sessrec));
switch (rec->FileIndex) {
case PRE_LABEL:
- rtype = "Fresh Volume Label";
+ rtype = _("Fresh Volume Label");
break;
case VOL_LABEL:
- rtype = "Volume Label";
+ rtype = _("Volume Label");
unser_volume_label(dev, rec);
break;
case SOS_LABEL:
- rtype = "Begin Job Session";
+ rtype = _("Begin Job Session");
unser_session_label(sessrec, rec);
break;
case EOS_LABEL:
- rtype = "End Job Session";
+ rtype = _("End Job Session");
break;
case EOM_LABEL:
- rtype = "End of Medium";
+ rtype = _("End of Medium");
break;
default:
- rtype = "Unknown";
+ rtype = _("Unknown");
break;
}
Dmsg5(10, "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n",
rtype, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len);
if (verbose) {
- Pmsg5(-1, "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n",
+ Pmsg5(-1, _("%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n"),
rtype, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len);
}
}
bool dir_ask_sysop_to_mount_volume(DCR *dcr)
{
DEVICE *dev = dcr->dev;
- fprintf(stderr, "Mount Volume \"%s\" on device %s and press return when ready: ",
+ fprintf(stderr, _("Mount Volume \"%s\" on device %s and press return when ready: "),
dcr->VolumeName, dev->print_name());
getchar();
return true;
{
fprintf(stderr, _(
"Copyright (C) 2001-2005 Kern Sibbald.\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: bscan [ options ] <bacula-archive>\n"
" -b bootstrap specify a bootstrap file\n"
" -c <file> specify configuration file\n"
" -v verbose\n"
" -V <Volumes> specify Volume names (separated by |)\n"
" -w <dir> specify working directory (default from conf file)\n"
-" -? print this message\n\n"));
+" -? print this message\n\n"), VERSION, BDATE);
exit(1);
}
struct stat stat_buf;
char *VolumeName = NULL;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
my_name_is(argc, argv, "bscan");
init_msg(NULL, NULL);
}
do_scan();
- printf("Records %sadded or updated in the catalog:\n%7d Media\n%7d Pool\n%7d Job\n%7d File\n",
- update_db?"":"would have been ",
- num_media, num_pools, num_jobs, num_files);
+ if (update_db) {
+ printf("Records added or updated in the catalog:\n%7d Media\n%7d Pool\n%7d Job\n%7d File\n",
+ num_media, num_pools, num_jobs, num_files);
+ }
+ else {
+ printf("Records would have been added or updated in the catalog:\n%7d Media\n%7d Pool\n%7d Job\n%7d File\n",
+ num_media, num_pools, num_jobs, num_files);
+ }
free_jcr(bjcr);
term_dev(dev);
if (showProgress) {
int pct = (mr.VolBytes * 100) / currentVolumeSize;
if (pct != last_pct) {
- fprintf(stdout, "done: %d%%\n", pct);
+ fprintf(stdout, _("done: %d%%\n"), pct);
fflush(stdout);
last_pct = pct;
}
offline_dev(dev);
}
force_close_device(dev);
- fprintf(stderr, "Mount Volume \"%s\" on device %s and press return when ready: ",
+ fprintf(stderr, _("Mount Volume \"%s\" on device %s and press return when ready: "),
dcr->VolumeName, dev->print_name());
getchar();
return true;
uint32_t x32, y32;
uint64_t x64, y64;
char buf[1000];
+
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
/* Sanity checks */
if (TAPE_BSIZE % B_DEV_BSIZE != 0 || TAPE_BSIZE / B_DEV_BSIZE == 0) {
- Emsg2(M_ABORT, 0, "Tape block size (%d) not multiple of system size (%d)\n",
+ Emsg2(M_ABORT, 0, _("Tape block size (%d) not multiple of system size (%d)\n"),
TAPE_BSIZE, B_DEV_BSIZE);
}
if (TAPE_BSIZE != (1 << (ffs(TAPE_BSIZE)-1))) {
- Emsg1(M_ABORT, 0, "Tape block size (%d) is not a power of 2\n", TAPE_BSIZE);
+ Emsg1(M_ABORT, 0, _("Tape block size (%d) is not a power of 2\n"), TAPE_BSIZE);
}
if (sizeof(off_t) < 8) {
- Pmsg1(-1, "\n\n!!!! Warning large disk addressing disabled. off_t=%d should be 8 or more !!!!!\n\n\n",
+ Pmsg1(-1, _("\n\n!!!! Warning large disk addressing disabled. off_t=%d should be 8 or more !!!!!\n\n\n"),
sizeof(off_t));
}
x32 = 123456789;
bsnprintf(buf, sizeof(buf), "%u", x32);
i = bsscanf(buf, "%u", &y32);
if (i != 1 || x32 != y32) {
- Pmsg3(-1, "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n", i, x32, y32);
+ Pmsg3(-1, _("32 bit printf/scanf problem. i=%d x32=%u y32=%u\n"), i, x32, y32);
exit(1);
}
x64 = 123456789;
bsnprintf(buf, sizeof(buf), "%" llu, x64);
i = bsscanf(buf, "%llu", &y64);
if (i != 1 || x64 != y64) {
- Pmsg3(-1, "64 bit printf/scanf problem. i=%d x64=%" llu " y64=%" llu "\n", i, x64, y64);
+ Pmsg3(-1, _("64 bit printf/scanf problem. i=%d x64=%" llu " y64=%" llu "\n"), i, x64, y64);
exit(1);
}
- printf("Tape block granularity is %d bytes.\n", TAPE_BSIZE);
+ printf(_("Tape block granularity is %d bytes.\n"), TAPE_BSIZE);
working_directory = "/tmp";
my_name_is(margc, margv, "btape");
/* See if we can open a device */
if (margc == 0) {
- Pmsg0(000, "No archive name specified.\n");
+ Pmsg0(000, _("No archive name specified.\n"));
usage();
exit(1);
} else if (margc != 1) {
- Pmsg0(000, "Improper number of arguments specified.\n");
+ Pmsg0(000, _("Improper number of arguments specified.\n"));
usage();
exit(1);
}
return false;
}
}
- Pmsg1(000, "open device %s: OK\n", dev->print_name());
+ Pmsg1(000, _("open device %s: OK\n"), dev->print_name());
dev->set_append(); /* put volume in append mode */
unlock_device(dev);
free_block(block);
if (VolumeName) {
pm_strcpy(cmd, VolumeName);
} else {
- if (!get_cmd("Enter Volume Name: ")) {
+ if (!get_cmd(_("Enter Volume Name: "))) {
return;
}
}
if (!dev->is_open()) {
if (!first_open_device(dcr)) {
- Pmsg1(0, "Device open failed. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Device open failed. ERR=%s\n"), strerror_dev(dev));
}
}
rewind_dev(dev);
write_new_volume_label_to_dev(dcr, cmd, "Default");
- Pmsg1(-1, "Wrote Volume label for volume \"%s\".\n", cmd);
+ Pmsg1(-1, _("Wrote Volume label for volume \"%s\".\n"), cmd);
}
/*
stat = read_dev_volume_label(dcr);
switch (stat) {
case VOL_NO_LABEL:
- Pmsg0(0, "Volume has no label.\n");
+ Pmsg0(0, _("Volume has no label.\n"));
break;
case VOL_OK:
- Pmsg0(0, "Volume label read correctly.\n");
+ Pmsg0(0, _("Volume label read correctly.\n"));
break;
case VOL_IO_ERROR:
- Pmsg1(0, "I/O error on device: ERR=%s", strerror_dev(dev));
+ Pmsg1(0, _("I/O error on device: ERR=%s"), strerror_dev(dev));
break;
case VOL_NAME_ERROR:
- Pmsg0(0, "Volume name error\n");
+ Pmsg0(0, _("Volume name error\n"));
break;
case VOL_CREATE_ERROR:
- Pmsg1(0, "Error creating label. ERR=%s", strerror_dev(dev));
+ Pmsg1(0, _("Error creating label. ERR=%s"), strerror_dev(dev));
break;
case VOL_VERSION_ERROR:
- Pmsg0(0, "Volume version error.\n");
+ Pmsg0(0, _("Volume version error.\n"));
break;
case VOL_LABEL_ERROR:
- Pmsg0(0, "Bad Volume label type.\n");
+ Pmsg0(0, _("Bad Volume label type.\n"));
break;
default:
- Pmsg0(0, "Unknown error.\n");
+ Pmsg0(0, _("Unknown error.\n"));
break;
}
{
if (!load_dev(dev)) {
- Pmsg1(0, "Bad status from load. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from load. ERR=%s\n"), strerror_dev(dev));
} else
- Pmsg1(0, "Loaded %s\n", dev->print_name());
+ Pmsg1(0, _("Loaded %s\n"), dev->print_name());
}
/*
static void rewindcmd()
{
if (!rewind_dev(dev)) {
- Pmsg1(0, "Bad status from rewind. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from rewind. ERR=%s\n"), strerror_dev(dev));
clrerror_dev(dev, -1);
} else {
- Pmsg1(0, "Rewound %s\n", dev->print_name());
+ Pmsg1(0, _("Rewound %s\n"), dev->print_name());
}
}
}
if ((stat = weof_dev(dev, num)) < 0) {
- Pmsg2(0, "Bad status from weof %d. ERR=%s\n", stat, strerror_dev(dev));
+ Pmsg2(0, _("Bad status from weof %d. ERR=%s\n"), stat, strerror_dev(dev));
return;
} else {
- Pmsg3(0, "Wrote %d EOF%s to %s\n", num, num==1?"":"s", dev->print_name());
+ if (num==1) {
+ Pmsg1(0, _("Wrote 1 EOF to %s\n"), dev->print_name());
+ }
+ else {
+ Pmsg2(0, _("Wrote %d EOFs to %s\n"), num, dev->print_name());
+ }
}
}
printf("File=%u block=%u\n", dev->file, dev->block_num);
printf("Min block=%u Max block=%u\n", dev->min_block_size, dev->max_block_size);
- printf("Status:\n");
+ printf(_("Status:\n"));
statcmd();
}
DEV_RECORD *rec;
int i, blkno = 0;
- Pmsg0(0, "Test writting larger and larger records.\n"
+ Pmsg0(0, _("Test writting larger and larger records.\n"
"This is a torture test for records.\nI am going to write\n"
"larger and larger records. It will stop when the record size\n"
-"plus the header exceeds the block size (by default about 64K)\n");
+"plus the header exceeds the block size (by default about 64K)\n"));
- get_cmd("Do you want to continue? (y/n): ");
+ get_cmd(_("Do you want to continue? (y/n): "));
if (cmd[0] != 'y') {
- Pmsg0(000, "Command aborted.\n");
+ Pmsg0(000, _("Command aborted.\n"));
return;
}
if (write_record_to_block(block, rec)) {
empty_block(block);
blkno++;
- Pmsg2(0, "Block %d i=%d\n", blkno, i);
+ Pmsg2(0, _("Block %d i=%d\n"), blkno, i);
} else {
break;
}
goto bail_out;
}
}
- Pmsg0(0, "Backspaced over EOF OK.\n");
+ Pmsg0(0, _("Backspaced over EOF OK.\n"));
if (!bsr_dev(dev, 1)) {
Pmsg1(0, _("Backspace record failed! ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
- Pmsg0(0, "Backspace record OK.\n");
+ Pmsg0(0, _("Backspace record OK.\n"));
if (!read_block_from_dev(dcr, NO_BLOCK_NUMBER_CHECK)) {
berrno be;
Pmsg1(0, _("Read block failed! ERR=%s\n"), be.strerror(dev->dev_errno));
block = dcr->block;
rec = new_record();
if (!rewind_dev(dev)) {
- Pmsg1(0, "Bad status from rewind. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from rewind. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
rec->data = check_pool_memory_size(rec->data, block->buf_len);
weofcmd();
}
if (!rewind_dev(dev)) {
- Pmsg1(0, "Bad status from rewind. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from rewind. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
} else {
- Pmsg0(0, "Rewind OK.\n");
+ Pmsg0(0, _("Rewind OK.\n"));
}
for (i=1; i<=2000; i++) {
read_again:
empty_block(block);
rec = new_record();
if (!rewind_dev(dev)) {
- Pmsg1(0, "Bad status from rewind. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from rewind. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
rec->data = check_pool_memory_size(rec->data, block->buf_len);
weofcmd();
}
if (!rewind_dev(dev)) {
- Pmsg1(0, "Bad status from rewind. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from rewind. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
} else {
- Pmsg0(0, "Rewind OK.\n");
+ Pmsg0(0, _("Rewind OK.\n"));
}
while(ok) {
ok = false;
continue;
}
- Pmsg2(-1, "Reposition to file:block %d:%d\n", file, blk);
+ Pmsg2(-1, _("Reposition to file:block %d:%d\n"), file, blk);
if (!reposition_dev(dev, file, blk)) {
- Pmsg0(0, "Reposition error.\n");
+ Pmsg0(0, _("Reposition error.\n"));
goto bail_out;
}
read_again:
rewindcmd();
Pmsg0(0, _("Now moving to end of medium.\n"));
eodcmd();
- Pmsg2(-1, _("We should be in file 3. I am at file %d. This is %s\n"),
- dev->file, dev->file == 3 ? "correct!" : "NOT correct!!!!");
+ Pmsg2(-1, _("We should be in file 3. I am at file %d. %s\n"),
+ dev->file, dev->file == 3 ? _("This is correct!") : _("This is NOT correct!!!!"));
if (dev->file != 3) {
return -1;
}
rewindcmd();
Pmsg0(-1, _("Done appending, there should be no I/O errors\n\n"));
- Pmsg0(-1, "Doing Bacula scan of blocks:\n");
+ Pmsg0(-1, _("Doing Bacula scan of blocks:\n"));
scan_blocks();
Pmsg0(-1, _("End scanning the tape.\n"));
- Pmsg2(-1, _("We should be in file 4. I am at file %d. This is %s\n"),
- dev->file, dev->file == 4 ? "correct!" : "NOT correct!!!!");
+ Pmsg2(-1, _("We should be in file 4. I am at file %d. %s\n"),
+ dev->file, dev->file == 4 ? _("This is correct!") : _("This is NOT correct!!!!"));
if (dev->file != 4) {
return -2;
return 1;
}
if (!(dcr->device && dcr->device->changer_name && dcr->device->changer_command)) {
- Pmsg0(-1, "\nAutochanger enabled, but no name or no command device specified.\n");
+ Pmsg0(-1, _("\nAutochanger enabled, but no name or no command device specified.\n"));
return 1;
}
- Pmsg0(-1, "\nAh, I see you have an autochanger configured.\n"
+ Pmsg0(-1, _("\nAh, I see you have an autochanger configured.\n"
"To test the autochanger you must have a blank tape\n"
- " that I can write on in Slot 1.\n");
- if (!get_cmd("\nDo you wish to continue with the Autochanger test? (y/n): ")) {
+ " that I can write on in Slot 1.\n"));
+ if (!get_cmd(_("\nDo you wish to continue with the Autochanger test? (y/n): "))) {
return 0;
}
if (cmd[0] != 'y' && cmd[0] != 'Y') {
goto bail_out;
}
if (loaded) {
- Pmsg1(-1, "Slot %d loaded. I am going to unload it.\n", loaded);
+ Pmsg1(-1, _("Slot %d loaded. I am going to unload it.\n"), loaded);
} else {
- Pmsg0(-1, "Nothing loaded in the drive. OK.\n");
+ Pmsg0(-1, _("Nothing loaded in the drive. OK.\n"));
}
Dmsg1(100, "Results from loaded query=%s\n", results);
if (loaded) {
changer = edit_device_codes(dcr, changer,
dcr->device->changer_command, "unload");
status = run_program(changer, timeout, results);
- Pmsg2(-1, "unload status=%s %d\n", status==0?"OK":"Bad", status);
+ Pmsg2(-1, _("unload status=%s %d\n"), status==0?_("OK"):_("Bad"), status);
if (status != 0) {
berrno be;
Pmsg1(-1, _("3992 Bad autochanger command: %s\n"), changer);
*/
bmicrosleep(sleep_time, 0);
if (!rewind_dev(dev) || weof_dev(dev,1) < 0) {
- Pmsg1(0, "Bad status from rewind. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from rewind. ERR=%s\n"), strerror_dev(dev));
clrerror_dev(dev, -1);
- Pmsg0(-1, "\nThe test failed, probably because you need to put\n"
+ Pmsg0(-1, _("\nThe test failed, probably because you need to put\n"
"a longer sleep time in the mtx-script in the load) case.\n"
- "Adding a 30 second sleep and trying again ...\n");
+ "Adding a 30 second sleep and trying again ...\n"));
sleep_time += 30;
goto try_again;
} else {
- Pmsg1(0, "Rewound %s\n", dev->print_name());
+ Pmsg1(0, _("Rewound %s\n"), dev->print_name());
}
if ((status = weof_dev(dev, 1)) < 0) {
- Pmsg2(0, "Bad status from weof %d. ERR=%s\n", status, strerror_dev(dev));
+ Pmsg2(0, _("Bad status from weof %d. ERR=%s\n"), status, strerror_dev(dev));
goto bail_out;
} else {
- Pmsg1(0, "Wrote EOF to %s\n", dev->print_name());
+ Pmsg1(0, _("Wrote EOF to %s\n"), dev->print_name());
}
if (sleep_time) {
- Pmsg1(-1, "\nThe test worked this time. Please add:\n\n"
+ Pmsg1(-1, _("\nThe test worked this time. Please add:\n\n"
" sleep %d\n\n"
- "to your mtx-changer script in the load) case.\n\n",
+ "to your mtx-changer script in the load) case.\n\n"),
sleep_time);
} else {
- Pmsg0(-1, "\nThe test autochanger worked!!\n\n");
+ Pmsg0(-1, _("\nThe test autochanger worked!!\n\n"));
}
free_pool_memory(changer);
bail_out:
free_pool_memory(changer);
free_pool_memory(results);
- Pmsg0(-1, "You must correct this error or the Autochanger will not work.\n");
+ Pmsg0(-1, _("You must correct this error or the Autochanger will not work.\n"));
return -2;
}
rewindcmd();
Pmsg0(0, _("Now forward spacing 1 file.\n"));
if (!dev->fsf(1)) {
- Pmsg1(0, "Bad status from fsr. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from fsr. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
- Pmsg2(-1, _("We should be in file 1. I am at file %d. This is %s\n"),
- dev->file, dev->file == 1 ? "correct!" : "NOT correct!!!!");
+ Pmsg2(-1, _("We should be in file 1. I am at file %d. %s\n"),
+ dev->file, dev->file == 1 ? _("This is correct!") : _("This is NOT correct!!!!"));
if (dev->file != 1) {
goto bail_out;
Pmsg0(0, _("Now forward spacing 2 files.\n"));
if (!dev->fsf(2)) {
- Pmsg1(0, "Bad status from fsr. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from fsr. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
- Pmsg2(-1, _("We should be in file 3. I am at file %d. This is %s\n"),
- dev->file, dev->file == 3 ? "correct!" : "NOT correct!!!!");
+ Pmsg2(-1, _("We should be in file 3. I am at file %d. %s\n"),
+ dev->file, dev->file == 3 ? _("This is correct!") : _("This is NOT correct!!!!"));
if (dev->file != 3) {
goto bail_out;
rewindcmd();
Pmsg0(0, _("Now forward spacing 4 files.\n"));
if (!dev->fsf(4)) {
- Pmsg1(0, "Bad status from fsr. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from fsr. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
- Pmsg2(-1, _("We should be in file 4. I am at file %d. This is %s\n"),
- dev->file, dev->file == 4 ? "correct!" : "NOT correct!!!!");
+ Pmsg2(-1, _("We should be in file 4. I am at file %d. %s\n"),
+ dev->file, dev->file == 4 ? _("This is correct!") : _("This is NOT correct!!!!"));
if (dev->file != 4) {
goto bail_out;
}
if (set_off) {
- Pmsg0(-1, "The test worked this time. Please add:\n\n"
+ Pmsg0(-1, _("The test worked this time. Please add:\n\n"
" Fast Forward Space File = no\n\n"
- "to your Device resource for this drive.\n");
+ "to your Device resource for this drive.\n"));
}
Pmsg0(-1, "\n");
Pmsg0(0, _("Now forward spacing 1 more file.\n"));
if (!dev->fsf(1)) {
- Pmsg1(0, "Bad status from fsr. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from fsr. ERR=%s\n"), strerror_dev(dev));
}
- Pmsg2(-1, _("We should be in file 5. I am at file %d. This is %s\n"),
- dev->file, dev->file == 5 ? "correct!" : "NOT correct!!!!");
+ Pmsg2(-1, _("We should be in file 5. I am at file %d. %s\n"),
+ dev->file, dev->file == 5 ? _("This is correct!") : _("This is NOT correct!!!!"));
if (dev->file != 5) {
goto bail_out;
}
bail_out:
Pmsg0(-1, _("\nThe forward space file test failed.\n"));
if (dev_cap(dev, CAP_FASTFSF)) {
- Pmsg0(-1, "You have Fast Forward Space File enabled.\n"
- "I am turning it off then retrying the test.\n");
+ Pmsg0(-1, _("You have Fast Forward Space File enabled.\n"
+ "I am turning it off then retrying the test.\n"));
dev->capabilities &= ~CAP_FASTFSF;
set_off = true;
goto test_again;
}
- Pmsg0(-1, "You must correct this error or Bacula will not work.\n"
+ Pmsg0(-1, _("You must correct this error or Bacula will not work.\n"
"Some systems, e.g. OpenBSD, require you to set\n"
" Use MTIOCGET= no\n"
- "in your device resource. Use with caution.\n");
+ "in your device resource. Use with caution.\n"));
return -2;
}
}
if (stat == -1) { /* first test failed */
if (dev_cap(dev, CAP_EOM) || dev_cap(dev, CAP_FASTFSF)) {
- Pmsg0(-1, "\nAppend test failed. Attempting again.\n"
+ Pmsg0(-1, _("\nAppend test failed. Attempting again.\n"
"Setting \"Hardware End of Medium = no\n"
" and \"Fast Forward Space File = no\n"
- "and retrying append test.\n\n");
+ "and retrying append test.\n\n"));
dev->capabilities &= ~CAP_EOM; /* turn off eom */
dev->capabilities &= ~CAP_FASTFSF; /* turn off fast fsf */
stat = append_test();
if (stat == 1) {
- Pmsg0(-1, "\n\nIt looks like the test worked this time, please add:\n\n"
+ Pmsg0(-1, _("\n\nIt looks like the test worked this time, please add:\n\n"
" Hardware End of Medium = No\n\n"
" Fast Forward Space File = No\n"
- "to your Device resource in the Storage conf file.\n");
+ "to your Device resource in the Storage conf file.\n"));
goto all_done;
}
if (stat == -1) {
- Pmsg0(-1, "\n\nThat appears *NOT* to have corrected the problem.\n");
+ Pmsg0(-1, _("\n\nThat appears *NOT* to have corrected the problem.\n"));
goto failed;
}
/* Wrong count after append */
if (stat == -2) {
- Pmsg0(-1, "\n\nIt looks like the append failed. Attempting again.\n"
- "Setting \"BSF at EOM = yes\" and retrying append test.\n");
+ Pmsg0(-1, _("\n\nIt looks like the append failed. Attempting again.\n"
+ "Setting \"BSF at EOM = yes\" and retrying append test.\n"));
dev->capabilities |= CAP_BSFATEOM; /* backspace on eom */
stat = append_test();
if (stat == 1) {
- Pmsg0(-1, "\n\nIt looks like the test worked this time, please add:\n\n"
+ Pmsg0(-1, _("\n\nIt looks like the test worked this time, please add:\n\n"
" Hardware End of Medium = No\n"
" Fast Forward Space File = No\n"
" BSF at EOM = yes\n\n"
- "to your Device resource in the Storage conf file.\n");
+ "to your Device resource in the Storage conf file.\n"));
goto all_done;
}
}
}
failed:
- Pmsg0(-1, "\nAppend test failed.\n\n");
- Pmsg0(-1, "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
+ Pmsg0(-1, _("\nAppend test failed.\n\n"
+ "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
"Unable to correct the problem. You MUST fix this\n"
- "problem before Bacula can use your tape drive correctly\n");
- Pmsg0(-1, "\nPerhaps running Bacula in fixed block mode will work.\n"
+ "problem before Bacula can use your tape drive correctly\n"
+ "\nPerhaps running Bacula in fixed block mode will work.\n"
"Do so by setting:\n\n"
"Minimum Block Size = nnn\n"
"Maximum Block Size = nnn\n\n"
"\n"
"Some systems, e.g. OpenBSD, require you to set\n"
" Use MTIOCGET= no\n"
- "in your device resource. Use with caution.\n");
+ "in your device resource. Use with caution.\n"));
return;
}
"1 block of 64448 bytes in file 4\n"
"End of File mark.\n"
"Total files=4, blocks=7, bytes = 451,136\n"
- "=== End sample correct output ===\n\n"));
-
- Pmsg0(-1, _("If the above scan output is not identical to the\n"
- "sample output, you MUST correct the problem\n"
- "or Bacula will not be able to write multiple Jobs to \n"
- "the tape.\n\n"));
+ "=== End sample correct output ===\n\n"
+ "If the above scan output is not identical to the\n"
+ "sample output, you MUST correct the problem\n"
+ "or Bacula will not be able to write multiple Jobs to \n"
+ "the tape.\n\n"));
if (stat == 1) {
re_read_block_test();
num = 1;
}
if (!dev->fsf(num)) {
- Pmsg1(0, "Bad status from fsf. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from fsf. ERR=%s\n"), strerror_dev(dev));
return;
}
- Pmsg2(0, "Forward spaced %d file%s.\n", num, num==1?"":"s");
+ if (num == 1) {
+ Pmsg0(0, _("Forward spaced 1 file.\n"));
+ }
+ else {
+ Pmsg1(0, _("Forward spaced %d files.\n"), num);
+ }
}
/* Forward space a record */
num = 1;
}
if (!dev->fsr(num)) {
- Pmsg1(0, "Bad status from fsr. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(0, _("Bad status from fsr. ERR=%s\n"), strerror_dev(dev));
return;
}
- Pmsg2(0, "Forward spaced %d record%s.\n", num, num==1?"":"s");
+ if (num == 1) {
+ Pmsg0(0, _("Forward spaced 1 record.\n"));
+ }
+ else {
+ Pmsg1(0, _("Forward spaced %d records.\n"), num);
+ }
}
char *buf;
int stat, len;
- if (!get_cmd("Enter length to read: ")) {
+ if (!get_cmd(_("Enter length to read: "))) {
return;
}
len = atoi(cmd);
blocks = block_size = tot_blocks = 0;
bytes = 0;
if (dev->state & ST_EOT) {
- Pmsg0(0, "End of tape\n");
+ Pmsg0(0, _("End of tape\n"));
return;
}
update_pos_dev(dev);
if ((stat = read(dev->fd, buf, sizeof(buf))) < 0) {
berrno be;
clrerror_dev(dev, -1);
- Mmsg2(dev->errmsg, "read error on %s. ERR=%s.\n",
+ Mmsg2(dev->errmsg, _("read error on %s. ERR=%s.\n"),
dev->dev_name, be.strerror());
- Pmsg2(0, "Bad status from read %d. ERR=%s\n", stat, strerror_dev(dev));
- if (blocks > 0)
- printf("%d block%s of %d bytes in file %d\n",
- blocks, blocks>1?"s":"", block_size, dev->file);
+ Pmsg2(0, _("Bad status from read %d. ERR=%s\n"), stat, strerror_dev(dev));
+ if (blocks > 0) {
+ if (blocks==1) {
+ printf(_("1 block of %d bytes in file %d\n"), block_size, dev->file);
+ }
+ else {
+ printf(_("%d blocks of %d bytes in file %d\n"), blocks, block_size, dev->file);
+ }
+ }
return;
}
Dmsg1(200, "read status = %d\n", stat);
if (stat != block_size) {
update_pos_dev(dev);
if (blocks > 0) {
- printf("%d block%s of %d bytes in file %d\n",
- blocks, blocks>1?"s":"", block_size, dev->file);
+ if (blocks==1) {
+ printf(_("1 block of %d bytes in file %d\n"), block_size, dev->file);
+ }
+ else {
+ printf(_("%d blocks of %d bytes in file %d\n"), blocks, block_size, dev->file);
+ }
blocks = 0;
}
block_size = stat;
}
if (stat == 0) { /* EOF */
update_pos_dev(dev);
- printf("End of File mark.\n");
+ printf(_("End of File mark.\n"));
/* Two reads of zero means end of tape */
if (dev->state & ST_EOF)
dev->state |= ST_EOT;
dev->file++;
}
if (dev->state & ST_EOT) {
- printf("End of tape\n");
+ printf(_("End of tape\n"));
break;
}
} else { /* Got data */
}
update_pos_dev(dev);
tot_files = dev->file - tot_files;
- printf("Total files=%d, blocks=%d, bytes = %s\n", tot_files, tot_blocks,
+ printf(_("Total files=%d, blocks=%d, bytes = %s\n"), tot_files, tot_blocks,
edit_uint64_with_commas(bytes, ec1));
}
Dmsg1(100, "!read_block(): ERR=%s\n", strerror_dev(dev));
if (dev->state & ST_EOT) {
if (blocks > 0) {
- printf("%d block%s of %d bytes in file %d\n",
- blocks, blocks>1?"s":"", block_size, dev->file);
+ if (blocks==1) {
+ printf(_("1 block of %d bytes in file %d\n"), block_size, dev->file);
+ }
+ else {
+ printf(_("%d blocks of %d bytes in file %d\n"), blocks, block_size, dev->file);
+ }
blocks = 0;
}
goto bail_out;
}
if (dev->state & ST_EOF) {
if (blocks > 0) {
- printf("%d block%s of %d bytes in file %d\n",
- blocks, blocks>1?"s":"", block_size, dev->file);
+ if (blocks==1) {
+ printf(_("1 block of %d bytes in file %d\n"), block_size, dev->file);
+ }
+ else {
+ printf(_("%d blocks of %d bytes in file %d\n"), blocks, block_size, dev->file);
+ }
blocks = 0;
}
printf(_("End of File mark.\n"));
}
if (dev->state & ST_SHORT) {
if (blocks > 0) {
- printf("%d block%s of %d bytes in file %d\n",
- blocks, blocks>1?"s":"", block_size, dev->file);
+ if (blocks==1) {
+ printf(_("1 block of %d bytes in file %d\n"), block_size, dev->file);
+ }
+ else {
+ printf(_("%d blocks of %d bytes in file %d\n"), blocks, block_size, dev->file);
+ }
blocks = 0;
}
printf(_("Short block read.\n"));
}
if (block->block_len != block_size) {
if (blocks > 0) {
- printf("%d block%s of %d bytes in file %d\n",
- blocks, blocks>1?"s":"", block_size, dev->file);
+ if (blocks==1) {
+ printf(_("1 block of %d bytes in file %d\n"), block_size, dev->file);
+ }
+ else {
+ printf(_("%d blocks of %d bytes in file %d\n"), blocks, block_size, dev->file);
+ }
blocks = 0;
}
block_size = block->block_len;
if (verbose == 1) {
DEV_RECORD *rec = new_record();
read_record_from_block(block, rec);
- Pmsg8(-1, "Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%s rlen=%d\n",
+ Pmsg8(-1, _("Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%s rlen=%d\n"),
block->BlockNumber, dev->block_num, block->block_len,
FI_to_ascii(rec->FileIndex), rec->VolSessionId, rec->VolSessionTime,
stream_to_ascii(rec->Stream, rec->FileIndex), rec->data_len);
}
bail_out:
tot_files = dev->file - tot_files;
- printf("Total files=%d, blocks=%d, bytes = %s\n", tot_files, tot_blocks,
+ printf(_("Total files=%d, blocks=%d, bytes = %s\n"), tot_files, tot_blocks,
edit_uint64_with_commas(bytes, ec1));
}
{
int debug = debug_level;
debug_level = 30;
- Pmsg2(0, "Device status: %u. ERR=%s\n", status_dev(dev), strerror_dev(dev));
+ Pmsg2(0, _("Device status: %u. ERR=%s\n"), status_dev(dev), strerror_dev(dev));
#ifdef xxxx
dump_volume_label(dev);
#endif
last_block_num = 0;
BlockNumber = 0;
- Pmsg0(-1, "\n"
+ Pmsg0(-1, _("\n"
"This command simulates Bacula writing to a tape.\n"
"It requires either one or two blank tapes, which it\n"
"will label and write.\n\n"
"fills, it will ask for a second, and after writing a few more \n"
"blocks, it will stop. Then it will begin re-reading the\n"
"two tapes.\n\n"
-"This may take a long time -- hours! ...\n\n");
+"This may take a long time -- hours! ...\n\n"));
- get_cmd("Do you want to run the simplified test (s) with one tape\n"
- "or the complete multiple tape (m) test: (s/m) ");
+ get_cmd(_("Do you want to run the simplified test (s) with one tape\n"
+ "or the complete multiple tape (m) test: (s/m) "));
if (cmd[0] == 's') {
- Pmsg0(-1, "Simple test (single tape) selected.\n");
+ Pmsg0(-1, _("Simple test (single tape) selected.\n"));
simple = true;
} else if (cmd[0] == 'm') {
- Pmsg0(-1, "Multiple tape test selected.\n");
+ Pmsg0(-1, _("Multiple tape test selected.\n"));
simple = false;
} else {
- Pmsg0(000, "Command aborted.\n");
+ Pmsg0(000, _("Command aborted.\n"));
return;
}
set_volume_name("TestVolume1", 1);
if (!dev->rewind()) {
- Pmsg0(000, "Rewind failed.\n");
+ Pmsg0(000, _("Rewind failed.\n"));
}
if (!dev->weof()) {
- Pmsg0(000, "Write EOF failed.\n");
+ Pmsg0(000, _("Write EOF failed.\n"));
}
labelcmd();
dev->set_append(); /* force volume to be relabeled */
strerror_dev(dev));
ok = false;
}
- Pmsg0(-1, "Wrote Start of Session label.\n");
+ Pmsg0(-1, _("Wrote Start of Session label.\n"));
memset(&rec, 0, sizeof(rec));
rec.data = get_memory(100000); /* max record size */
jcr->dcr->VolFirstIndex = 0;
time(&jcr->run_time); /* start counting time for rates */
if (simple) {
- Pmsg0(-1, "Begin writing Bacula records to tape ...\n");
+ Pmsg0(-1, _("Begin writing Bacula records to tape ...\n"));
} else {
- Pmsg0(-1, "Begin writing Bacula records to first tape ...\n");
+ Pmsg0(-1, _("Begin writing Bacula records to first tape ...\n"));
}
for (file_index = 0; ok && !job_canceled(jcr); ) {
rec.VolSessionId = jcr->VolSessionId;
now = 1; /* prevent divide error */
}
kbs = (double)dev->VolCatInfo.VolCatBytes / (1000.0 * (double)now);
- Pmsg4(-1, "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n",
+ Pmsg4(-1, _("Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n"),
block->BlockNumber, dev->block_num,
edit_uint64_with_commas(dev->VolCatInfo.VolCatBytes, ec1), (float)kbs);
}
/* Every 15000 blocks (approx 1GB) write an EOF.
*/
if ((block->BlockNumber % 15000) == 0) {
- Pmsg0(-1, "Flush block, write EOF\n");
+ Pmsg0(-1, _("Flush block, write EOF\n"));
flush_block(block, 0);
weof_dev(dev, 1);
}
write(fd, last_block2->buf, last_block2->buf_len);
write(fd, first_block->buf, first_block->buf_len);
close(fd);
- Pmsg2(-1, "Wrote state file last_block_num1=%d last_block_num2=%d\n",
+ Pmsg2(-1, _("Wrote state file last_block_num1=%d last_block_num2=%d\n"),
last_block_num1, last_block_num2);
} else {
berrno be;
be.strerror());
}
- Pmsg4(-1, _("\n\nDone filling tape%s at %d:%d. Now beginning re-read of %stape ...\n"),
- simple?"":"s", jcr->dcr->dev->file, jcr->dcr->dev->block_num, simple?"":"first ");
+ if (simple) {
+ Pmsg2(-1, _("\n\nDone filling tape at %d:%d. Now beginning re-read of tape ...\n"),
+ jcr->dcr->dev->file, jcr->dcr->dev->block_num);
+ }
+ else {
+ Pmsg2(-1, _("\n\nDone filling tapes at %d:%d. Now beginning re-read of first tape ...\n"),
+ jcr->dcr->dev->file, jcr->dcr->dev->block_num);
+ }
jcr->dcr->block = block;
do_unfill();
read(fd, first_block->buf, first_block->buf_len);
close(fd);
if (state_level != btape_state_level) {
- Pmsg0(-1, "\nThe state file level has changed. You must redo\n"
- "the fill command.\n");
+ Pmsg0(-1, _("\nThe state file level has changed. You must redo\n"
+ "the fill command.\n"));
return;
}
} else {
berrno be;
- Pmsg2(-1, "\nCould not find the state file: %s ERR=%s\n"
- "You must redo the fill command.\n", buf, be.strerror());
+ Pmsg2(-1, _("\nCould not find the state file: %s ERR=%s\n"
+ "You must redo the fill command.\n"), buf, be.strerror());
return;
}
do_unfill();
Pmsg4(-1, _("Reposition from %u:%u to %u:%u\n"), dev->file, dev->block_num,
last_file, last_block_num);
if (!reposition_dev(dev, last_file, last_block_num)) {
- Pmsg1(-1, "Reposition error. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(-1, _("Reposition error. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
Pmsg1(-1, _("Reading block %u.\n"), last_block_num);
*/
Pmsg2(-1, _("Reposition from %u:%u to 0:1\n"), dev->file, dev->block_num);
if (!reposition_dev(dev, 0, 1)) {
- Pmsg1(-1, "Reposition error. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(-1, _("Reposition error. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
Pmsg1(-1, _("Reading block %d.\n"), dev->block_num);
Pmsg4(-1, _("Reposition from %u:%u to %u:%u\n"), dev->file, dev->block_num,
last_file, last_block_num);
if (!reposition_dev(dev, last_file, last_block_num)) {
- Pmsg1(-1, "Reposition error. ERR=%s\n", strerror_dev(dev));
+ Pmsg1(-1, _("Reposition error. ERR=%s\n"), strerror_dev(dev));
goto bail_out;
}
Pmsg1(-1, _("Reading block %d.\n"), dev->block_num);
{
DEVICE *dev = dcr->dev;
if (dev->file != 0) {
- Pmsg3(-1, "ERROR! device at %d:%d count=%d\n", dev->file, dev->block_num,
+ Pmsg3(-1, _("ERROR! device at %d:%d count=%d\n"), dev->file, dev->block_num,
quickie_count);
return false;
}
quickie_count++;
if (quickie_count == 10000) {
- Pmsg2(-1, "1000 records read now at %d:%d\n", dev->file, dev->block_num);
+ Pmsg2(-1, _("1000 records read now at %d:%d\n"), dev->file, dev->block_num);
}
return quickie_count < 10000;
}
dump_block(last_block, _("Last block written"));
Pmsg0(-1, "\n");
dump_block(block, _("Block read back"));
- Pmsg1(-1, "\n\nThe blocks differ at byte %u\n", p - last_block->buf);
- Pmsg0(-1, "\n\n!!!! The last block written and the block\n"
+ Pmsg1(-1, _("\n\nThe blocks differ at byte %u\n"), p - last_block->buf);
+ Pmsg0(-1, _("\n\n!!!! The last block written and the block\n"
"that was read back differ. The test FAILED !!!!\n"
"This must be corrected before you use Bacula\n"
- "to write multi-tape Volumes.!!!!\n");
+ "to write multi-tape Volumes.!!!!\n"));
return false;
}
if (verbose) {
this_file = dev->file;
this_block_num = dev->block_num;
if (!write_block_to_dev(dcr)) {
- Pmsg3(000, "Last block at: %u:%u this_dev_block_num=%d\n",
+ Pmsg3(000, _("Last block at: %u:%u this_dev_block_num=%d\n"),
last_file, last_block_num, this_block_num);
if (vol_num == 1) {
/*
first_block = dup_block(block); /* first block second tape */
}
if (verbose) {
- Pmsg3(000, "Block not written: FileIndex=%u blk_block=%u Size=%u\n",
+ Pmsg3(000, _("Block not written: FileIndex=%u blk_block=%u Size=%u\n"),
(unsigned)file_index, block->BlockNumber, block->block_len);
- dump_block(last_block, "Last block written");
+ dump_block(last_block, _("Last block written"));
Pmsg0(-1, "\n");
- dump_block(block, "Block not written");
+ dump_block(block, _("Block not written"));
}
if (stop == 0) {
eot_block = block->BlockNumber;
}
kbs = (double)dev->VolCatInfo.VolCatBytes / (1000 * now);
vol_size = dev->VolCatInfo.VolCatBytes;
- Pmsg4(000, "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n",
+ Pmsg4(000, _("End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n"),
dev->file, dev->block_num,
edit_uint64_with_commas(dev->VolCatInfo.VolCatBytes, ec1), kbs);
DEV_RECORD *rec = dcr->rec;
int i, count;
- Pmsg0(0, "Test writing blocks of 64512 bytes to tape.\n");
+ Pmsg0(0, _("Test writing blocks of 64512 bytes to tape.\n"));
- get_cmd("How many blocks do you want to write? (1000): ");
+ get_cmd(_("How many blocks do you want to write? (1000): "));
count = atoi(cmd);
if (count <= 0) {
memset(rec->data, i & 0xFF, i);
rec->data_len = i;
rewindcmd();
- Pmsg1(0, "Begin writing %d Bacula blocks to tape ...\n", count);
+ Pmsg1(0, _("Begin writing %d Bacula blocks to tape ...\n"), count);
for (i=0; i < count; i++) {
if (i % 100 == 0) {
printf("+");
}
}
p = (uint32_t *)block->buf;
- Pmsg1(0, "Begin writing raw blocks of %u bytes.\n", block->buf_len);
+ Pmsg1(0, _("Begin writing raw blocks of %u bytes.\n"), block->buf_len);
for ( ;; ) {
*p = block_num;
stat = write(dev->fd, block->buf, block->buf_len);
my_errno = errno;
printf("\n");
berrno be;
- printf("Write failed at block %u. stat=%d ERR=%s\n", block_num, stat,
+ printf(_("Write failed at block %u. stat=%d ERR=%s\n"), block_num, stat,
be.strerror(my_errno));
weofcmd();
}
}
}
p = (uint32_t *)block->buf;
- Pmsg1(0, "Begin writing Bacula blocks of %u bytes.\n", block->buf_len);
+ Pmsg1(0, _("Begin writing Bacula blocks of %u bytes.\n"), block->buf_len);
for ( ;; ) {
*p = block_num;
block->binbuf = block->buf_len;
}
my_errno = errno;
printf("\n");
- printf("Write failed at block %u.\n", block_num);
+ printf(_("Write failed at block %u.\n"), block_num);
weofcmd();
}
struct cmdstruct { const char *key; void (*func)(); const char *help; };
static struct cmdstruct commands[] = {
- {"autochanger", autochangercmd, "test autochanger"},
- {"bsf", bsfcmd, "backspace file"},
- {"bsr", bsrcmd, "backspace record"},
- {"bfill", bfill_cmd, "fill tape using Bacula writes"},
- {"cap", capcmd, "list device capabilities"},
- {"clear", clearcmd, "clear tape errors"},
- {"eod", eodcmd, "go to end of Bacula data for append"},
- {"eom", eomcmd, "go to the physical end of medium"},
- {"fill", fillcmd, "fill tape, write onto second volume"},
- {"unfill", unfillcmd, "read filled tape"},
- {"fsf", fsfcmd, "forward space a file"},
- {"fsr", fsrcmd, "forward space a record"},
- {"help", helpcmd, "print this command"},
- {"label", labelcmd, "write a Bacula label to the tape"},
- {"load", loadcmd, "load a tape"},
- {"quit", quitcmd, "quit btape"},
- {"rawfill", rawfill_cmd, "use write() to fill tape"},
- {"readlabel", readlabelcmd, "read and print the Bacula tape label"},
- {"rectest", rectestcmd, "test record handling functions"},
- {"rewind", rewindcmd, "rewind the tape"},
- {"scan", scancmd, "read() tape block by block to EOT and report"},
- {"scanblocks", scan_blocks, "Bacula read block by block to EOT and report"},
- {"status", statcmd, "print tape status"},
- {"test", testcmd, "General test Bacula tape functions"},
- {"weof", weofcmd, "write an EOF on the tape"},
- {"wr", wrcmd, "write a single Bacula block"},
- {"rr", rrcmd, "read a single record"},
- {"qfill", qfillcmd, "quick fill command"},
+ {N_("autochanger"),autochangercmd, _("test autochanger")},
+ {N_("bsf"), bsfcmd, _("backspace file")},
+ {N_("bsr"), bsrcmd, _("backspace record")},
+ {N_("bfill"), bfill_cmd, _("fill tape using Bacula writes")},
+ {N_("cap"), capcmd, _("list device capabilities")},
+ {N_("clear"), clearcmd, _("clear tape errors")},
+ {N_("eod"), eodcmd, _("go to end of Bacula data for append")},
+ {N_("eom"), eomcmd, _("go to the physical end of medium")},
+ {N_("fill"), fillcmd, _("fill tape, write onto second volume")},
+ {N_("unfill"), unfillcmd, _("read filled tape")},
+ {N_("fsf"), fsfcmd, _("forward space a file")},
+ {N_("fsr"), fsrcmd, _("forward space a record")},
+ {N_("help"), helpcmd, _("print this command")},
+ {N_("label"), labelcmd, _("write a Bacula label to the tape")},
+ {N_("load"), loadcmd, _("load a tape")},
+ {N_("quit"), quitcmd, _("quit btape")},
+ {N_("rawfill"), rawfill_cmd, _("use write() to fill tape")},
+ {N_("readlabel"), readlabelcmd, _("read and print the Bacula tape label")},
+ {N_("rectest"), rectestcmd, _("test record handling functions")},
+ {N_("rewind"), rewindcmd, _("rewind the tape")},
+ {N_("scan"), scancmd, _("read() tape block by block to EOT and report")},
+ {N_("scanblocks"),scan_blocks, _("Bacula read block by block to EOT and report")},
+ {N_("status"), statcmd, _("print tape status")},
+ {N_("test"), testcmd, _("General test Bacula tape functions")},
+ {N_("weof"), weofcmd, _("write an EOF on the tape")},
+ {N_("wr"), wrcmd, _("write a single Bacula block")},
+ {N_("rr"), rrcmd, _("read a single record")},
+ {N_("qfill"), qfillcmd, _("quick fill command")}
};
#define comsize (sizeof(commands)/sizeof(struct cmdstruct))
{
fprintf(stderr, _(
"Copyright (C) 2000-2005 Kern Sibbald.\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: btape <options> <device_name>\n"
" -b <file> specify bootstrap file\n"
" -c <file> set configuration file to file\n"
" -s turn off signals\n"
" -v be verbose\n"
" -? print this message.\n"
-"\n"));
+"\n"), VERSION, BDATE);
}
force_close_device(dev);
Pmsg1(-1, "%s", dev->errmsg); /* print reason */
if (dcr->VolumeName[0] == 0 || strcmp(dcr->VolumeName, "TestVolume2") == 0) {
- fprintf(stderr, "Mount second Volume on device %s and press return when ready: ",
+ fprintf(stderr, _("Mount second Volume on device %s and press return when ready: "),
dev->print_name());
} else {
- fprintf(stderr, "Mount Volume \"%s\" on device %s and press return when ready: ",
+ fprintf(stderr, _("Mount Volume \"%s\" on device %s and press return when ready: "),
dcr->VolumeName, dev->print_name());
}
getchar();
autochanger = autoload_device(dcr, 1, NULL);
if (!autochanger) {
force_close_device(dev);
- fprintf(stderr, "Mount blank Volume on device %s and press return when ready: ",
+ fprintf(stderr, _("Mount blank Volume on device %s and press return when ready: "),
dev->print_name());
getchar();
}
DEV_BLOCK *block = dcr->block;
Dmsg0(20, "Enter my_mount_next_read_volume\n");
- Pmsg1(000, "End of Volume \"%s\"\n", dcr->VolumeName);
+ Pmsg1(000, _("End of Volume \"%s\"\n"), dcr->VolumeName);
if (LastBlock != block->BlockNumber) {
VolBytes += block->block_len;
now = 1;
}
kbs = (double)VolBytes / (1000.0 * (double)now);
- Pmsg3(-1, "Read block=%u, VolBytes=%s rate=%.1f KB/s\n", block->BlockNumber,
+ Pmsg3(-1, _("Read block=%u, VolBytes=%s rate=%.1f KB/s\n"), block->BlockNumber,
edit_uint64_with_commas(VolBytes, ec1), (float)kbs);
if (strcmp(dcr->VolumeName, "TestVolume2") == 0) {
close_device(dev);
dev->clear_read();
if (!acquire_device_for_read(dcr)) {
- Pmsg2(0, "Cannot open Dev=%s, Vol=%s\n", dev->print_name(), dcr->VolumeName);
+ Pmsg2(0, _("Cannot open Dev=%s, Vol=%s\n"), dev->print_name(), dcr->VolumeName);
return false;
}
return true; /* next volume mounted */
static char buf[200];
buf[0] = 0;
if (rec->state & REC_NO_HEADER) {
- strcat(buf, "Nohdr,");
+ strcat(buf, _("Nohdr,"));
}
if (is_partial_record(rec)) {
- strcat(buf, "partial,");
+ strcat(buf, _("partial,"));
}
if (rec->state & REC_BLOCK_EMPTY) {
- strcat(buf, "empty,");
+ strcat(buf, _("empty,"));
}
if (rec->state & REC_NO_MATCH) {
- strcat(buf, "Nomatch,");
+ strcat(buf, _("Nomatch,"));
}
if (rec->state & REC_CONTINUATION) {
- strcat(buf, "cont,");
+ strcat(buf, _("cont,"));
}
if (buf[0]) {
buf[strlen(buf)-1] = 0;
configfile);
return NULL;
}
- Pmsg2(0, _("Using device: \"%s\" for %s.\n"), device_name,
- read_access?"reading":"writing");
+ if (read_access) {
+ Pmsg1(0, _("Using device: \"%s\" for reading.\n"), device_name);
+ }
+ else {
+ Pmsg1(0, _("Using device: \"%s\" for writing.\n"), device_name);
+ }
return device;
}
if ((oflags = fcntl(fd, F_GETFL, 0)) < 0 ||
fcntl(fd, F_SETFL, oflags & ~O_NONBLOCK) < 0) {
berrno be;
- Jmsg1(dcr->jcr, M_ERROR, 0, "fcntl error. ERR=%s\n", be.strerror());
+ Jmsg1(dcr->jcr, M_ERROR, 0, _("fcntl error. ERR=%s\n"), be.strerror());
::close(fd); /* use system close() */
fd = -1;
break;
case BST_MOUNT:
return "BST_MOUNT";
default:
- return "unknown blocked code";
+ return _("unknown blocked code");
}
}
if (pos < 0) {
berrno be;
dev->dev_errno = errno;
- Pmsg1(000, "Seek error: ERR=%s\n", be.strerror());
+ Pmsg1(000, _("Seek error: ERR=%s\n"), be.strerror());
Mmsg2(dev->errmsg, _("lseek_dev error on %s. ERR=%s.\n"),
dev->print_name(), be.strerror());
ok = false;
}
if (dev->is_tape()) {
stat |= BMT_TAPE;
- Pmsg0(-20," Bacula status:");
- Pmsg2(-20," file=%d block=%d\n", dev->file, dev->block_num);
+ Pmsg0(-20,_(" Bacula status:"));
+ Pmsg2(-20,_(" file=%d block=%d\n"), dev->file, dev->block_num);
if (ioctl(dev->fd, MTIOCGET, (char *)&mt_stat) < 0) {
berrno be;
dev->dev_errno = errno;
dev->print_name(), be.strerror());
return 0;
}
- Pmsg0(-20, " Device status:");
+ Pmsg0(-20, _(" Device status:"));
#if defined(HAVE_LINUX_OS)
if (GMT_EOF(mt_stat.mt_gstat)) {
}
#endif /* !SunOS && !OSF */
if (dev_cap(dev, CAP_MTIOCGET)) {
- Pmsg2(-20, " file=%d block=%d\n", mt_stat.mt_fileno, mt_stat.mt_blkno);
+ Pmsg2(-20, _(" file=%d block=%d\n"), mt_stat.mt_fileno, mt_stat.mt_blkno);
} else {
- Pmsg2(-20, " file=%d block=%d\n", -1, -1);
+ Pmsg2(-20, _(" file=%d block=%d\n"), -1, -1);
}
} else {
stat |= BMT_ONLINE | BMT_BOT;
if (errno == ENOTTY || errno == ENOSYS) { /* Function not implemented */
switch (func) {
case -1:
- Emsg0(M_ABORT, 0, "Got ENOTTY on read/write!\n");
+ Emsg0(M_ABORT, 0, _("Got ENOTTY on read/write!\n"));
break;
case MTWEOF:
msg = "WTWEOF";
break;
#endif
default:
- bsnprintf(buf, sizeof(buf), "unknown func code %d", func);
+ bsnprintf(buf, sizeof(buf), _("unknown func code %d"), func);
msg = buf;
break;
}
Dmsg0(190, "write label block to dev\n");
if (!write_block_to_dev(dcr)) {
berrno be;
- Pmsg1(0, "write_block_to_device Volume label failed. ERR=%s",
+ Pmsg1(0, _("write_block_to_device Volume label failed. ERR=%s"),
be.strerror(dev->dev_errno));
free_block(label_blk);
dcr->block = block;
Dmsg0(190, "Write overflow block to dev\n");
if (!write_block_to_dev(dcr)) {
berrno be;
- Pmsg1(0, "write_block_to_device overflow block failed. ERR=%s",
+ Pmsg1(0, _("write_block_to_device overflow block failed. ERR=%s"),
be.strerror(dev->dev_errno));
unblock_device(dev);
return false; /* device locked */
if ((!dev->poll) && (!dev->is_dvd())) {
Jmsg2(dcr->jcr, M_FATAL, 0, _("Unable to open device %s: ERR=%s\n"),
dev->print_name(), strerror_dev(dev));
- Pmsg2(000, "Unable to open archive %s: ERR=%s\n",
+ Pmsg2(000, _("Unable to open archive %s: ERR=%s\n"),
dev->print_name(), strerror_dev(dev));
}
return false;
{
int errstat;
if ((errstat=rwl_writelock(&dev->lock))) {
- Emsg1(M_ABORT, 0, "Device write lock failure. ERR=%s\n", strerror(errstat));
+ Emsg1(M_ABORT, 0, _("Device write lock failure. ERR=%s\n"), strerror(errstat));
}
}
{
int errstat;
if ((errstat=rwl_writeunlock(&dev->lock))) {
- Emsg1(M_ABORT, 0, "Device write unlock failure. ERR=%s\n", strerror(errstat));
+ Emsg1(M_ABORT, 0, _("Device write unlock failure. ERR=%s\n"), strerror(errstat));
}
}
Dmsg1(10, "setdebug_cmd: %s", dir->msg);
if (sscanf(dir->msg, "setdebug=%d trace=%d", &level, &trace_flag) != 2 || level < 0) {
- bnet_fsend(dir, "3991 Bad setdebug command: %s\n", dir->msg);
+ bnet_fsend(dir, _("3991 Bad setdebug command: %s\n"), dir->msg);
return 0;
}
debug_level = level;
bnet_fsend(dir, _("3002 Device %s is mounted.\n"),
dev->print_name());
} else {
- bnet_fsend(dir, "3907 %s", strerror_dev(dev));
+ bnet_fsend(dir, _("3907 %s"), strerror_dev(dev));
}
} else { /* must be file */
bnet_fsend(dir, _("3906 File device %s is always mounted.\n"),
/* If busy retry each second */
while ((status = run_program_full_output(ocmd.c_str(),
dev->max_open_wait/2, results)) != 0) {
+ /* Doesn't work with internationalisation (This is not a problem) */
if (fnmatch("*is already mounted on", results, 0) == 0) {
break;
}
continue;
}
Dmsg2(40, "Device %s cannot be mounted. ERR=%s\n", dev->print_name(), results);
- Mmsg(dev->errmsg, "Device %s cannot be mounted. ERR=%s\n",
+ Mmsg(dev->errmsg, _("Device %s cannot be mounted. ERR=%s\n"),
dev->print_name(), results);
/*
* Now, just to be sure it is not mounted, try to read the
}
dev->free_space = 0;
dev->free_space_errno = -EPIPE;
- Mmsg1(dev->errmsg, "Cannot run free space command (%s)\n", results);
+ Mmsg1(dev->errmsg, _("Cannot run free space command (%s)\n"), results);
if (--timeout > 0) {
Dmsg4(40, "Cannot get free space on device %s. free_space=%s, "
status = run_program_full_output(ocmd.c_str(), timeout, results.c_str());
sm_check(__FILE__, __LINE__, false);
if (status != 0) {
- Mmsg1(dev->errmsg, "Error while writing current part to the DVD: %s",
+ Mmsg1(dev->errmsg, _("Error while writing current part to the DVD: %s"),
results.c_str());
Dmsg1(000, "%s", dev->errmsg);
dev->dev_errno = EIO;
Dmsg1(110, "Found Job %s\n", job_name);
if (jcr->authenticated) {
- Jmsg2(jcr, M_FATAL, 0, "Hey!!!! JobId %u Job %s already authenticated.\n",
+ Jmsg2(jcr, M_FATAL, 0, _("Hey!!!! JobId %u Job %s already authenticated.\n"),
jcr->JobId, jcr->Job);
free_jcr(jcr);
return;
* => we are in a loop
*/
if (!dev->poll && jcr->label_errors++ > 100) {
- Jmsg(jcr, M_FATAL, 0, "Too many tries: %s", jcr->errmsg);
+ Jmsg(jcr, M_FATAL, 0, _("Too many tries: %s"), jcr->errmsg);
}
Dmsg0(100, "return VOL_NAME_ERROR\n");
stat = VOL_NAME_ERROR;
Mmsg(jcr->errmsg, _("Wrong Volume mounted on device %s: Wanted %s have %s\n"),
dev->print_name(), VolName, dev->VolHdr.VolumeName);
if (!dev->poll && jcr->label_errors++ > 100) {
- Jmsg(jcr, M_FATAL, 0, "Too many tries: %s", jcr->errmsg);
+ Jmsg(jcr, M_FATAL, 0, _("Too many tries: %s"), jcr->errmsg);
}
goto bail_out;
}
dev->print_name(), dev->VolHdr.LabelType);
Dmsg1(30, "%s", jcr->errmsg);
if (!dev->poll && jcr->label_errors++ > 100) {
- Jmsg(jcr, M_FATAL, 0, "Too many tries: %s", jcr->errmsg);
+ Jmsg(jcr, M_FATAL, 0, _("Too many tries: %s"), jcr->errmsg);
}
Dmsg0(100, "return VOL_LABEL_ERROR\n");
stat = VOL_LABEL_ERROR;
goto bail_out;
default:
LabelType = buf;
- sprintf(buf, "Unknown %d", dev->VolHdr.LabelType);
+ sprintf(buf, _("Unknown %d"), dev->VolHdr.LabelType);
break;
}
- Pmsg11(-1, "\nVolume Label:\n"
+ Pmsg11(-1, _("\nVolume Label:\n"
"Id : %s"
"VerNo : %d\n"
"VolName : %s\n"
"MediaType : %s\n"
"PoolType : %s\n"
"HostName : %s\n"
-"",
+""),
dev->VolHdr.Id, dev->VolHdr.VerNum,
dev->VolHdr.VolumeName, dev->VolHdr.PrevVolumeName,
File, LabelType, dev->VolHdr.LabelSize,
if (dev->VolHdr.VerNum >= 11) {
char dt[50];
bstrftime(dt, sizeof(dt), btime_to_unix(dev->VolHdr.label_btime));
- Pmsg1(-1, "Date label written: %s\n", dt);
+ Pmsg1(-1, _("Date label written: %s\n"), dt);
} else {
dt.julian_day_number = dev->VolHdr.label_date;
dt.julian_day_fraction = dev->VolHdr.label_time;
tm_decode(&dt, &tm);
Pmsg5(-1,
-"Date label written: %04d-%02d-%02d at %02d:%02d\n",
+_("Date label written: %04d-%02d-%02d at %02d:%02d\n"),
tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min);
}
unser_session_label(&label, rec);
dbl = debug_level;
debug_level = 1;
- Pmsg7(-1, "\n%s Record:\n"
+ Pmsg7(-1, _("\n%s Record:\n"
"JobId : %d\n"
"VerNum : %d\n"
"PoolName : %s\n"
"PoolType : %s\n"
"JobName : %s\n"
"ClientName : %s\n"
-"", type, label.JobId, label.VerNum,
+""), type, label.JobId, label.VerNum,
label.PoolName, label.PoolType,
label.JobName, label.ClientName);
if (label.VerNum >= 10) {
- Pmsg4(-1, ""
+ Pmsg4(-1, _(
"Job (unique name) : %s\n"
"FileSet : %s\n"
"JobType : %c\n"
"JobLevel : %c\n"
-"", label.Job, label.FileSetName, label.JobType, label.JobLevel);
+""), label.Job, label.FileSetName, label.JobType, label.JobLevel);
}
if (rec->FileIndex == EOS_LABEL) {
- Pmsg8(-1, ""
+ Pmsg8(-1, _(
"JobFiles : %s\n"
"JobBytes : %s\n"
"StartBlock : %s\n"
"EndFile : %s\n"
"JobErrors : %s\n"
"JobStatus : %c\n"
-"",
+""),
edit_uint64_with_commas(label.JobFiles, ec1),
edit_uint64_with_commas(label.JobBytes, ec2),
edit_uint64_with_commas(label.StartBlock, ec3),
dt.julian_day_number = label.write_date;
dt.julian_day_fraction = label.write_time;
tm_decode(&dt, &tm);
- Pmsg5(-1, _(""
-"Date written : %04d-%02d-%02d at %02d:%02d\n"),
+ Pmsg5(-1, _("Date written : %04d-%02d-%02d at %02d:%02d\n"),
tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min);
}
type = _("End of Media");
break;
case EOT_LABEL:
- type = ("End of Tape");
+ type = _("End of Tape");
break;
default:
type = _("Unknown");
dump_session_label(rec, type);
break;
case EOM_LABEL:
- Pmsg7(-1, "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n",
+ Pmsg7(-1, _("%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n"),
type, dev->file, dev->block_num, rec->VolSessionId,
rec->VolSessionTime, rec->Stream, rec->data_len);
break;
Pmsg0(-1, _("End of physical tape.\n"));
break;
default:
- Pmsg7(-1, "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n",
+ Pmsg7(-1, _("%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n"),
type, dev->file, dev->block_num, rec->VolSessionId,
rec->VolSessionTime, rec->Stream, rec->data_len);
break;
case SOS_LABEL:
unser_session_label(&label, rec);
bstrftimes(dt, sizeof(dt), btime_to_unix(label.write_btime));
- Pmsg6(-1, "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n",
+ Pmsg6(-1, _("%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n"),
type, dev->file, dev->block_num, rec->VolSessionId, rec->VolSessionTime, label.JobId);
- Pmsg4(-1, " Job=%s Date=%s Level=%c Type=%c\n",
+ Pmsg4(-1, _(" Job=%s Date=%s Level=%c Type=%c\n"),
label.Job, dt, label.JobLevel, label.JobType);
break;
case EOS_LABEL:
char ed1[30], ed2[30];
unser_session_label(&label, rec);
bstrftimes(dt, sizeof(dt), btime_to_unix(label.write_btime));
- Pmsg6(-1, "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n",
+ Pmsg6(-1, _("%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n"),
type, dev->file, dev->block_num, rec->VolSessionId, rec->VolSessionTime, label.JobId);
- Pmsg7(-1, " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n",
+ Pmsg7(-1, _(" Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n"),
dt, label.JobLevel, label.JobType,
edit_uint64_with_commas(label.JobFiles, ed1),
edit_uint64_with_commas(label.JobBytes, ed2),
case PRE_LABEL:
case VOL_LABEL:
default:
- Pmsg7(-1, "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n",
+ Pmsg7(-1, _("%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n"),
type, dev->file, dev->block_num, rec->VolSessionId, rec->VolSessionTime,
rec->Stream, rec->data_len);
break;
JCR *jcr = dcr->jcr;
DEVICE *dev = dcr->dev;
if (dcr->WroteVol) {
- Jmsg0(jcr, M_ERROR, 0, "Hey!!!!! WroteVol non-zero !!!!!\n");
+ Jmsg0(jcr, M_ERROR, 0, _("Hey!!!!! WroteVol non-zero !!!!!\n"));
Dmsg0(190, "Hey!!!!! WroteVol non-zero !!!!!\n");
}
/*
close_device(dev);
dev->clear_read();
if (!acquire_device_for_read(dcr)) {
- Jmsg2(jcr, M_FATAL, 0, "Cannot open Dev=%s, Vol=%s\n", dev->print_name(),
+ Jmsg2(jcr, M_FATAL, 0, _("Cannot open Dev=%s, Vol=%s\n"), dev->print_name(),
dcr->VolumeName);
return false;
}
static BSR *store_jobtype(LEX *lc, BSR *bsr)
{
/* *****FIXME****** */
- Pmsg0(-1, "JobType not yet implemented\n");
+ Pmsg0(-1, _("JobType not yet implemented\n"));
return bsr;
}
static BSR *store_joblevel(LEX *lc, BSR *bsr)
{
/* *****FIXME****** */
- Pmsg0(-1, "JobLevel not yet implemented\n");
+ Pmsg0(-1, _("JobLevel not yet implemented\n"));
return bsr;
}
void dump_volfile(BSR_VOLFILE *volfile)
{
if (volfile) {
- Pmsg2(-1, "VolFile : %u-%u\n", volfile->sfile, volfile->efile);
+ Pmsg2(-1, _("VolFile : %u-%u\n"), volfile->sfile, volfile->efile);
dump_volfile(volfile->next);
}
}
void dump_volblock(BSR_VOLBLOCK *volblock)
{
if (volblock) {
- Pmsg2(-1, "VolBlock : %u-%u\n", volblock->sblock, volblock->eblock);
+ Pmsg2(-1, _("VolBlock : %u-%u\n"), volblock->sblock, volblock->eblock);
dump_volblock(volblock->next);
}
}
{
if (FileIndex) {
if (FileIndex->findex == FileIndex->findex2) {
- Pmsg1(-1, "FileIndex : %u\n", FileIndex->findex);
+ Pmsg1(-1, _("FileIndex : %u\n"), FileIndex->findex);
} else {
- Pmsg2(-1, "FileIndex : %u-%u\n", FileIndex->findex, FileIndex->findex2);
+ Pmsg2(-1, _("FileIndex : %u-%u\n"), FileIndex->findex, FileIndex->findex2);
}
dump_findex(FileIndex->next);
}
{
if (jobid) {
if (jobid->JobId == jobid->JobId2) {
- Pmsg1(-1, "JobId : %u\n", jobid->JobId);
+ Pmsg1(-1, _("JobId : %u\n"), jobid->JobId);
} else {
- Pmsg2(-1, "JobId : %u-%u\n", jobid->JobId, jobid->JobId2);
+ Pmsg2(-1, _("JobId : %u-%u\n"), jobid->JobId, jobid->JobId2);
}
dump_jobid(jobid->next);
}
{
if (sessid) {
if (sessid->sessid == sessid->sessid2) {
- Pmsg1(-1, "SessId : %u\n", sessid->sessid);
+ Pmsg1(-1, _("SessId : %u\n"), sessid->sessid);
} else {
- Pmsg2(-1, "SessId : %u-%u\n", sessid->sessid, sessid->sessid2);
+ Pmsg2(-1, _("SessId : %u-%u\n"), sessid->sessid, sessid->sessid2);
}
dump_sessid(sessid->next);
}
void dump_volume(BSR_VOLUME *volume)
{
if (volume) {
- Pmsg1(-1, "VolumeName : %s\n", volume->VolumeName);
+ Pmsg1(-1, _("VolumeName : %s\n"), volume->VolumeName);
dump_volume(volume->next);
}
}
void dump_client(BSR_CLIENT *client)
{
if (client) {
- Pmsg1(-1, "Client : %s\n", client->ClientName);
+ Pmsg1(-1, _("Client : %s\n"), client->ClientName);
dump_client(client->next);
}
}
void dump_job(BSR_JOB *job)
{
if (job) {
- Pmsg1(-1, "Job : %s\n", job->Job);
+ Pmsg1(-1, _("Job : %s\n"), job->Job);
dump_job(job->next);
}
}
void dump_sesstime(BSR_SESSTIME *sesstime)
{
if (sesstime) {
- Pmsg1(-1, "SessTime : %u\n", sesstime->sesstime);
+ Pmsg1(-1, _("SessTime : %u\n"), sesstime->sesstime);
dump_sesstime(sesstime->next);
}
}
int save_debug = debug_level;
debug_level = 1;
if (!bsr) {
- Pmsg0(-1, "BSR is NULL\n");
+ Pmsg0(-1, _("BSR is NULL\n"));
debug_level = save_debug;
return;
}
- Pmsg1(-1, "Next : 0x%x\n", bsr->next);
- Pmsg1(-1, "Root bsr : 0x%x\n", bsr->root);
+ Pmsg1(-1, _("Next : 0x%x\n"), bsr->next);
+ Pmsg1(-1, _("Root bsr : 0x%x\n"), bsr->root);
dump_volume(bsr->volume);
dump_sessid(bsr->sessid);
dump_sesstime(bsr->sesstime);
dump_job(bsr->job);
dump_findex(bsr->FileIndex);
if (bsr->Slot) {
- Pmsg1(-1, "Slot : %u\n", bsr->Slot);
+ Pmsg1(-1, _("Slot : %u\n"), bsr->Slot);
}
if (bsr->count) {
- Pmsg1(-1, "count : %u\n", bsr->count);
- Pmsg1(-1, "found : %u\n", bsr->found);
+ Pmsg1(-1, _("count : %u\n"), bsr->count);
+ Pmsg1(-1, _("found : %u\n"), bsr->found);
}
- Pmsg1(-1, "done : %s\n", bsr->done?"yes":"no");
- Pmsg1(-1, "positioning : %d\n", bsr->use_positioning);
- Pmsg1(-1, "fast_reject : %d\n", bsr->use_fast_rejection);
+ Pmsg1(-1, _("done : %s\n"), bsr->done?_("yes"):_("no"));
+ Pmsg1(-1, _("positioning : %d\n"), bsr->use_positioning);
+ Pmsg1(-1, _("fast_reject : %d\n"), bsr->use_fast_rejection);
if (recurse && bsr->next) {
Pmsg0(-1, "\n");
dump_bsr(bsr->next, true);
Dmsg1(100, "In job_getattr=%s\n", attrname);
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
- bstrncpy(errmsg, "Job pointer not found.", sizeof(errmsg));
+ bstrncpy(errmsg, _("Job pointer not found."), sizeof(errmsg));
goto bail_out;
}
case 11:
return Py_BuildValue(getvars[i].fmt, jcr->dcr->dev_name);
}
- bsnprintf(errmsg, sizeof(errmsg), "Attribute %s not found.", attrname);
+ bsnprintf(errmsg, sizeof(errmsg), _("Attribute %s not found."), attrname);
bail_out:
PyErr_SetString(PyExc_AttributeError, errmsg);
return NULL;
Dmsg2(100, "In job_setattr=%s val=%p.\n", attrname, value);
if (value == NULL) { /* Cannot delete variables */
- bsnprintf(buf, sizeof(buf), "Cannot delete attribute %s", attrname);
+ bsnprintf(buf, sizeof(buf), _("Cannot delete attribute %s"), attrname);
errmsg = buf;
goto bail_out;
}
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
- errmsg = "Job pointer not found.";
+ errmsg = _("Job pointer not found.");
goto bail_out;
}
/* Get argument value ***FIXME*** handle other formats */
if (setvars[i].fmt != NULL) {
if (!PyArg_Parse(value, setvars[i].fmt, &strval)) {
- PyErr_SetString(PyExc_TypeError, "Read-only attribute");
+ PyErr_SetString(PyExc_TypeError, _("Read-only attribute"));
return -1;
}
}
return 0;
}
not_found:
- bsnprintf(buf, sizeof(buf), "Cannot find attribute %s", attrname);
+ bsnprintf(buf, sizeof(buf), _("Cannot find attribute %s"), attrname);
errmsg = buf;
bail_out:
PyErr_SetString(PyExc_AttributeError, errmsg);
Dmsg0(100, "In set_job_events.\n");
if (!PyArg_ParseTuple(arg, "O:set_events", &eObject)) {
- Dmsg0(000, "Error in ParseTuple\n");
+ Dmsg0(000, _("Error in ParseTuple\n"));
return NULL;
}
jcr = get_jcr_from_PyObject(self);
char *text = NULL;
if (!PyArg_ParseTuple(args, "s:write", &text)) {
- Dmsg0(000, "Parse tuple error in job_write\n");
+ Dmsg0(000, _("Parse tuple error in job_write\n"));
return NULL;
}
if (text) {
if (result == NULL) {
if (PyErr_Occurred()) {
PyErr_Print();
- Dmsg1(000, "Error in Python method %s\n", event);
+ Dmsg1(000, _("Error in Python method %s\n"), event);
}
} else {
stat = 1;
/* Send record header to File daemon */
if (!bnet_fsend(fd, rec_header, rec->VolSessionId, rec->VolSessionTime,
rec->FileIndex, rec->Stream, rec->data_len)) {
- Pmsg1(000, ">filed: Error Hdr=%s\n", fd->msg);
+ Pmsg1(000, _(">filed: Error Hdr=%s\n"), fd->msg);
Jmsg1(jcr, M_FATAL, 0, _("Error sending to File daemon. ERR=%s\n"),
bnet_strerror(fd));
return false;
fd->msglen = rec->data_len;
Dmsg1(400, ">filed: send %d bytes data.\n", fd->msglen);
if (!bnet_send(fd)) {
- Pmsg1(000, "Error sending to FD. ERR=%s\n", bnet_strerror(fd));
+ Pmsg1(000, _("Error sending to FD. ERR=%s\n"), bnet_strerror(fd));
Jmsg1(jcr, M_FATAL, 0, _("Error sending to File daemon. ERR=%s\n"),
bnet_strerror(fd));
if (!read_block_from_device(dcr, CHECK_BLOCK_NUMBERS)) {
if (dev->at_eot()) {
DEV_RECORD *trec = new_record();
- Jmsg(jcr, M_INFO, 0, "End of Volume at file %u on device %s, Volume \"%s\"\n",
+ Jmsg(jcr, M_INFO, 0, _("End of Volume at file %u on device %s, Volume \"%s\"\n"),
dev->file, dev->print_name(), dcr->VolumeName);
if (!mount_cb(dcr)) {
- Jmsg(jcr, M_INFO, 0, "End of all volumes.\n");
+ Jmsg(jcr, M_INFO, 0, _("End of all volumes.\n"));
ok = false; /* Stop everything */
/*
* Create EOT Label so that Media record may
} else if (dev->at_eof()) {
if (verbose) {
- Jmsg(jcr, M_INFO, 0, "Got EOF at file %u on device %s, Volume \"%s\"\n",
+ Jmsg(jcr, M_INFO, 0, _("Got EOF at file %u on device %s, Volume \"%s\"\n"),
dev->file, dev->print_name(), dcr->VolumeName);
}
Dmsg3(200, "Got EOF at file %u on device %s, Volume \"%s\"\n",
display_tape_error_status(jcr, dev);
if (forge_on || jcr->ignore_label_errors) {
dev->fsr(1); /* try skipping bad record */
- Pmsg0(000, "Did fsr\n");
+ Pmsg0(000, _("Did fsr\n"));
continue; /* try to continue */
}
ok = false; /* stop everything */
}
if (bsr) {
if (verbose) {
- Jmsg(jcr, M_INFO, 0, "Reposition from (file:block) %u:%u to %u:%u\n",
+ Jmsg(jcr, M_INFO, 0, _("Reposition from (file:block) %u:%u to %u:%u\n"),
dev->file, dev->block_num, bsr->volfile->sfile,
bsr->volblock->sblock);
}
memset(sessrec, 0, sizeof(sessrec));
switch (rec->FileIndex) {
case PRE_LABEL:
- rtype = "Fresh Volume Label";
+ rtype = _("Fresh Volume Label");
break;
case VOL_LABEL:
- rtype = "Volume Label";
+ rtype = _("Volume Label");
unser_volume_label(dev, rec);
break;
case SOS_LABEL:
- rtype = "Begin Session";
+ rtype = _("Begin Session");
unser_session_label(sessrec, rec);
break;
case EOS_LABEL:
- rtype = "End Session";
+ rtype = _("End Session");
break;
case EOM_LABEL:
- rtype = "End of Media";
+ rtype = _("End of Media");
break;
default:
- bsnprintf(buf, sizeof(buf), "Unknown code %d\n", rec->FileIndex);
+ bsnprintf(buf, sizeof(buf), _("Unknown code %d\n"), rec->FileIndex);
rtype = buf;
break;
}
- Dmsg5(300, "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n",
+ Dmsg5(300, _("%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n"),
rtype, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len);
}
return "EOT_LABEL";
break;
default:
- sprintf(buf, "unknown: %d", fi);
+ sprintf(buf, _("unknown: %d"), fi);
return buf;
}
}
Dmsg2(0, "Damaged block: buf=%x binbuffrombuf=%d \n",
block->buf, block->bufp-block->buf);
- Emsg0(M_ABORT, 0, "Damaged buffer\n");
+ Emsg0(M_ABORT, 0, _("Damaged buffer\n"));
}
#endif
return 0; /* wait */
}
} else {
- Pmsg0(000, "Logic error!!!! Should not get here.\n");
+ Pmsg0(000, _("Logic error!!!! Should not get here.\n"));
Jmsg0(jcr, M_FATAL, 0, _("Logic error!!!! Should not get here.\n"));
return -1; /* error, should not get here */
}
{
char ed1[30], ed2[30];
if (spool_stats.data_jobs || spool_stats.max_data_size) {
- bnet_fsend(bs, "Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n",
+ bnet_fsend(bs, _("Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n"),
spool_stats.data_jobs, edit_uint64_with_commas(spool_stats.data_size, ed1),
spool_stats.total_data_jobs,
edit_uint64_with_commas(spool_stats.max_data_size, ed2));
}
if (spool_stats.attr_jobs || spool_stats.max_attr_size) {
- bnet_fsend(bs, "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n",
+ bnet_fsend(bs, _("Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n"),
spool_stats.attr_jobs, edit_uint64_with_commas(spool_stats.attr_size, ed1),
spool_stats.total_attr_jobs,
edit_uint64_with_commas(spool_stats.max_attr_size, ed2));
Dmsg0(100, "Committing spooled data\n");
stat = despool_data(dcr, true /*commit*/);
if (!stat) {
- Pmsg1(000, "Bad return from despool WroteVol=%d\n", dcr->WroteVol);
+ Pmsg1(000, _("Bad return from despool WroteVol=%d\n"), dcr->WroteVol);
close_data_spool_file(dcr);
return false;
}
char ec1[50];
Dmsg0(100, "Despooling data\n");
- Jmsg(jcr, M_INFO, 0, _("%s spooled data to Volume. Despooling %s bytes ...\n"),
- commit?"Committing":"Writing",
- edit_uint64_with_commas(jcr->dcr->job_spool_size, ec1));
+ if (commit) {
+ Jmsg(jcr, M_INFO, 0, _("Committing spooled data to Volume. Despooling %s bytes ...\n"),
+ edit_uint64_with_commas(jcr->dcr->job_spool_size, ec1));
+ }
+ else {
+ Jmsg(jcr, M_INFO, 0, _("Writing spooled data to Volume. Despooling %s bytes ...\n"),
+ edit_uint64_with_commas(jcr->dcr->job_spool_size, ec1));
+ }
dcr->spooling = false;
lock_device(dcr->dev);
dcr->dev_locked = true;
berrno be;
Jmsg(dcr->jcr, M_ERROR, 0, _("Ftruncate spool file failed: ERR=%s\n"),
be.strerror());
- Pmsg1(000, "Bad return from ftruncate. ERR=%s\n", be.strerror());
+ Pmsg1(000, _("Bad return from ftruncate. ERR=%s\n"), be.strerror());
ok = false;
}
Jmsg(dcr->jcr, M_FATAL, 0, _("Spool header read error. ERR=%s\n"),
be.strerror());
} else {
- Pmsg2(000, "Spool read error. Wanted %u bytes, got %d\n", rlen, stat);
+ Pmsg2(000, _("Spool read error. Wanted %u bytes, got %d\n"), rlen, stat);
Jmsg2(dcr->jcr, M_FATAL, 0, _("Spool header read error. Wanted %u bytes, got %d\n"), rlen, stat);
}
return RB_ERROR;
}
rlen = hdr.len;
if (rlen > block->buf_len) {
- Pmsg2(000, "Spool block too big. Max %u bytes, got %u\n", block->buf_len, rlen);
+ Pmsg2(000, _("Spool block too big. Max %u bytes, got %u\n"), block->buf_len, rlen);
Jmsg2(dcr->jcr, M_FATAL, 0, _("Spool block too big. Max %u bytes, got %u\n"), block->buf_len, rlen);
return RB_ERROR;
}
stat = read(dcr->spool_fd, (char *)block->buf, (size_t)rlen);
if (stat != (ssize_t)rlen) {
- Pmsg2(000, "Spool data read error. Wanted %u bytes, got %d\n", rlen, stat);
+ Pmsg2(000, _("Spool data read error. Wanted %u bytes, got %d\n"), rlen, stat);
Jmsg2(dcr->jcr, M_FATAL, 0, _("Spool data read error. Wanted %u bytes, got %d\n"), rlen, stat);
return RB_ERROR;
}
#endif
Jmsg(dcr->jcr, M_INFO, 0, _("User specified spool size reached.\n"));
if (!despool_data(dcr, false)) {
- Pmsg0(000, "Bad return from despool in write_block.\n");
+ Pmsg0(000, _("Bad return from despool in write_block.\n"));
return false;
}
/* Despooling cleared these variables so reset them */
char b1[30], b2[30], b3[30];
int bpb;
- bnet_fsend(user, "\n%s Version: " VERSION " (" BDATE ") %s %s %s\n", my_name,
- HOST_OS, DISTNAME, DISTVER);
+ bnet_fsend(user, _("\n%s Version: %s (%s) %s %s %s\n"), my_name,
+ VERSION, BDATE, HOST_OS, DISTNAME, DISTVER);
bstrftime_nc(dt, sizeof(dt), daemon_start_time);
- bnet_fsend(user, _("Daemon started %s, %d Job%s run since started.\n"), dt, num_jobs_run,
- num_jobs_run == 1 ? "" : "s");
+ if (num_jobs_run == 1) {
+ bnet_fsend(user, _("Daemon started %s, 1 Job run since started.\n"), dt);
+ }
+ else {
+ bnet_fsend(user, _("Daemon started %s, %d Jobs run since started.\n"), dt, num_jobs_run);
+ }
if (debug_level > 0) {
char b1[35], b2[35], b3[35], b4[35];
bnet_fsend(user, _(" Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"),
send_blocked_status(jcr, dev);
}
}
- bnet_fsend(user, "====\n\n");
- bnet_fsend(user, "Volume status:\n");
+ bnet_fsend(user, _("====\n\n"));
+ bnet_fsend(user, _("Volume status:\n"));
list_volumes(user);
#ifdef xxx
if (debug_level > 0) {
- bnet_fsend(user, "====\n\n");
+ bnet_fsend(user, _("====\n\n"));
dump_resource(R_DEVICE, resources[R_DEVICE-r_first].res_head, sendit, user);
}
- bnet_fsend(user, "====\n\n");
+ bnet_fsend(user, _("====\n\n"));
#endif
list_spool_stats(user);
DCR *dcr = jcr->dcr;
if (!dev) {
- bnet_fsend(user, "No DEVICE structure.\n\n");
+ bnet_fsend(user, _("No DEVICE structure.\n\n"));
return;
}
switch (dev->dev_blocked) {
bnet_fsend(user, "%sSHORT ", dev->state & ST_SHORT ? "" : "!");
bnet_fsend(user, "%sMOUNTED ", dev->state & ST_MOUNTED ? "" : "!");
bnet_fsend(user, "\n");
- bnet_fsend(user, "num_writers=%d JobStatus=%c block=%d\n\n", dev->num_writers,
+ bnet_fsend(user, _("num_writers=%d JobStatus=%c block=%d\n\n"), dev->num_writers,
jcr->JobStatus, dev->dev_blocked);
bnet_fsend(user, _("Device parameters:\n"));
- bnet_fsend(user, "Archive name: %s Device name: %s\n", dev->archive_name(),
+ bnet_fsend(user, _("Archive name: %s Device name: %s\n"), dev->archive_name(),
dev->name());
- bnet_fsend(user, "File=%u block=%u\n", dev->file, dev->block_num);
- bnet_fsend(user, "Min block=%u Max block=%u\n", dev->min_block_size, dev->max_block_size);
+ bnet_fsend(user, _("File=%u block=%u\n"), dev->file, dev->block_num);
+ bnet_fsend(user, _("Min block=%u Max block=%u\n"), dev->min_block_size, dev->max_block_size);
}
}
found = true;
#ifdef DEBUG
if (jcr->file_bsock) {
- bnet_fsend(user, " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n",
+ bnet_fsend(user, _(" FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n"),
edit_uint64_with_commas(jcr->file_bsock->read_seqno, b1),
jcr->file_bsock->in_msg_no, jcr->file_bsock->out_msg_no,
jcr->file_bsock->fd);
} else {
- bnet_fsend(user, " FDSocket closed\n");
+ bnet_fsend(user, _(" FDSocket closed\n"));
}
#endif
}
if (!found) {
bnet_fsend(user, _("No Jobs running.\n"));
}
- bnet_fsend(user, "====\n");
+ bnet_fsend(user, _("====\n"));
}
static void list_terminated_jobs(void *arg)
}
switch (je->JobStatus) {
case JS_Created:
- termstat = "Created";
+ termstat = _("Created");
break;
case JS_FatalError:
case JS_ErrorTerminated:
- termstat = "Error";
+ termstat = _("Error");
break;
case JS_Differences:
- termstat = "Diffs";
+ termstat = _("Diffs");
break;
case JS_Canceled:
- termstat = "Cancel";
+ termstat = _("Cancel");
break;
case JS_Terminated:
- termstat = "OK";
+ termstat = _("OK");
break;
default:
- termstat = "Other";
+ termstat = _("Other");
break;
}
bstrncpy(JobName, je->Job, sizeof(JobName));
dt, JobName);
sendit(buf, strlen(buf), arg);
}
- sendit("====\n", 5, arg);
+ sendit(_("====\n"), 5, arg);
unlock_last_jobs_list();
}
if (sscanf(dir->msg, qstatus, time.c_str()) != 1) {
pm_strcpy(jcr->errmsg, dir->msg);
Jmsg1(jcr, M_FATAL, 0, _("Bad .status command: %s\n"), jcr->errmsg);
- bnet_fsend(dir, "3900 Bad .status command, missing argument.\n");
+ bnet_fsend(dir, _("3900 Bad .status command, missing argument.\n"));
bnet_sig(dir, BNET_EOD);
return false;
}
else {
pm_strcpy(jcr->errmsg, dir->msg);
Jmsg1(jcr, M_FATAL, 0, _("Bad .status command: %s\n"), jcr->errmsg);
- bnet_fsend(dir, "3900 Bad .status command, wrong argument.\n");
+ bnet_fsend(dir, _("3900 Bad .status command, wrong argument.\n"));
bnet_sig(dir, BNET_EOD);
return false;
}
{
fprintf(stderr, _(
"Copyright (C) 2000-2005 Kern Sibbald.\n"
-"\nVersion: " VERSION " (" BDATE ")\n\n"
+"\nVersion: %s (%s)\n\n"
"Usage: stored [options] [-c config_file] [config_file]\n"
" -c <file> use <file> as configuration file\n"
" -dnn set debug level to nn\n"
" -u <user> userid to <user>\n"
" -v verbose user messages\n"
" -? print this message.\n"
-"\n"));
+"\n"), VERSION, BDATE);
exit(1);
}
char *uid = NULL;
char *gid = NULL;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
init_stack_dump();
my_name_is(argc, argv, "bacula-sd");
- textdomain("bacula");
init_msg(NULL, NULL);
daemon_start_time = time(NULL);
/* Sanity checks */
if (TAPE_BSIZE % B_DEV_BSIZE != 0 || TAPE_BSIZE / B_DEV_BSIZE == 0) {
- Emsg2(M_ABORT, 0, "Tape block size (%d) not multiple of system size (%d)\n",
+ Emsg2(M_ABORT, 0, _("Tape block size (%d) not multiple of system size (%d)\n"),
TAPE_BSIZE, B_DEV_BSIZE);
}
if (TAPE_BSIZE != (1 << (ffs(TAPE_BSIZE)-1))) {
- Emsg1(M_ABORT, 0, "Tape block size (%d) is not a power of 2\n", TAPE_BSIZE);
+ Emsg1(M_ABORT, 0, _("Tape block size (%d) is not a power of 2\n"), TAPE_BSIZE);
}
while ((ch = getopt(argc, argv, "c:d:fg:pstu:v?")) != -1) {
sendit(sock, _("Warning: no \"%s\" resource (%d) defined.\n"), res_to_str(type), type);
return;
}
- sendit(sock, "dump_resource type=%d\n", type);
+ sendit(sock, _("dump_resource type=%d\n"), type);
if (type < 0) { /* no recursion */
type = - type;
recurse = 0;
res = NULL;
break;
default:
- Dmsg1(0, "Unknown resource type %d\n", type);
+ Dmsg1(0, _("Unknown resource type %d\n"), type);
break;
}
/* Common stuff again -- free the resource, recurse to next one */
/* Resources containing a resource or an alist */
case R_DIRECTOR:
if ((res = (URES *)GetResWithName(R_DIRECTOR, res_all.res_dir.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Director resource \"%s\"\n", res_all.res_dir.hdr.name);
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Director resource %s\n"), res_all.res_dir.hdr.name);
}
res->res_dir.tls_allowed_cns = res_all.res_dir.tls_allowed_cns;
break;
case R_STORAGE:
if ((res = (URES *)GetResWithName(R_STORAGE, res_all.res_dir.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find Storage resource \"%s\"\n", res_all.res_dir.hdr.name);
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find Storage resource %s\n"), res_all.res_dir.hdr.name);
}
res->res_store.messages = res_all.res_store.messages;
res->res_store.tls_allowed_cns = res_all.res_store.tls_allowed_cns;
break;
case R_AUTOCHANGER:
if ((res = (URES *)GetResWithName(type, res_all.res_changer.hdr.name)) == NULL) {
- Emsg1(M_ERROR_TERM, 0, "Cannot find AutoChanger resource %s\n",
+ Emsg1(M_ERROR_TERM, 0, _("Cannot find AutoChanger resource %s\n"),
res_all.res_changer.hdr.name);
}
/* we must explicitly copy the device alist pointer */
}
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
error = 1;
break;
}
size = sizeof(AUTOCHANGER);
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
error = 1;
size = 1;
break;
}
Dmsg2(10, "%s --> %s\n", mailhost, buf);
if (!isdigit((int)buf[0]) || buf[0] > '3') {
- Pmsg2(0, "Fatal malformed reply from %s: %s\n", mailhost, buf);
+ Pmsg2(0, _("Fatal malformed reply from %s: %s\n"), mailhost, buf);
exit(1);
}
if (buf[3] != '-') {
static void usage()
{
fprintf(stderr,
-"\n"
+_("\n"
"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n"
" -c set the Cc: field\n"
" -dnn set debug level to nn\n"
" -h use mailhost:port as the SMTP server\n"
" -s set the Subject: field\n"
" -? print this message.\n"
-"\n", MY_NAME);
+"\n"), MY_NAME);
exit(1);
}
char *cp, *p;
time_t now = time(NULL);
struct tm tm;
+
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
my_name_is(argc, argv, "bsmtp");
argv += optind;
if (argc < 1) {
- Pmsg0(0, "Fatal error: no recipient given.\n");
+ Pmsg0(0, _("Fatal error: no recipient given.\n"));
usage();
exit(1);
}
* if possible, get the fully qualified domain name
*/
if (gethostname(my_hostname, sizeof(my_hostname) - 1) < 0) {
- Pmsg1(0, "Fatal gethostname error: ERR=%s\n", strerror(errno));
+ Pmsg1(0, _("Fatal gethostname error: ERR=%s\n"), strerror(errno));
exit(1);
}
if ((hp = gethostbyname(my_hostname)) == NULL) {
- Pmsg2(0, "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n", my_hostname,
+ Pmsg2(0, _("Fatal gethostbyname for myself failed \"%s\": ERR=%s\n"), my_hostname,
strerror(errno));
exit(1);
}
*/
hp:
if ((hp = gethostbyname(mailhost)) == NULL) {
- Pmsg2(0, "Error unknown mail host \"%s\": ERR=%s\n", mailhost,
+ Pmsg2(0, _("Error unknown mail host \"%s\": ERR=%s\n"), mailhost,
strerror(errno));
if (strcasecmp(mailhost, "localhost") != 0) {
- Pmsg0(0, "Retrying connection using \"localhost\".\n");
+ Pmsg0(0, _("Retrying connection using \"localhost\".\n"));
mailhost = "localhost";
goto hp;
}
}
if (hp->h_addrtype != AF_INET) {
- Pmsg1(0, "Fatal error: Unknown address family for smtp host: %d\n", hp->h_addrtype);
+ Pmsg1(0, _("Fatal error: Unknown address family for smtp host: %d\n"), hp->h_addrtype);
exit(1);
}
memset((char *)&sin, 0, sizeof(sin));
sin.sin_family = hp->h_addrtype;
sin.sin_port = htons(mailport);
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
- Pmsg1(0, "Fatal socket error: ERR=%s\n", strerror(errno));
+ Pmsg1(0, _("Fatal socket error: ERR=%s\n"), strerror(errno));
exit(1);
}
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
- Pmsg2(0, "Fatal connect error to %s: ERR=%s\n", mailhost, strerror(errno));
+ Pmsg2(0, _("Fatal connect error to %s: ERR=%s\n"), mailhost, strerror(errno));
exit(1);
}
Dmsg0(20, "Connected\n");
if ((r = dup(s)) < 0) {
- Pmsg1(0, "Fatal dup error: ERR=%s\n", strerror(errno));
+ Pmsg1(0, _("Fatal dup error: ERR=%s\n"), strerror(errno));
exit(1);
}
if ((sfp = fdopen(s, "w")) == 0) {
- Pmsg1(0, "Fatal fdopen error: ERR=%s\n", strerror(errno));
+ Pmsg1(0, _("Fatal fdopen error: ERR=%s\n"), strerror(errno));
exit(1);
}
if ((rfp = fdopen(r, "r")) == 0) {
- Pmsg1(0, "Fatal fdopen error: ERR=%s\n", strerror(errno));
+ Pmsg1(0, _("Fatal fdopen error: ERR=%s\n"), strerror(errno));
exit(1);
}
char *configfile = NULL;
char *catalogname = NULL;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
my_name_is(argc, argv, "dbcheck");
init_msg(NULL, NULL); /* setup message handler */
UnlockRes();
if (!found) {
if (catalogname) {
- Pmsg2(0, "Error can not find the Catalog name[%s] in the given config file [%s]\n", catalogname, configfile);
+ Pmsg2(0, _("Error can not find the Catalog name[%s] in the given config file [%s]\n"), catalogname, configfile);
} else {
- Pmsg1(0, "Error there is no Catalog section in the given config file [%s]\n", configfile);
+ Pmsg1(0, _("Error there is no Catalog section in the given config file [%s]\n"), configfile);
}
exit(1);
} else {
director = (DIRRES *)GetNextRes(R_DIRECTOR, NULL);
UnlockRes();
if (!director) {
- Pmsg0(0, "Error no Director resource defined.\n");
+ Pmsg0(0, _("Error no Director resource defined.\n"));
exit(1);
}
set_working_directory(director->working_directory);
bool quit = false;
const char *cmd;
- printf("Hello, this is the database check/correct program.\n"
-"Modify database is %s. Verbose is %s.\n"
-"Please select the fuction you want to perform.\n",
- fix?"On":"Off", verbose?"On":"Off");
+ printf(_("Hello, this is the database check/correct program.\n"));
+ if (fix)
+ printf(_("Modify database is on."));
+ else
+ printf(_("Modify database is off."));
+ if (verbose)
+ printf(_(" Verbose is on.\n"));
+ else
+ printf(_(" Verbose is off.\n"));
+
+ printf(_("Please select the fuction you want to perform.\n"));
while (!quit) {
if (fix) {
switch (item) {
case 1:
fix = !fix;
- printf(_("Database will %sbe modified.\n"), fix?"":_("NOT "));
+ if (fix)
+ printf(_("Database will be modified.\n"));
+ else
+ printf(_("Database will NOT be modified.\n"));
break;
case 2:
verbose = verbose?0:1;
- printf(_("Verbose is %s\n"), verbose?_("On"):_("Off"));
+ if (verbose)
+ printf(_(" Verbose is on.\n"));
+ else
+ printf(_(" Verbose is off.\n"));
break;
case 3:
repair_bad_filenames();
for (int i=0; i < id_list->num_ids; i++) {
bsnprintf(buf, sizeof(buf), query, id_list->Id[i]);
if (verbose) {
- printf("Deleting: %s\n", buf);
+ printf(_("Deleting: %s\n"), buf);
}
db_sql_query(db, buf, NULL, NULL);
}
const char *query;
char esc_name[5000];
- printf("Checking for duplicate Filename entries.\n");
+ printf(_("Checking for duplicate Filename entries.\n"));
/* Make list of duplicated names */
query = "SELECT Name, count(Name) as Count FROM Filename GROUP BY Name "
if (!make_name_list(query, &name_list)) {
exit(1);
}
- printf("Found %d duplicate Filename records.\n", name_list.num_ids);
- if (name_list.num_ids && verbose && yes_no("Print the list? (yes/no): ")) {
+ printf(_("Found %d duplicate Filename records.\n"), name_list.num_ids);
+ if (name_list.num_ids && verbose && yes_no(_("Print the list? (yes/no): "))) {
print_name_list(&name_list);
}
if (fix) {
exit(1);
}
if (verbose) {
- printf("Found %d for: %s\n", id_list.num_ids, name_list.name[i]);
+ printf(_("Found %d for: %s\n"), id_list.num_ids, name_list.name[i]);
}
/* Force all records to use the first id then delete the other ids */
for (int j=1; j<id_list.num_ids; j++) {
if (!make_name_list(query, &name_list)) {
exit(1);
}
- printf("Found %d duplicate Path records.\n", name_list.num_ids);
- if (name_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d duplicate Path records.\n"), name_list.num_ids);
+ if (name_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
print_name_list(&name_list);
}
if (fix) {
exit(1);
}
if (verbose) {
- printf("Found %d for: %s\n", id_list.num_ids, name_list.name[i]);
+ printf(_("Found %d for: %s\n"), id_list.num_ids, name_list.name[i]);
}
/* Force all records to use the first id then delete the other ids */
for (int j=1; j<id_list.num_ids; j++) {
{
const char *query;
- printf("Checking for orphaned JobMedia entries.\n");
+ printf(_("Checking for orphaned JobMedia entries.\n"));
query = "SELECT JobMedia.JobMediaId,Job.JobId FROM JobMedia "
"LEFT OUTER JOIN Job ON (JobMedia.JobId=Job.JobId) "
"WHERE Job.JobId IS NULL";
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d orphaned JobMedia records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d orphaned JobMedia records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf),
"SELECT JobMedia.JobMediaId,JobMedia.JobId,Media.VolumeName FROM JobMedia,Media "
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d orphaned JobMedia records.\n", id_list.num_ids);
+ printf(_("Deleting %d orphaned JobMedia records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM JobMedia WHERE JobMediaId=%u", &id_list);
}
}
{
const char *query;
- printf("Checking for orphaned File entries. This may take some time!\n");
+ printf(_("Checking for orphaned File entries. This may take some time!\n"));
query = "SELECT File.FileId,Job.JobId FROM File "
"LEFT OUTER JOIN Job ON (File.JobId=Job.JobId) "
"WHERE Job.JobId IS NULL";
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d orphaned File records.\n", id_list.num_ids);
- if (name_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d orphaned File records.\n"), id_list.num_ids);
+ if (name_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf),
"SELECT File.FileId,File.JobId,Filename.Name FROM File,Filename "
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d orphaned File records.\n", id_list.num_ids);
+ printf(_("Deleting %d orphaned File records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM File WHERE FileId=%u", &id_list);
}
}
{
const char *query;
- printf("Checking for orphaned Path entries. This may take some time!\n");
+ printf(_("Checking for orphaned Path entries. This may take some time!\n"));
query = "SELECT DISTINCT Path.PathId,File.PathId FROM Path "
"LEFT OUTER JOIN File ON (Path.PathId=File.PathId) "
"WHERE File.PathId IS NULL";
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d orphaned Path records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d orphaned Path records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf), "SELECT Path FROM Path WHERE PathId=%u", id_list.Id[i]);
db_sql_query(db, buf, print_name_handler, NULL);
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d orphaned Path records.\n", id_list.num_ids);
+ printf(_("Deleting %d orphaned Path records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM Path WHERE PathId=%u", &id_list);
}
}
{
const char *query;
- printf("Checking for orphaned Filename entries. This may take some time!\n");
+ printf(_("Checking for orphaned Filename entries. This may take some time!\n"));
query = "SELECT Filename.FilenameId,File.FilenameId FROM Filename "
"LEFT OUTER JOIN File ON (Filename.FilenameId=File.FilenameId) "
"WHERE File.FilenameId IS NULL";
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d orphaned Filename records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d orphaned Filename records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf), "SELECT Name FROM Filename WHERE FilenameId=%u", id_list.Id[i]);
db_sql_query(db, buf, print_name_handler, NULL);
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d orphaned Filename records.\n", id_list.num_ids);
+ printf(_("Deleting %d orphaned Filename records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM Filename WHERE FilenameId=%u", &id_list);
}
}
{
const char *query;
- printf("Checking for orphaned FileSet entries. This takes some time!\n");
+ printf(_("Checking for orphaned FileSet entries. This takes some time!\n"));
query = "SELECT FileSet.FileSetId,Job.FileSetId FROM FileSet "
"LEFT OUTER JOIN Job ON (FileSet.FileSetId=Job.FileSetId) "
"WHERE Job.FileSetId IS NULL";
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d orphaned FileSet records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d orphaned FileSet records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf), "SELECT FileSetId,FileSet,MD5 FROM FileSet "
"WHERE FileSetId=%u", id_list.Id[i]);
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d orphaned FileSet records.\n", id_list.num_ids);
+ printf(_("Deleting %d orphaned FileSet records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM FileSet WHERE FileSetId=%u", &id_list);
}
}
{
const char *query;
- printf("Checking for orphaned Client entries.\n");
+ printf(_("Checking for orphaned Client entries.\n"));
/* In English:
* Wiffle through Client for every Client
* joining with the Job table including every Client even if
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d orphaned Client records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d orphaned Client records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf), "SELECT ClientId,Name FROM Client "
"WHERE ClientId=%u", id_list.Id[i]);
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d orphaned Client records.\n", id_list.num_ids);
+ printf(_("Deleting %d orphaned Client records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM Client WHERE ClientId=%u", &id_list);
}
}
{
const char *query;
- printf("Checking for orphaned Job entries.\n");
+ printf(_("Checking for orphaned Job entries.\n"));
/* In English:
* Wiffle through Job for every Job
* joining with the Client table including every Job even if
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d orphaned Job records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d orphaned Job records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf), "SELECT JobId,Name,StartTime FROM Job "
"WHERE JobId=%u", id_list.Id[i]);
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d orphaned Job records.\n", id_list.num_ids);
+ printf(_("Deleting %d orphaned Job records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM Job WHERE JobId=%u", &id_list);
}
}
{
const char *query;
- printf("Checking for Admin Job entries.\n");
+ printf(_("Checking for Admin Job entries.\n"));
query = "SELECT Job.JobId FROM Job "
"WHERE Job.Type='D'";
if (verbose > 1) {
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d Admin Job records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d Admin Job records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf), "SELECT JobId,Name,StartTime FROM Job "
"WHERE JobId=%u", id_list.Id[i]);
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d Admin Job records.\n", id_list.num_ids);
+ printf(_("Deleting %d Admin Job records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM Job WHERE JobId=%u", &id_list);
}
}
{
const char *query;
- printf("Checking for Restore Job entries.\n");
+ printf(_("Checking for Restore Job entries.\n"));
query = "SELECT Job.JobId FROM Job "
"WHERE Job.Type='R'";
if (verbose > 1) {
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d Restore Job records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d Restore Job records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (int i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf), "SELECT JobId,Name,StartTime FROM Job "
"WHERE JobId=%u", id_list.Id[i]);
}
if (fix && id_list.num_ids > 0) {
- printf("Deleting %d Restore Job records.\n", id_list.num_ids);
+ printf(_("Deleting %d Restore Job records.\n"), id_list.num_ids);
delete_id_list("DELETE FROM Job WHERE JobId=%u", &id_list);
}
}
const char *query;
int i;
- printf("Checking for Filenames with a trailing slash\n");
+ printf(_("Checking for Filenames with a trailing slash\n"));
query = "SELECT FilenameId,Name from Filename "
"WHERE Name LIKE '%/'";
if (verbose > 1) {
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d bad Filename records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d bad Filename records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf),
"SELECT Name FROM Filename WHERE FilenameId=%u", id_list.Id[i]);
if (fix && id_list.num_ids > 0) {
POOLMEM *name = get_pool_memory(PM_FNAME);
char esc_name[5000];
- printf("Reparing %d bad Filename records.\n", id_list.num_ids);
+ printf(_("Reparing %d bad Filename records.\n"), id_list.num_ids);
for (i=0; i < id_list.num_ids; i++) {
int len;
bsnprintf(buf, sizeof(buf),
const char *query;
int i;
- printf("Checking for Paths without a trailing slash\n");
+ printf(_("Checking for Paths without a trailing slash\n"));
query = "SELECT PathId,Path from Path "
"WHERE Path NOT LIKE '%/'";
if (verbose > 1) {
if (!make_id_list(query, &id_list)) {
exit(1);
}
- printf("Found %d bad Path records.\n", id_list.num_ids);
- if (id_list.num_ids && verbose && yes_no("Print them? (yes/no): ")) {
+ printf(_("Found %d bad Path records.\n"), id_list.num_ids);
+ if (id_list.num_ids && verbose && yes_no(_("Print them? (yes/no): "))) {
for (i=0; i < id_list.num_ids; i++) {
bsnprintf(buf, sizeof(buf),
"SELECT Path FROM Path WHERE PathId=%u", id_list.Id[i]);
if (fix && id_list.num_ids > 0) {
POOLMEM *name = get_pool_memory(PM_FNAME);
char esc_name[5000];
- printf("Reparing %d bad Filename records.\n", id_list.num_ids);
+ printf(_("Reparing %d bad Filename records.\n"), id_list.num_ids);
for (i=0; i < id_list.num_ids; i++) {
int len;
bsnprintf(buf, sizeof(buf),
{
char *cmd;
cmd = get_cmd(prompt);
- return strcasecmp(cmd, "yes") == 0;
+ return (strcasecmp(cmd, "yes") == 0) || (strcasecmp(cmd, _("yes")) == 0);
}
bool python_set_prog(JCR*, char const*) { return false; }
int status = 0;
int ch, i;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
while ((ch = getopt(argc, argv, "v?")) != -1) {
switch (ch) {
case 'v':
puts(fs);
}
} else {
- fprintf(stderr, "%s: unknown\n", *argv);
+ fprintf(stderr, _("%s: unknown\n"), *argv);
status = 1;
}
}
char *exc = NULL;
FILE *fd;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
while ((ch = getopt(argc, argv, "ad:e:i:?")) != -1) {
switch (ch) {
case 'a': /* print extended attributes *debug* */
if (inc) {
fd = fopen(inc, "r");
if (!fd) {
- printf("Could not open include file: %s\n", inc);
+ printf(_("Could not open include file: %s\n"), inc);
exit(1);
}
while (fgets(name, sizeof(name)-1, fd)) {
if (exc) {
fd = fopen(exc, "r");
if (!fd) {
- printf("Could not open exclude file: %s\n", exc);
+ printf(_("Could not open exclude file: %s\n"), exc);
exit(1);
}
while (fgets(name, sizeof(name)-1, fd)) {
if (debug_level == 1) {
printf("%s\n", ff->fname);
} else if (debug_level > 1) {
- printf("Reg: %s\n", ff->fname);
+ printf(_("Reg: %s\n"), ff->fname);
}
count_files(ff);
break;
if (debug_level) {
char errmsg[100] = "";
if (ff->type == FT_NORECURSE) {
- bstrncpy(errmsg, "\t[will not descend: recursion turned off]", sizeof(errmsg));
+ bstrncpy(errmsg, _("\t[will not descend: recursion turned off]"), sizeof(errmsg));
} else if (ff->type == FT_NOFSCHG) {
- bstrncpy(errmsg, "\t[will not descend: file system change not allowed]", sizeof(errmsg));
+ bstrncpy(errmsg, _("\t[will not descend: file system change not allowed]"), sizeof(errmsg));
} else if (ff->type == FT_INVALIDFS) {
- bstrncpy(errmsg, "\t[will not descend: disallowed file system]", sizeof(errmsg));
+ bstrncpy(errmsg, _("\t[will not descend: disallowed file system]"), sizeof(errmsg));
}
printf("%s%s%s\n", (debug_level > 1 ? "Dir: " : ""), ff->fname, errmsg);
}
printf(_("========== Path length is zero. File=%s\n"), ar->fname);
}
if (debug_level >= 10) {
- printf("Path: %s\n", spath);
- printf("File: %s\n", file);
+ printf(_("Path: %s\n"), spath);
+ printf(_("File: %s\n"), file);
}
}
char *exc = NULL;
FILE *fd;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
while ((ch = getopt(argc, argv, "ad:e:i:?")) != -1) {
switch (ch) {
case 'a': /* print extended attributes *debug* */
if (inc) {
fd = fopen(inc, "r");
if (!fd) {
- printf("Could not open include file: %s\n", inc);
+ printf(_("Could not open include file: %s\n"), inc);
exit(1);
}
while (fgets(name, sizeof(name)-1, fd)) {
if (exc) {
fd = fopen(exc, "r");
if (!fd) {
- printf("Could not open exclude file: %s\n", exc);
+ printf(_("Could not open exclude file: %s\n"), exc);
exit(1);
}
while (fgets(name, sizeof(name)-1, fd)) {
fprintf(stderr, _(
"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n"
"Written by Nicolas Boichat (2004)\n"
-"\nVersion: " VERSION " (" BDATE ") %s %s %s\n\n"
+"\nVersion: %s (%s) %s %s %s\n\n"
"Usage: tray-monitor [-c config_file] [-d debug_level]\n"
" -c <file> set configuration file to file\n"
" -dnn set debug level to nn\n"
" -t test - read configuration and exit\n"
" -? print this message.\n"
-"\n"), HOST_OS, DISTNAME, DISTVER);
+"\n"), VERSION, BDATE, HOST_OS, DISTNAME, DISTVER);
}
static GtkWidget *new_image_button(const gchar *stock_id,
CLIENT* filed;
STORE* stored;
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
init_stack_dump();
my_name_is(argc, argv, "tray-monitor");
- textdomain("bacula");
init_msg(NULL, NULL);
working_directory = "/tmp";
GtkWidget *entry;
- entry = gtk_menu_item_new_with_label("Open status window...");
+ entry = gtk_menu_item_new_with_label(_("Open status window..."));
g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(TrayIconActivate), NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(mTrayMenu), entry);
gtk_menu_shell_append(GTK_MENU_SHELL(mTrayMenu), gtk_separator_menu_item_new());
- entry = gtk_menu_item_new_with_label("Exit");
+ entry = gtk_menu_item_new_with_label(_("Exit"));
g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(TrayIconExit), NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(mTrayMenu), entry);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(window), "Bacula tray monitor");
+ gtk_window_set_title(GTK_WINDOW(window), _("Bacula tray monitor"));
g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL);
//g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL);
if (items[i].D_sock) {
switch (items[i].type) {
case R_DIRECTOR:
- trayMessage("Disconnecting from Director %s:%d\n", ((DIRRES*)items[i].resource)->address, ((DIRRES*)items[i].resource)->DIRport);
+ trayMessage(_("Disconnecting from Director %s:%d\n"), ((DIRRES*)items[i].resource)->address, ((DIRRES*)items[i].resource)->DIRport);
break;
case R_CLIENT:
- trayMessage("Disconnecting from Client %s:%d\n", ((CLIENT*)items[i].resource)->address, ((CLIENT*)items[i].resource)->FDport);
+ trayMessage(_("Disconnecting from Client %s:%d\n"), ((CLIENT*)items[i].resource)->address, ((CLIENT*)items[i].resource)->FDport);
break;
case R_STORAGE:
- trayMessage("Disconnecting from Storage %s:%d\n", ((STORE*)items[i].resource)->address, ((STORE*)items[i].resource)->SDport);
+ trayMessage(_("Disconnecting from Storage %s:%d\n"), ((STORE*)items[i].resource)->address, ((STORE*)items[i].resource)->SDport);
break;
default:
break;
static void MonitorAbout(GtkWidget *widget, gpointer data) {
#if HAVE_GTK_2_4
- GtkWidget* about = gtk_message_dialog_new_with_markup(GTK_WINDOW(window),GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, _(
- "<span size='x-large' weight='bold'>Bacula Tray Monitor</span>\n\n"
- "Copyright (C) 2004 Kern Sibbald and John Walker\n"
- "Written by Nicolas Boichat\n"
- "\n<small>Version: " VERSION " (" BDATE ") %s %s %s</small>"
- ), HOST_OS, DISTNAME, DISTVER);
+ GtkWidget* about = gtk_message_dialog_new_with_markup(GTK_WINDOW(window),GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE,
+ "<span size='x-large' weight='bold'>%s</span>\n\n"
+ "%s"
+ "\n<small>%s: %s (%s) %s %s %s</small>",
+ _("Bacula Tray Monitor"),
+ _("Copyright (C) 2004 Kern Sibbald and John Walker\n"
+ "Written by Nicolas Boichat\n"),
+ _("Version"),
+ VERSION, BDATE, HOST_OS, DISTNAME, DISTVER);
#else
GtkWidget* about = gtk_message_dialog_new(GTK_WINDOW(window),GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, _(
- "Bacula Tray Monitor\n\n"
- "Copyright (C) 2004 Kern Sibbald and John Walker\n"
- "Written by Nicolas Boichat\n"
- "\nVersion: " VERSION " (" BDATE ") %s %s %s"
- ), HOST_OS, DISTNAME, DISTVER);
+ "%s\n\n"
+ "%s"
+ "\n%s %s (%s) %s %s %s",
+ _("Bacula Tray Monitor"),
+ _("Copyright (C) 2004 Kern Sibbald and John Walker\n"
+ "Written by Nicolas Boichat\n"),
+ _("Version:"),
+ VERSION, BDATE, HOST_OS, DISTNAME, DISTVER);
#endif
gtk_dialog_run(GTK_DIALOG(about));
gtk_widget_destroy(about);
case R_STORAGE:
return authenticate_storage_daemon(jcr, monitor, (STORE*)item->resource);
default:
- printf("Error, currentitem is not a Client or a Storage..\n");
+ printf(_("Error, currentitem is not a Client or a Storage..\n"));
gtk_main_quit();
return FALSE;
}
getstatus(&items[lastupdated], 0, &strlast);
updateStatusIcon(&items[lastupdated]);
- changeStatusMessage(&items[lastupdated], "Current job: %s\nLast job: %s", strcurrent->str, strlast->str);
+ changeStatusMessage(&items[lastupdated], _("Current job: %s\nLast job: %s"), strcurrent->str, strlast->str);
updateStatusIcon(NULL);
return 1;
}
+void append_error_string(GString* str, int joberrors) {
+ if (joberrors > 1) {
+ g_string_append_printf(str, _(" (%d errors)"), joberrors);
+ }
+ else {
+ g_string_append_printf(str, _(" (%d error)"), joberrors);
+ }
+}
+
void getstatus(monitoritem* item, int current, GString** str) {
GSList *list, *it;
stateenum ret = error;
switch (jobstatus) {
case JS_Created:
ret = (joberrors > 0) ? warn : running;
- g_string_append_printf(*str, _("Job status: Created (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Created"));
+ append_error_string(*str, joberrors);
break;
case JS_Running:
ret = (joberrors > 0) ? warn : running;
- g_string_append_printf(*str, _("Job status: Running (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Running"));
+ append_error_string(*str, joberrors);
break;
case JS_Blocked:
- g_string_append_printf(*str, _("Job status: Blocked (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Blocked"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_Terminated:
- g_string_append_printf(*str, _("Job status: Terminated (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Terminated"));
+ append_error_string(*str, joberrors);
ret = (joberrors > 0) ? warn : idle;
break;
case JS_ErrorTerminated:
- g_string_append_printf(*str, _("Job status: Terminated in error (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Terminated in error"));
+ append_error_string(*str, joberrors);
ret = error;
break;
case JS_Error:
ret = (joberrors > 0) ? warn : running;
- g_string_append_printf(*str, _("Job status: Error (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Error"));
+ append_error_string(*str, joberrors);
break;
case JS_FatalError:
- g_string_append_printf(*str, _("Job status: Fatal error (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Fatal error"));
+ append_error_string(*str, joberrors);
ret = error;
break;
case JS_Differences:
- g_string_append_printf(*str, _("Job status: Verify differences (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Verify differences"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_Canceled:
- g_string_append_printf(*str, _("Job status: Canceled (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Canceled"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitFD:
- g_string_append_printf(*str, _("Job status: Waiting on File daemon (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting on File daemon"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitSD:
- g_string_append_printf(*str, _("Job status: Waiting on the Storage daemon (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting on the Storage daemon"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitMedia:
- g_string_append_printf(*str, _("Job status: Waiting for new media (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting for new media"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitMount:
- g_string_append_printf(*str, _("Job status: Waiting for Mount (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting for Mount"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitStoreRes:
- g_string_append_printf(*str, _("Job status: Waiting for storage resource (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting for storage resource"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitJobRes:
- g_string_append_printf(*str, _("Job status: Waiting for job resource (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting for job resource"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitClientRes:
- g_string_append_printf(*str, _("Job status: Waiting for Client resource (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting for Client resource"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitMaxJobs:
- g_string_append_printf(*str, _("Job status: Waiting for maximum jobs (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting for maximum jobs"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitStartTime:
- g_string_append_printf(*str, _("Job status: Waiting for start time (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting for start time"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
case JS_WaitPriority:
- g_string_append_printf(*str, _("Job status: Waiting for higher priority jobs to finish (%d error%s)"), joberrors, (joberrors > 1) ? "s" : "");
+ g_string_append_printf(*str, _("Job status: Waiting for higher priority jobs to finish"));
+ append_error_string(*str, joberrors);
ret = warn;
break;
default:
- g_warning("Unknown job status %c.", jobstatus);
- g_string_append_printf(*str, _("Job status: Unknown(%c) (%d error%s)"), jobstatus, joberrors, (joberrors > 1) ? "s" : "");
+ g_warning(_("Unknown job status %c."), jobstatus);
+ g_string_append_printf(*str, _("Job status: Unknown(%c)"), jobstatus);
+ append_error_string(*str, joberrors);
ret = warn;
break;
}
}
else {
- fprintf(stderr, "Bad scan : '%s' %d\n", (it == NULL) ? "" : ((GString*)it->data)->str, k);
+ fprintf(stderr, _("Bad scan : '%s' %d\n"), (it == NULL) ? "" : ((GString*)it->data)->str, k);
ret = error;
}
switch (item->type) {
case R_DIRECTOR:
dird = (DIRRES*)item->resource;
- trayMessage("Connecting to Director %s:%d\n", dird->address, dird->DIRport);
- changeStatusMessage(item, "Connecting to Director %s:%d", dird->address, dird->DIRport);
- item->D_sock = bnet_connect(NULL, 0, 0, "Director daemon", dird->address, NULL, dird->DIRport, 0);
+ trayMessage(_("Connecting to Director %s:%d\n"), dird->address, dird->DIRport);
+ changeStatusMessage(item, _("Connecting to Director %s:%d"), dird->address, dird->DIRport);
+ item->D_sock = bnet_connect(NULL, 0, 0, _("Director daemon"), dird->address, NULL, dird->DIRport, 0);
jcr.dir_bsock = item->D_sock;
break;
case R_CLIENT:
filed = (CLIENT*)item->resource;
- trayMessage("Connecting to Client %s:%d\n", filed->address, filed->FDport);
- changeStatusMessage(item, "Connecting to Client %s:%d", filed->address, filed->FDport);
- item->D_sock = bnet_connect(NULL, 0, 0, "File daemon", filed->address, NULL, filed->FDport, 0);
+ trayMessage(_("Connecting to Client %s:%d\n"), filed->address, filed->FDport);
+ changeStatusMessage(item, _("Connecting to Client %s:%d"), filed->address, filed->FDport);
+ item->D_sock = bnet_connect(NULL, 0, 0, _("File daemon"), filed->address, NULL, filed->FDport, 0);
jcr.file_bsock = item->D_sock;
break;
case R_STORAGE:
stored = (STORE*)item->resource;
- trayMessage("Connecting to Storage %s:%d\n", stored->address, stored->SDport);
- changeStatusMessage(item, "Connecting to Storage %s:%d", stored->address, stored->SDport);
- item->D_sock = bnet_connect(NULL, 0, 0, "Storage daemon", stored->address, NULL, stored->SDport, 0);
+ trayMessage(_("Connecting to Storage %s:%d\n"), stored->address, stored->SDport);
+ changeStatusMessage(item, _("Connecting to Storage %s:%d"), stored->address, stored->SDport);
+ item->D_sock = bnet_connect(NULL, 0, 0, _("Storage daemon"), stored->address, NULL, stored->SDport, 0);
jcr.store_bsock = item->D_sock;
break;
default:
- printf("Error, currentitem is not a Client, a Storage or a Director..\n");
+ printf(_("Error, currentitem is not a Client, a Storage or a Director..\n"));
gtk_main_quit();
return 0;
}
if (item->D_sock == NULL) {
- g_slist_append(*list, g_string_new("Cannot connect to daemon.\n"));
- changeStatusMessage(item, "Cannot connect to daemon.");
+ g_slist_append(*list, _("Cannot connect to daemon.\n"));
+ changeStatusMessage(item, _("Cannot connect to daemon."));
item->state = error;
item->oldstate = error;
return 0;
g_slist_append(*list, str);
item->state = error;
item->oldstate = error;
- changeStatusMessage(item, "Authentication error : %s", item->D_sock->msg);
+ changeStatusMessage(item, _("Authentication error : %s"), item->D_sock->msg);
item->D_sock = NULL;
return 0;
}
switch (item->type) {
case R_DIRECTOR:
- trayMessage("Opened connection with Director daemon.\n");
- changeStatusMessage(item, "Opened connection with Director daemon.");
+ trayMessage(_("Opened connection with Director daemon.\n"));
+ changeStatusMessage(item, _("Opened connection with Director daemon."));
break;
case R_CLIENT:
- trayMessage("Opened connection with File daemon.\n");
- changeStatusMessage(item, "Opened connection with File daemon.");
+ trayMessage(_("Opened connection with File daemon.\n"));
+ changeStatusMessage(item, _("Opened connection with File daemon."));
break;
case R_STORAGE:
- trayMessage("Opened connection with Storage daemon.\n");
- changeStatusMessage(item, "Opened connection with Storage daemon.");
+ trayMessage(_("Opened connection with Storage daemon.\n"));
+ changeStatusMessage(item, _("Opened connection with Storage daemon."));
break;
default:
- printf("Error, currentitem is not a Client, a Storage or a Director..\n");
+ printf(_("Error, currentitem is not a Client, a Storage or a Director..\n"));
gtk_main_quit();
return 0;
break;
}
else if (item->D_sock->msglen == BNET_PROMPT) {
//fprintf(stderr, "<< PROMPT >>\n");
- g_slist_append(*list, g_string_new("<< Error: BNET_PROMPT signal received. >>\n"));
+ g_slist_append(*list, g_string_new(_("<< Error: BNET_PROMPT signal received. >>\n")));
return 0;
}
else if (item->D_sock->msglen == BNET_HEARTBEAT) {
bnet_sig(item->D_sock, BNET_HB_RESPONSE);
- g_slist_append(*list, g_string_new("<< Heartbeat signal received, answered. >>\n"));
+ g_slist_append(*list, g_string_new(_("<< Heartbeat signal received, answered. >>\n")));
}
else {
str = g_string_sized_new(64);
- g_string_printf(str, "<< Unexpected signal received : %s >>\n", bnet_sig_to_ascii(item->D_sock));
+ g_string_printf(str, _("<< Unexpected signal received : %s >>\n"), bnet_sig_to_ascii(item->D_sock));
g_slist_append(*list, str);
}
}
else { /* BNET_HARDEOF || BNET_ERROR */
- g_slist_append(*list, g_string_new("<ERROR>\n"));
+ g_slist_append(*list, g_string_new(_("<ERROR>\n")));
item->D_sock = NULL;
item->state = error;
item->oldstate = error;
- changeStatusMessage(item, "Error : BNET_HARDEOF or BNET_ERROR");
- //fprintf(stderr, "<< ERROR >>\n");
+ changeStatusMessage(item, _("Error : BNET_HARDEOF or BNET_ERROR"));
+ //fprintf(stderr, _("<< ERROR >>\n"));
return 0;
}
if (is_bnet_stop(item->D_sock)) {
- g_string_append_printf(str, "<STOP>\n");
+ g_string_append_printf(str, _("<STOP>\n"));
item->D_sock = NULL;
item->state = error;
item->oldstate = error;
- changeStatusMessage(item, "Error : Connection closed.");
+ changeStatusMessage(item, _("Error : Connection closed."));
//fprintf(stderr, "<< STOP >>\n");
return 0; /* error or term */
}
char ed1[100], ed2[100];
if (res == NULL) {
- sendit(sock, "No %s resource defined\n", res_to_str(type));
+ sendit(sock, _("No %s resource defined\n"), res_to_str(type));
return;
}
if (type < 0) { /* no recursion */
}
switch (type) {
case R_MONITOR:
- sendit(sock, "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n",
+ sendit(sock, _("Monitor: name=%s FDtimeout=%s SDtimeout=%s\n"),
reshdr->name,
edit_uint64(res->res_monitor.FDConnectTimeout, ed1),
edit_uint64(res->res_monitor.SDConnectTimeout, ed2));
break;
case R_DIRECTOR:
- sendit(sock, "Director: name=%s address=%s FDport=%d\n",
+ sendit(sock, _("Director: name=%s address=%s FDport=%d\n"),
res->res_dir.hdr.name, res->res_dir.address, res->res_dir.DIRport);
break;
case R_CLIENT:
- sendit(sock, "Client: name=%s address=%s FDport=%d\n",
+ sendit(sock, _("Client: name=%s address=%s FDport=%d\n"),
res->res_client.hdr.name, res->res_client.address, res->res_client.FDport);
break;
case R_STORAGE:
- sendit(sock, "Storage: name=%s address=%s SDport=%d\n",
+ sendit(sock, _("Storage: name=%s address=%s SDport=%d\n"),
res->res_store.hdr.name, res->res_store.address, res->res_store.SDport);
break;
default:
- sendit(sock, "Unknown resource type %d in dump_resource.\n", type);
+ sendit(sock, _("Unknown resource type %d in dump_resource.\n"), type);
break;
}
if (recurse && res->res_monitor.hdr.next) {
}
break;
default:
- printf("Unknown resource type %d in free_resource.\n", type);
+ printf(_("Unknown resource type %d in free_resource.\n"), type);
}
/* Common stuff again -- free the resource, recurse to next one */
if (res) {
for (i=0; items[i].name; i++) {
if (items[i].flags & ITEM_REQUIRED) {
if (!bit_is_set(i, res_all.res_monitor.hdr.item_present)) {
- Emsg2(M_ERROR_TERM, 0, "%s item is required in %s resource, but not found.\n",
+ Emsg2(M_ERROR_TERM, 0, _("%s item is required in %s resource, but not found.\n"),
items[i].name, resources[rindex]);
}
}
/* If this triggers, take a look at lib/parse_conf.h */
if (i >= MAX_RES_ITEMS) {
- Emsg1(M_ERROR_TERM, 0, "Too many items in %s resource\n", resources[rindex]);
+ Emsg1(M_ERROR_TERM, 0, _("Too many items in %s resource\n"), resources[rindex]);
}
}
case R_DIRECTOR:
break;
default:
- Emsg1(M_ERROR, 0, "Unknown resource type %d in save_resource.\n", type);
+ Emsg1(M_ERROR, 0, _("Unknown resource type %d in save_resource.\n"), type);
error = 1;
break;
}
size = sizeof(STORE);
break;
default:
- printf("Unknown resource type %d in save_resrouce.\n", type);
+ printf(_("Unknown resource type %d in save_resrouce.\n"), type);
error = 1;
size = 1;
break;
Dmsg1(6, ">dird: %s", dir->msg);
if (bnet_recv(dir) <= 0) {
- csprint("Bad response to Hello command: ERR=", CS_DATA);
+ csprint(_("Bad response to Hello command: ERR="), CS_DATA);
csprint(bnet_strerror(dir), CS_DATA);
csprint("\n", CS_DATA);
goto bail_out;
}
Dmsg1(10, "<dird: %s", dir->msg);
if (strncmp(dir->msg, OKhello, sizeof(OKhello)-1) != 0) {
- csprint("Director rejected Hello command\n", CS_DATA);
+ csprint(_("Director rejected Hello command\n"), CS_DATA);
goto bail_out;
} else {
csprint(dir->msg, CS_DATA);
int recurse = 1;
if (res == NULL) {
- printf("No record for %d %s\n", type, res_to_str(type));
+ printf(_("No record for %d %s\n"), type, res_to_str(type));
return;
}
if (type < 0) { /* no recursion */
}
switch (type) {
case R_CONSOLE:
- printf("Console: name=%s rcfile=%s histfile=%s\n", reshdr->name,
+ printf(_("Console: name=%s rcfile=%s histfile=%s\n"), reshdr->name,
res->res_cons.rc_file, res->res_cons.hist_file);
break;
case R_DIRECTOR:
- printf("Director: name=%s address=%s DIRport=%d\n", reshdr->name,
+ printf(_("Director: name=%s address=%s DIRport=%d\n"), reshdr->name,
res->res_dir.address, res->res_dir.DIRport);
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
}
if (recurse && res->res_dir.hdr.next) {
dump_resource(type, res->res_dir.hdr.next, sendit, sock);
}
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
}
/* Common stuff again -- free the resource, recurse to next one */
free(res);
for (i=0; items[i].name; i++) {
if (items[i].flags & ITEM_REQUIRED) {
if (!bit_is_set(i, res_all.res_dir.hdr.item_present)) {
- Emsg2(M_ABORT, 0, "%s item is required in %s resource, but not found.\n",
+ Emsg2(M_ABORT, 0, _("%s item is required in %s resource, but not found.\n"),
items[i].name, resources[rindex]);
}
}
break;
default:
- Emsg1(M_ERROR, 0, "Unknown resource type %d\n", type);
+ Emsg1(M_ERROR, 0, _("Unknown resource type %d\n"), type);
error = 1;
break;
}
size = sizeof(DIRRES);
break;
default:
- printf("Unknown resource type %d\n", type);
+ printf(_("Unknown resource type %d\n"), type);
error = 1;
size = 1;
break;
void console_thread::InitLib() {
if (WSA_Init() != 0) {
- csprint("Error while initializing windows sockets...\n");
+ csprint(_("Error while initializing windows sockets...\n"));
inited = false;
return;
}
init_stack_dump();
my_name_is(0, NULL, "wx-console");
- //textdomain("bacula-console");
working_directory = (const char*) console_thread::working_dir.GetData();
inited = true;
void console_thread::FreeLib() {
if (inited) {
if (WSACleanup() != 0) {
- csprint("Error while cleaning up windows sockets...\n");
+ csprint(_("Error while cleaning up windows sockets...\n"));
}
}
}
more[0] = 0;
}
- err.Format(wxT("Config error: %s\n : line %d, col %d of file %s\n%s\n%s"),
+ err.Format(wxT(_("Config error: %s\n : line %d, col %d of file %s\n%s\n%s")),
buf, lc->line_no, lc->col_no, lc->fname, lc->line, more);
errmsg << err;
if (!inited) {
InitLib();
if (!inited)
- return wxT("Error while initializing library.");
+ return wxT(_("Error while initializing library."));
}
free_config_resources();
void* console_thread::Entry() {
DIRRES* dir;
if (!inited) {
- csprint("Error : Library not initialized\n");
+ csprint(_("Error : Library not initialized\n"));
csprint(NULL, CS_END);
csprint(NULL, CS_DISCONNECTED);
csprint(NULL, CS_TERMINATED);
}
if (!configloaded) {
- csprint("Error : No configuration file loaded\n");
+ csprint(_("Error : No configuration file loaded\n"));
csprint(NULL, CS_END);
csprint(NULL, CS_DISCONNECTED);
csprint(NULL, CS_TERMINATED);
return NULL;
}
- csprint("Connecting...\n");
+ csprint(_("Connecting...\n"));
int count = 0;
DIRRES* res[16]; /* Maximum 16 directors */
UnlockRes();
if (count == 0) {
- csprint("Error : No director defined in config file.\n");
+ csprint(_("Error : No director defined in config file.\n"));
csprint(NULL, CS_END);
csprint(NULL, CS_DISCONNECTED);
csprint(NULL, CS_TERMINATED);
directorchoosen = 1;
} else {
while (true) {
- csprint("Multiple directors found in your config file.\n");
+ csprint(_("Multiple directors found in your config file.\n"));
for (int i = 0; i < count; i++) {
if (i < 9) {
csprint(wxString(wxT(" ")) << (i+1) << wxT(": ") << wxString(res[i]->hdr.name,*wxConvCurrent) << wxT("\n"));
csprint(wxString(wxT(" ")) << (i+1) << wxT(": ") << wxString(res[i]->hdr.name,*wxConvCurrent) << wxT("\n"));
}
}
- csprint(wxString(wxT("Please choose a director (1-")) << count << wxT(") : "),CS_DATA);
+ csprint(wxString::Format(wxT(_("Please choose a director (1-%s): ")), count), CS_DATA);
csprint(NULL, CS_PROMPT);
choosingdirector = true;
directorchoosen = -1;
/* Initialize Console TLS context */
if (cons && (cons->tls_enable || cons->tls_require)) {
/* Generate passphrase prompt */
- bsnprintf(buf, sizeof(buf), "Passphrase for Console \"%s\" TLS private key: ", cons->hdr.name);
+ bsnprintf(buf, sizeof(buf), _("Passphrase for Console \"%s\" TLS private key: "), cons->hdr.name);
/* Initialize TLS context:
* Args: CA certfile, CA certdir, Certfile, Keyfile,
/* Initialize Director TLS context */
if (dir->tls_enable || dir->tls_require) {
/* Generate passphrase prompt */
- bsnprintf(buf, sizeof(buf), "Passphrase for Director \"%s\" TLS private key: ", dir->hdr.name);
+ bsnprintf(buf, sizeof(buf), _("Passphrase for Director \"%s\" TLS private key: "), dir->hdr.name);
/* Initialize TLS context:
* Args: CA certfile, CA certdir, Certfile, Keyfile,
}
- UA_sock = bnet_connect(&jcr, 3, 3, "Director daemon",
+ UA_sock = bnet_connect(&jcr, 3, 3, _("Director daemon"),
dir->address, NULL, dir->DIRport, 0);
if (UA_sock == NULL) {
- csprint("Failed to connect to the director\n");
+ csprint(_("Failed to connect to the director\n"));
csprint(NULL, CS_END);
csprint(NULL, CS_DISCONNECTED);
csprint(NULL, CS_TERMINATED);
return NULL;
}
- csprint("Connected\n");
+ csprint(_("Connected\n"));
jcr.dir_bsock = UA_sock;
if (!authenticate_director(&jcr, dir, cons)) {
}
else if (UA_sock->msglen == BNET_HEARTBEAT) {
bnet_sig(UA_sock, BNET_HB_RESPONSE);
- csprint("<< Heartbeat signal received, answered. >>\n", CS_DEBUG);
+ csprint(_("<< Heartbeat signal received, answered. >>\n"), CS_DEBUG);
}
else {
- csprint("<< Unexpected signal received : ", CS_DEBUG);
+ csprint(_("<< Unexpected signal received : "), CS_DEBUG);
csprint(bnet_sig_to_ascii(UA_sock), CS_DEBUG);
csprint(">>\n", CS_DEBUG);
}
csprint(NULL, CS_DISCONNECTED);
- csprint("Connection terminated\n");
+ csprint(_("Connection terminated\n"));
UA_sock = NULL;
// 'Main program' equivalent: the program execution "starts" here
bool MyApp::OnInit()
{
+ setlocale(LC_ALL, "");
+ bindtextdomain("bacula", LOCALEDIR);
+ textdomain("bacula");
+
long posx, posy, sizex, sizey;
int displayx, displayy;
InitWinAPIWrapper();
}
}
- wxbMainFrame *frame = wxbMainFrame::CreateInstance(wxT("Bacula wx-console"),
+ wxbMainFrame *frame = wxbMainFrame::CreateInstance(wxT(_("Bacula wx-console")),
wxPoint(posx, posy), wxSize(sizex, sizey));
frame->Show(TRUE);
- frame->Print(wxString(wxT("Welcome to bacula wx-console ")) << wxT(VERSION) << wxT(" (") << wxT(BDATE) << wxT(")!\n"), CS_DEBUG);
+ frame->Print(wxString::Format(wxT(_("Welcome to bacula wx-console %s (%s)!\n")), wxT(VERSION), wxT(BDATE)), CS_DEBUG);
frame->StartConsoleThread(wxT(""));
END_EVENT_TABLE()
wxbConfigFileEditor::wxbConfigFileEditor(wxWindow* parent, wxString filename):
- wxDialog(parent, -1, wxT("Config file editor"), wxDefaultPosition, wxSize(500, 300),
+ wxDialog(parent, -1, wxT(_("Config file editor")), wxDefaultPosition, wxSize(500, 300),
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {
this->filename = filename;
mainSizer->AddGrowableRow(0);
wxBoxSizer *bottomsizer = new wxBoxSizer(wxHORIZONTAL);
- bottomsizer->Add(new wxButton(this, Save, wxT("Save and close")), 0, wxALL, 10);
- bottomsizer->Add(new wxButton(this, Quit, wxT("Close without saving")), 0, wxALL, 10);
+ bottomsizer->Add(new wxButton(this, Save, wxT(_("Save and close"))), 0, wxALL, 10);
+ bottomsizer->Add(new wxButton(this, Quit, wxT(_("Close without saving"))), 0, wxALL, 10);
mainSizer->Add(textCtrl, 1, wxEXPAND);
mainSizer->Add(bottomsizer, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL);
if (!filen.FileExists()) {
(*textCtrl) << wxT("#\n");
- (*textCtrl) << wxT("# Bacula wx-console Configuration File\n");
+ (*textCtrl) << wxT(_("# Bacula wx-console Configuration File\n"));
(*textCtrl) << wxT("#\n");
(*textCtrl) << wxT("\n");
(*textCtrl) << wxT("Director {\n");
void wxbConfigFileEditor::OnSave(wxCommandEvent& event) {
wxFile file(filename, wxFile::write);
if (!file.IsOpened()) {
- wxMessageBox(wxString(wxT("Unable to write to ")) << filename << wxT("\n"), wxT("Error while saving"),
+ wxMessageBox(wxString::Format(wxT(_("Unable to write to %s\n")), filename.c_str()),
+ wxT(_("Error while saving")),
wxOK | wxICON_ERROR, this);
EndModal(wxCANCEL);
return;
wxBoxSizer* restoreBottomSizer = new wxBoxSizer(wxHORIZONTAL);
- cfgOk = new wxButton(this, ok, wxT("OK"), wxDefaultPosition, wxSize(70, 25));
+ cfgOk = new wxButton(this, ok, wxT(_("OK")), wxDefaultPosition, wxSize(70, 25));
restoreBottomSizer->Add(cfgOk, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
if (apply != -1) {
- cfgApply = new wxButton(this, apply, wxT("Apply"), wxDefaultPosition, wxSize(70, 25));
+ cfgApply = new wxButton(this, apply, wxT(_("Apply")), wxDefaultPosition, wxSize(70, 25));
restoreBottomSizer->Add(cfgApply, 1, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 10);
}
else {
cfgApply = NULL;
}
- cfgCancel = new wxButton(this, cancel, wxT("Cancel"), wxDefaultPosition, wxSize(70, 25));
+ cfgCancel = new wxButton(this, cancel, wxT(_("Cancel")), wxDefaultPosition, wxSize(70, 25));
restoreBottomSizer->Add(cfgCancel, 1, wxALIGN_CENTER_VERTICAL | wxLEFT, 10);
mainSizer->Add(restoreBottomSizer, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL, 5);
void wxbHistoryTextCtrl::SetValue(const wxString& value) {
if (value == wxT("")) {
- help->SetLabel(wxT("Type your command below:"));
+ help->SetLabel(wxT(_("Type your command below:")));
}
wxTextCtrl::SetValue(value);
}
else if (GetValue() != wxT("")) {
wxbCommands::iterator it;
wxString key;
- wxString helptext = wxT("Unknown command.");
+ wxString helptext = wxT(_("Unknown command."));
int found = 0;
for( it = commands.begin(); it != commands.end(); ++it ) {
if (it->first.Find(GetValue()) == 0) {
helptext += wxT(" ") + it->first;
}
else if (found > 1) {
- helptext = wxT("Possible completions: ") + key + wxT(" ") + it->first;
+ helptext = wxT(_("Possible completions: ")) + key + wxT(" ") + it->first;
}
else { // (found == 1)
helptext = it->first + wxT(": ") + it->second;
}
}
else {
- help->SetLabel(wxT("Type your command below:"));
+ help->SetLabel(wxT(_("Type your command below:")));
event.Skip();
}
}
// the "About" item should be in the help menu
wxMenu *helpMenu = new wxMenu;
- helpMenu->Append(Minimal_About, _T("&About...\tF1"), _T("Show about dialog"));
+ helpMenu->Append(Minimal_About, _T(_("&About...\tF1")), _T(_("Show about dialog")));
- menuFile->Append(MenuConnect, _T("Connect"), _T("Connect to the director"));
- menuFile->Append(MenuDisconnect, _T("Disconnect"), _T("Disconnect of the director"));
+ menuFile->Append(MenuConnect, _T(_("Connect")), _T(_("Connect to the director")));
+ menuFile->Append(MenuDisconnect, _T(_("Disconnect")), _T(_("Disconnect of the director")));
menuFile->AppendSeparator();
- menuFile->Append(ChangeConfigFile, _T("Change of configuration file"), _T("Change your default configuration file"));
- menuFile->Append(EditConfigFile, _T("Edit your configuration file"), _T("Edit your configuration file"));
+ menuFile->Append(ChangeConfigFile, _T(_("Change of configuration file")), _T(_("Change your default configuration file")));
+ menuFile->Append(EditConfigFile, _T(_("Edit your configuration file")), _T(_("Edit your configuration file")));
menuFile->AppendSeparator();
- menuFile->Append(Minimal_Quit, _T("E&xit\tAlt-X"), _T("Quit this program"));
+ menuFile->Append(Minimal_Quit, _T(_("E&xit\tAlt-X")), _T(_("Quit this program")));
// now append the freshly created menu to the menu bar...
wxMenuBar *menuBar = new wxMenuBar();
- menuBar->Append(menuFile, _T("&File"));
- menuBar->Append(helpMenu, _T("&Help"));
+ menuBar->Append(menuFile, _T(_("&File")));
+ menuBar->Append(helpMenu, _T(_("&Help")));
// ... and attach this menu bar to the frame
SetMenuBar(menuBar);
CreateStatusBar(1);
- SetStatusText(wxString(wxT("Welcome to bacula wx-console ")) << wxString(wxT(VERSION)) << wxString (wxT(" (")) << wxString(wxT(BDATE)) << wxString(wxT(")!\n")));
+ SetStatusText(wxString::Format(wxT(_("Welcome to bacula wx-console %s (%s)!\n")), wxT(VERSION), wxT(BDATE)));
wxPanel* global = new wxPanel(this, -1);
/* Console */
wxPanel* consolePanel = new wxPanel(notebook, -1);
- notebook->AddPage(consolePanel, wxT("Console"));
+ notebook->AddPage(consolePanel, wxT(_("Console")));
consoleCtrl = new wxTextCtrl(consolePanel,-1,wxT(""),wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY | wxTE_RICH);
wxFont font(10, wxMODERN, wxNORMAL, wxNORMAL);
#if defined __WXGTK12__ && !defined __WXGTK20__ // Fix for "chinese" fonts under gtk+ 1.2
font.SetDefaultEncoding(wxFONTENCODING_ISO8859_1);
consoleCtrl->SetDefaultStyle(wxTextAttr(*wxBLACK, wxNullColour, font));
- Print(wxT("Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n"), CS_DEBUG);
+ Print(wxT(_("Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n")), CS_DEBUG);
#else
consoleCtrl->SetDefaultStyle(wxTextAttr(*wxBLACK, wxNullColour, font));
#if (wxUSE_UNICODE == 0) && __WXGTK20__
- Print(wxT("Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode support when handling non-ASCII filenames: Every non-ASCII character in such filenames will be replaced by an interrogation mark.\nIf this behaviour disturbs you, please build wx-console against a Unicode version of wxWidgets for GTK+ 2.0.\n---\n"), CS_DEBUG);
+ Print(wxT(_("Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode support when handling non-ASCII filenames: Every non-ASCII character in such filenames will be replaced by an interrogation mark.\nIf this behaviour disturbs you, please build wx-console against a Unicode version of wxWidgets for GTK+ 2.0.\n---\n")), CS_DEBUG);
#endif
#endif
- helpCtrl = new wxStaticText(consolePanel, -1, wxT("Type your command below:"));
+ helpCtrl = new wxStaticText(consolePanel, -1, wxT(_("Type your command below:")));
wxFlexGridSizer *consoleSizer = new wxFlexGridSizer(4, 1, 0, 0);
consoleSizer->AddGrowableCol(0);
consoleSizer->AddGrowableRow(0);
typeCtrl = new wxbHistoryTextCtrl(helpCtrl, consolePanel,TypeText,wxT(""),wxDefaultPosition,wxSize(200,20));
- sendButton = new wxButton(consolePanel, SendButton, wxT("Send"));
+ sendButton = new wxButton(consolePanel, SendButton, wxT(_("Send")));
wxFlexGridSizer *typeSizer = new wxFlexGridSizer(1, 2, 0, 0);
typeSizer->AddGrowableCol(0);
typeSizer->AddGrowableRow(0);
- //typeSizer->Add(new wxStaticText(consolePanel, -1, "Command: "), 0, wxALIGN_CENTER | wxALL, 0);
+ //typeSizer->Add(new wxStaticText(consolePanel, -1, _("Command: ")), 0, wxALIGN_CENTER | wxALL, 0);
typeSizer->Add(typeCtrl, 1, wxEXPAND | wxALL, 0);
typeSizer->Add(sendButton, 1, wxEXPAND | wxLEFT, 5);
configfile = wxT("");
if (((wxTheApp->argc % 2) != 1)) {
- Print(wxT("Error while parsing command line arguments, using defaults.\n"), CS_DEBUG);
- Print(wxT("Usage: wx-console [-c configfile] [-w tmp]\n"), CS_DEBUG);
+ Print(wxT(_("Error while parsing command line arguments, using defaults.\n")), CS_DEBUG);
+ Print(wxT(_("Usage: wx-console [-c configfile] [-w tmp]\n")), CS_DEBUG);
}
else {
for (int c = 1; c < wxTheApp->argc; c += 2) {
console_thread::SetWorkingDirectory(wxTheApp->argv[c+1]);
}
if (wxTheApp->argv[c][0] != '-') {
- Print(wxT("Error while parsing command line arguments, using defaults.\n"), CS_DEBUG);
- Print(wxT("Usage: wx-console [-c configfile] [-w tmp]\n"), CS_DEBUG);
+ Print(wxT(_("Error while parsing command line arguments, using defaults.\n")), CS_DEBUG);
+ Print(wxT(_("Usage: wx-console [-c configfile] [-w tmp]\n")), CS_DEBUG);
break;
}
}
wxConfig::Get()->Write(wxT("/ConfigFile"), configfile);
int answer = wxMessageBox(
- wxString(wxT("It seems that it is the first time you run wx-console.\n")) <<
- wxString(wxT("This file (")) << configfile << wxString(wxT(") has been choosen as default configuration file.\n")) <<
- wxString(wxT("Do you want to edit it? (if you click No you will have to select another file)")),
- wxT("First run"),
+ wxString::Format(wxT(_(
+ "It seems that it is the first time you run wx-console.\n"
+ "This file (%s) has been choosen as default configuration file.\n"
+ "Do you want to edit it? (if you click No you will have to select another file)")),
+ configfile.c_str()),
+ wxT(_("First run")),
wxYES_NO | wxICON_QUESTION, this);
if (answer == wxYES) {
wxbConfigFileEditor(this, configfile).ShowModal();
while (err != wxT("")) {
int answer = wxMessageBox(
- wxString(wxT("Unable to read ")) << configfile << wxString(wxT("\n")) <<
- err << wxString(wxT("\nDo you want to choose another one? (Press no to edit this file)")),
- wxT("Unable to read configuration file"),
+ wxString::Format(wxT(_(
+ "Unable to read %s\n"
+ "Error: %s\n"
+ "Do you want to choose another one? (Press no to edit this file)")), configfile.c_str(), err.c_str()),
+ wxT(_("Unable to read configuration file")),
wxYES_NO | wxCANCEL | wxICON_ERROR, this);
if (answer == wxNO) {
wxbConfigFileEditor(this, configfile).ShowModal();
return;
}
else { // (answer == wxYES)
- configfile = wxFileSelector(wxT("Please choose a configuration file to use"));
+ configfile = wxFileSelector(wxT(_("Please choose a configuration file to use")));
if ( !configfile.empty() ) {
err = console_thread::LoadConfig(configfile);
}
if ((err == wxT("")) && (config == wxT(""))) {
answer = wxMessageBox(
- wxT("This configuration file has been successfully read, use it as default?"),
- wxT("Configuration file read successfully"),
+ wxT(_("This configuration file has been successfully read, use it as default?")),
+ wxT(_("Configuration file read successfully")),
wxYES_NO | wxICON_QUESTION, this);
if (answer == wxYES) {
wxConfigBase::Get()->Write(wxT("/ConfigFile"), configfile);
}
// former was csprint
- Print(wxString(wxT("Using this configuration file: ")) << configfile << wxT("\n"), CS_DEBUG);
+ Print(wxString::Format(wxT(_("Using this configuration file: %s\n")), configfile.c_str()), CS_DEBUG);
ct = new console_thread();
ct->Create();
ct->Run();
- SetStatusText(wxT("Connecting to the director..."));
+ SetStatusText(wxT(_("Connecting to the director...")));
}
/* Register a new wxbDataParser */
parsers.RemoveAt(index);
}
else {
- Print(wxT("Failed to unregister a data parser !"), CS_DEBUG);
+ Print(wxT(_("Failed to unregister a data parser !")), CS_DEBUG);
}
}
void wxbMainFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
- Print(wxT("Quitting.\n"), CS_DEBUG);
+ Print(wxT(_("Quitting.\n")), CS_DEBUG);
if (ct != NULL) {
ct->Delete();
ct = NULL;
void wxbMainFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
wxString msg;
- msg.Printf( _T("Welcome to Bacula wx-console.\nWritten by Nicolas Boichat <nicolas@boichat.ch>\n(C) 2004 Kern Sibbald and John Walker\n"));
+ msg.Printf( _T(_("Welcome to Bacula wx-console.\nWritten by Nicolas Boichat <nicolas@boichat.ch>\n(C) 2004 Kern Sibbald and John Walker\n")));
- wxMessageBox(msg, _T("About Bacula wx-console"), wxOK | wxICON_INFORMATION, this);
+ wxMessageBox(msg, _T(_("About Bacula wx-console")), wxOK | wxICON_INFORMATION, this);
}
void wxbMainFrame::OnChangeConfig(wxCommandEvent& event) {
wxString oriconfigfile;
wxConfig::Get()->Read(wxT("/ConfigFile"), &oriconfigfile);
- wxString configfile = wxFileSelector(wxT("Please choose your default configuration file"));
+ wxString configfile = wxFileSelector(wxT(_("Please choose your default configuration file")));
if ( !configfile.empty() ) {
if (oriconfigfile != configfile) {
int answer = wxMessageBox(
- wxT("Use this configuration file as default?"),
- wxT("Configuration file"),
+ wxT(_("Use this configuration file as default?")),
+ wxT(_("Configuration file")),
wxYES_NO | wxICON_QUESTION, this);
if (answer == wxYES) {
wxConfigBase::Get()->Write(wxT("/ConfigFile"), configfile);
if (status == CS_TERMINATED) {
consoleCtrl->AppendText(consoleBuffer);
consoleBuffer = wxT("");
- SetStatusText(wxT("Console thread terminated."));
+ SetStatusText(wxT(_("Console thread terminated.")));
consoleCtrl->PageDown();
ct = NULL;
DisablePanels();
- int answer = wxMessageBox(wxT("Connection to the director lost. Quit program?"), wxT("Connection lost"),
+ int answer = wxMessageBox( wxT(_("Connection to the director lost. Quit program?")),
+ wxT(_("Connection lost")),
wxYES_NO | wxICON_EXCLAMATION, this);
if (answer == wxYES) {
frame = NULL;
Close(true);
}
menuFile->Enable(MenuConnect, true);
- menuFile->SetLabel(MenuConnect, wxT("Connect"));
- menuFile->SetHelpString(MenuConnect, wxT("Connect to the director"));
+ menuFile->SetLabel(MenuConnect, wxT(_("Connect")));
+ menuFile->SetHelpString(MenuConnect, wxT(_("Connect to the director")));
menuFile->Enable(MenuDisconnect, false);
menuFile->Enable(ChangeConfigFile, true);
menuFile->Enable(EditConfigFile, true);
}
if (status == CS_CONNECTED) {
- SetStatusText(wxT("Connected to the director."));
+ SetStatusText(wxT(_("Connected to the director.")));
typeCtrl->ClearCommandList();
wxbDataTokenizer* dt = wxbUtils::WaitForEnd(wxT(".help"), true);
int i, j;
}
EnablePanels();
menuFile->Enable(MenuConnect, true);
- menuFile->SetLabel(MenuConnect, wxT("Reconnect"));
- menuFile->SetHelpString(MenuConnect, wxT("Reconnect to the director"));
+ menuFile->SetLabel(MenuConnect, wxT(_("Reconnect")));
+ menuFile->SetHelpString(MenuConnect, wxT(_("Reconnect to the director")));
menuFile->Enable(MenuDisconnect, true);
menuFile->Enable(ChangeConfigFile, true);
menuFile->Enable(EditConfigFile, true);
consoleCtrl->AppendText(consoleBuffer);
consoleBuffer = wxT("");
consoleCtrl->PageDown();
- SetStatusText(wxT("Disconnected of the director."));
+ SetStatusText(wxT(_("Disconnected of the director.")));
DisablePanels();
return;
}
}
if ((status == CS_PROMPT) && (promptcaught < 1) && (promptparser->isPrompt())) {
- Print(wxT("Unexpected question has been received.\n"), CS_DEBUG);
+ Print(wxT(_("Unexpected question has been received.\n")), CS_DEBUG);
// Print(wxString("(") << promptparser->getIntroString() << "/-/" << promptparser->getQuestionString() << ")\n", CS_DEBUG);
wxString message;
}
int res = ::wxGetSingleChoiceIndex(message,
- wxT("wx-console: unexpected director's question."), n, choices, this);
+ wxT(_("wx-console: unexpected director's question.")), n, choices, this);
if (res == -1) { //Cancel pressed
Send(wxT(".\n"));
}
}
else {
Send(::wxGetTextFromUser(message,
- wxT("wx-console: unexpected director's question."), wxT(""), this) + wxT("\n"));
+ wxT(_("wx-console: unexpected director's question.")),
+ wxT(""), this) + wxT("\n"));
}
}
}
firstSizer->AddGrowableCol(0);
firstSizer->AddGrowableRow(0);
- start = new wxButton(this, RestoreStart, wxT("Enter restore mode"), wxDefaultPosition, wxSize(150, 30));
+ start = new wxButton(this, RestoreStart, wxT(_("Enter restore mode")), wxDefaultPosition, wxSize(150, 30));
firstSizer->Add(start, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 10);
- cancel = new wxButton(this, RestoreCancel, wxT("Cancel restore"), wxDefaultPosition, wxSize(150, 30));
+ cancel = new wxButton(this, RestoreCancel, wxT(_("Cancel restore")), wxDefaultPosition, wxSize(150, 30));
firstSizer->Add(cancel, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_RIGHT, 10);
wxString elist[1];
treeSizer->Add(tree, 1, wxEXPAND, 0);
wxBoxSizer *treeCtrlSizer = new wxBoxSizer(wxHORIZONTAL);
- treeadd = new wxButton(treePanel, TreeAdd, wxT("Add"), wxDefaultPosition, wxSize(60, 25));
+ treeadd = new wxButton(treePanel, TreeAdd, wxT(_("Add")), wxDefaultPosition, wxSize(60, 25));
treeCtrlSizer->Add(treeadd, 0, wxLEFT | wxRIGHT, 3);
- treeremove = new wxButton(treePanel, TreeRemove, wxT("Remove"), wxDefaultPosition, wxSize(60, 25));
+ treeremove = new wxButton(treePanel, TreeRemove, wxT(_("Remove")), wxDefaultPosition, wxSize(60, 25));
treeCtrlSizer->Add(treeremove, 0, wxLEFT | wxRIGHT, 3);
- treerefresh = new wxButton(treePanel, TreeRefresh, wxT("Refresh"), wxDefaultPosition, wxSize(60, 25));
+ treerefresh = new wxButton(treePanel, TreeRefresh, wxT(_("Refresh")), wxDefaultPosition, wxSize(60, 25));
treeCtrlSizer->Add(treerefresh, 0, wxLEFT | wxRIGHT, 3);
treeSizer->Add(treeCtrlSizer, 1, wxALIGN_CENTER_HORIZONTAL, 0);
wxListItem info;
info.SetMask(wxLIST_MASK_TEXT | wxLIST_MASK_FORMAT);
- info.SetText(wxT("M"));
+ info.SetText(wxT(_("M")));
info.SetAlign(wxLIST_FORMAT_CENTER);
list->InsertColumn(0, info);
- info.SetText(wxT("Filename"));
+ info.SetText(wxT(_("Filename")));
info.SetAlign(wxLIST_FORMAT_LEFT);
list->InsertColumn(1, info);
- info.SetText(wxT("Size"));
+ info.SetText(wxT(_("Size")));
info.SetAlign(wxLIST_FORMAT_RIGHT);
list->InsertColumn(2, info);
- info.SetText(wxT("Date"));
+ info.SetText(wxT(_("Date")));
info.SetAlign(wxLIST_FORMAT_LEFT);
list->InsertColumn(3, info);
- info.SetText(wxT("Perm."));
+ info.SetText(wxT(_("Perm.")));
info.SetAlign(wxLIST_FORMAT_LEFT);
list->InsertColumn(4, info);
- info.SetText(wxT("User"));
+ info.SetText(wxT(_("User")));
info.SetAlign(wxLIST_FORMAT_RIGHT);
list->InsertColumn(5, info);
- info.SetText(wxT("Group"));
+ info.SetText(wxT(_("Group")));
info.SetAlign(wxLIST_FORMAT_RIGHT);
list->InsertColumn(6, info);
listSizer->Add(list, 1, wxEXPAND, 0);
wxBoxSizer *listCtrlSizer = new wxBoxSizer(wxHORIZONTAL);
- listadd = new wxButton(listPanel, ListAdd, wxT("Add"), wxDefaultPosition, wxSize(60, 25));
+ listadd = new wxButton(listPanel, ListAdd, wxT(_("Add")), wxDefaultPosition, wxSize(60, 25));
listCtrlSizer->Add(listadd, 0, wxLEFT | wxRIGHT, 5);
- listremove = new wxButton(listPanel, ListRemove, wxT("Remove"), wxDefaultPosition, wxSize(60, 25));
+ listremove = new wxButton(listPanel, ListRemove, wxT(_("Remove")), wxDefaultPosition, wxSize(60, 25));
listCtrlSizer->Add(listremove, 0, wxLEFT | wxRIGHT, 5);
- listrefresh = new wxButton(listPanel, ListRefresh, wxT("Refresh"), wxDefaultPosition, wxSize(60, 25));
+ listrefresh = new wxButton(listPanel, ListRefresh, wxT(_("Refresh")), wxDefaultPosition, wxSize(60, 25));
listCtrlSizer->Add(listrefresh, 0, wxLEFT | wxRIGHT, 5);
listSizer->Add(listCtrlSizer, 1, wxALIGN_CENTER_HORIZONTAL, 0);
treelistPanel->Show(false);
wxbConfig* config = new wxbConfig();
- config->Add(new wxbConfigParam(wxT("Job Name"), ConfigJobName, choice, 0, elist));
- config->Add(new wxbConfigParam(wxT("Client"), ConfigClient, choice, 0, elist));
- config->Add(new wxbConfigParam(wxT("Fileset"), ConfigFileset, choice, 0, elist));
- config->Add(new wxbConfigParam(wxT("Pool"), ConfigPool, choice, 0, elist));
- config->Add(new wxbConfigParam(wxT("Storage"), ConfigStorage, choice, 0, elist));
- config->Add(new wxbConfigParam(wxT("Before"), ConfigWhen, choice, 0, elist));
+ config->Add(new wxbConfigParam(wxT(_("Job Name")), ConfigJobName, choice, 0, elist));
+ config->Add(new wxbConfigParam(wxT(_("Client")), ConfigClient, choice, 0, elist));
+ config->Add(new wxbConfigParam(wxT(_("Fileset")), ConfigFileset, choice, 0, elist));
+ config->Add(new wxbConfigParam(wxT(_("Pool")), ConfigPool, choice, 0, elist));
+ config->Add(new wxbConfigParam(wxT(_("Storage")), ConfigStorage, choice, 0, elist));
+ config->Add(new wxbConfigParam(wxT(_("Before")), ConfigWhen, choice, 0, elist));
- configPanel = new wxbConfigPanel(this, config, wxT("Please configure parameters concerning files to restore :"), RestoreStart, RestoreCancel, -1);
+ configPanel = new wxbConfigPanel(this, config, wxT(_("Please configure parameters concerning files to restore :")), RestoreStart, RestoreCancel, -1);
configPanel->Show(true);
configPanel->Enable(false);
config = new wxbConfig();
- config->Add(new wxbConfigParam(wxT("Job Name"), -1, text, wxT("")));
- config->Add(new wxbConfigParam(wxT("Bootstrap"), -1, text, wxT("")));
- config->Add(new wxbConfigParam(wxT("Where"), ConfigWhere, modifiableText, wxT("")));
- wxString erlist[] = {wxT("always"), wxT("if newer"), wxT("if older"), wxT("never")};
- config->Add(new wxbConfigParam(wxT("Replace"), ConfigReplace, choice, 4, erlist));
- config->Add(new wxbConfigParam(wxT("Fileset"), ConfigFileset, choice, 0, erlist));
- config->Add(new wxbConfigParam(wxT("Client"), ConfigClient, choice, 0, erlist));
- config->Add(new wxbConfigParam(wxT("Storage"), ConfigStorage, choice, 0, erlist));
- config->Add(new wxbConfigParam(wxT("When"), ConfigWhen, modifiableText, wxT("")));
- config->Add(new wxbConfigParam(wxT("Priority"), ConfigPriority, modifiableText, wxT("")));
-
- restorePanel = new wxbConfigPanel(this, config, wxT("Please configure parameters concerning files restoration :"), ConfigOk, ConfigCancel, ConfigApply);
+ config->Add(new wxbConfigParam(wxT(_("Job Name")), -1, text, wxT("")));
+ config->Add(new wxbConfigParam(wxT(_("Bootstrap")), -1, text, wxT("")));
+ config->Add(new wxbConfigParam(wxT(_("Where")), ConfigWhere, modifiableText, wxT("")));
+ wxString erlist[] = {wxT(_("always")), wxT(_("if newer")), wxT(_("if older")), wxT(_("never"))};
+ config->Add(new wxbConfigParam(wxT(_("Replace")), ConfigReplace, choice, 4, erlist));
+ config->Add(new wxbConfigParam(wxT(_("Fileset")), ConfigFileset, choice, 0, erlist));
+ config->Add(new wxbConfigParam(wxT(_("Client")), ConfigClient, choice, 0, erlist));
+ config->Add(new wxbConfigParam(wxT(_("Storage")), ConfigStorage, choice, 0, erlist));
+ config->Add(new wxbConfigParam(wxT(_("When")), ConfigWhen, modifiableText, wxT("")));
+ config->Add(new wxbConfigParam(wxT(_("Priority")), ConfigPriority, modifiableText, wxT("")));
+
+ restorePanel = new wxbConfigPanel(this, config, wxT(_("Please configure parameters concerning files restoration :")), ConfigOk, ConfigCancel, ConfigApply);
restorePanel->Show(false);
----------------------------------------------------------------------------*/
wxString wxbRestorePanel::GetTitle() {
- return wxT("Restore");
+ return wxT(_("Restore"));
}
void wxbRestorePanel::EnablePanel(bool enable) {
void wxbRestorePanel::CmdStart() {
unsigned int i;
if (status == activable) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Getting parameters list."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Getting parameters list.")));
wxbDataTokenizer* dt = wxbUtils::WaitForEnd(wxT(".clients\n"), true, false);
wxString str;
- configPanel->ClearRowChoices(wxT("Client"));
- restorePanel->ClearRowChoices(wxT("Client"));
+ configPanel->ClearRowChoices(wxT(_("Client")));
+ restorePanel->ClearRowChoices(wxT(_("Client")));
if (dt->GetCount() == 0) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Error : no clients returned by the director."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Error : no clients returned by the director.")));
return;
}
for (i = 0; i < dt->GetCount(); i++) {
str = (*dt)[i];
str.RemoveLast();
- configPanel->AddRowChoice(wxT("Client"), str);
- restorePanel->AddRowChoice(wxT("Client"), str);
+ configPanel->AddRowChoice(wxT(_("Client")), str);
+ restorePanel->AddRowChoice(wxT(_("Client")), str);
}
delete dt;
dt = wxbUtils::WaitForEnd(wxT(".filesets\n"), true, false);
- configPanel->ClearRowChoices(wxT("Fileset"));
- restorePanel->ClearRowChoices(wxT("Fileset"));
+ configPanel->ClearRowChoices(wxT(_("Fileset")));
+ restorePanel->ClearRowChoices(wxT(_("Fileset")));
if (dt->GetCount() == 0) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Error : no filesets returned by the director."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Error : no filesets returned by the director.")));
return;
}
for (i = 0; i < dt->GetCount(); i++) {
str = (*dt)[i];
str.RemoveLast();
- configPanel->AddRowChoice(wxT("Fileset"), str);
- restorePanel->AddRowChoice(wxT("Fileset"), str);
+ configPanel->AddRowChoice(wxT(_("Fileset")), str);
+ restorePanel->AddRowChoice(wxT(_("Fileset")), str);
}
delete dt;
dt = wxbUtils::WaitForEnd(wxT(".storage\n"), true, false);
- configPanel->ClearRowChoices(wxT("Storage"));
- restorePanel->ClearRowChoices(wxT("Storage"));
+ configPanel->ClearRowChoices(wxT(_("Storage")));
+ restorePanel->ClearRowChoices(wxT(_("Storage")));
if (dt->GetCount() == 0) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Error : no storage returned by the director."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Error : no storage returned by the director.")));
return;
}
for (i = 0; i < dt->GetCount(); i++) {
str = (*dt)[i];
str.RemoveLast();
- configPanel->AddRowChoice(wxT("Storage"), str);
- restorePanel->AddRowChoice(wxT("Storage"), str);
+ configPanel->AddRowChoice(wxT(_("Storage")), str);
+ restorePanel->AddRowChoice(wxT(_("Storage")), str);
}
delete dt;
dt = wxbUtils::WaitForEnd(wxT(".jobs\n"), true, false);
- configPanel->ClearRowChoices(wxT("Job Name"));
+ configPanel->ClearRowChoices(wxT(_("Job Name")));
if (dt->GetCount() == 0) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Error : no jobs returned by the director."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Error : no jobs returned by the director.")));
return;
}
for (i = 0; i < dt->GetCount(); i++) {
str = (*dt)[i];
str.RemoveLast();
- configPanel->AddRowChoice(wxT("Job Name"), str);
+ configPanel->AddRowChoice(wxT(_("Job Name")), str);
}
- configPanel->SetRowString(wxT("Job Name"), wxT("RestoreFiles"));
+ configPanel->SetRowString(wxT(_("Job Name")), wxT(_("RestoreFiles")));
delete dt;
dt = wxbUtils::WaitForEnd(wxT(".pools\n"), true, false);
- configPanel->ClearRowChoices(wxT("Pool"));
+ configPanel->ClearRowChoices(wxT(_("Pool")));
if (dt->GetCount() == 0) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Error : no jobs returned by the director."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Error : no jobs returned by the director.")));
return;
}
for (i = 0; i < dt->GetCount(); i++) {
str = (*dt)[i];
str.RemoveLast();
- configPanel->AddRowChoice(wxT("Pool"), str);
+ configPanel->AddRowChoice(wxT(_("Pool")), str);
}
delete dt;
UpdateFirstConfig();
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Please configure your restore parameters."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Please configure your restore parameters.")));
}
else if (status == entered) {
/* if (clientChoice->GetStringSelection().Length() < 1) {
- wxbMainFrame::GetInstance()->SetStatusText("Please select a client.");
+ wxbMainFrame::GetInstance()->SetStatusText(_("Please select a client."));
return;
}
if (jobChoice->GetStringSelection().Length() < 1) {
- wxbMainFrame::GetInstance()->SetStatusText("Please select a restore date.");
+ wxbMainFrame::GetInstance()->SetStatusText(_("Please select a restore date."));
return;
}*/
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Building restore tree..."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Building restore tree...")));
SetStatus(choosing);
str = (*dt)[dt->GetCount()-2];
str.RemoveLast();
}
- wxbMainFrame::GetInstance()->SetStatusText(wxString(wxT("Error while starting restore: ")) << str);
+ wxbMainFrame::GetInstance()->SetStatusText(wxString(wxT(_("Error while starting restore: "))) << str);
delete dt;
delete tableparser;
SetStatus(finished);
}
wxbUtils::WaitForEnd(wxT("unmark *\n"));
- wxTreeItemId root = tree->AddRoot(configPanel->GetRowString(wxT("Client")), -1, -1, new wxbTreeItemData(wxT("/"), configPanel->GetRowString(wxT("Client")), 0));
+ wxTreeItemId root = tree->AddRoot(configPanel->GetRowString(wxT(_("Client"))), -1, -1, new wxbTreeItemData(wxT("/"), configPanel->GetRowString(wxT(_("Client"))), 0));
currentTreeItem = root;
tree->Refresh();
tree->SelectItem(root);
CmdList(root);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Right click on a file or on a directory, or double-click on its mark to add it to the restore list."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Right click on a file or on a directory, or double-click on its mark to add it to the restore list.")));
tree->Expand(root);
}
else if (status == choosing) {
SetStatus(configuring);
for (i = 0; i < dt->GetCount(); i++) {
- if ((j = (*dt)[i].Find(wxT(" files selected to be restored."))) > -1) {
+ if ((j = (*dt)[i].Find(wxT(_(" files selected to be restored.")))) > -1) {
(*dt)[i].Mid(0, j).ToLong(&totfilemessages);
break;
}
- if ((j = (*dt)[i].Find(wxT(" file selected to be restored."))) > -1) {
+ if ((j = (*dt)[i].Find(wxT(_(" file selected to be restored.")))) > -1) {
(*dt)[i].Mid(0, j).ToLong(&totfilemessages);
break;
}
}
wxbMainFrame::GetInstance()->SetStatusText(
- wxString(wxT("Please configure your restore (") )
- << totfilemessages << wxT(" files selected to be restored)..."));
+ wxString::Format(wxT(_("Please configure your restore (%s files selected to be restored)...")), totfilemessages));
UpdateSecondConfig(dt);
restorePanel->EnableApply(false);
if (totfilemessages == 0) {
- wxbMainFrame::GetInstance()->Print(wxT("Restore failed : no file selected.\n"), CS_DEBUG);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore failed : no file selected."));
+ wxbMainFrame::GetInstance()->Print(wxT(_("Restore failed : no file selected.\n")), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore failed : no file selected.")));
SetStatus(finished);
return;
}
jobid = wxT("");
EnableConfig(false);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restoring, please wait..."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restoring, please wait...")));
wxbDataTokenizer* dt;
int j;
for (i = 0; i < dt->GetCount(); i++) {
- if ((j = (*dt)[i].Find(wxT("Job started. JobId="))) > -1) {
+ if ((j = (*dt)[i].Find(wxT(_("Job started. JobId=")))) > -1) {
jobid = (*dt)[i].Mid(j+19);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore started, jobid=") + jobid);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore started, jobid=")) + jobid);
break;
}
- if ((j = (*dt)[i].Find(wxT("Job failed."))) > -1) {
- wxbMainFrame::GetInstance()->Print(wxT("Restore failed, please look at messages.\n"), CS_DEBUG);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore failed, please look at messages in console."));
+ if ((j = (*dt)[i].Find(wxT(_("Job failed.")))) > -1) {
+ wxbMainFrame::GetInstance()->Print(wxT(_("Restore failed, please look at messages.\n")), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore failed, please look at messages in console.")));
return;
}
}
if (jobid == wxT("")) {
- wxbMainFrame::GetInstance()->Print(wxT("Failed to retrieve jobid.\n"), CS_DEBUG);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Failed to retrieve jobid.\n"));
+ wxbMainFrame::GetInstance()->Print(wxT(_("Failed to retrieve jobid.\n")), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Failed to retrieve jobid.\n")));
return;
}
delete dt;
wxDateTime scheduledtime;
- wxStringTokenizer stkz(restorePanel->GetRowString(wxT("When")), wxT(" "), wxTOKEN_STRTOK);
+ wxStringTokenizer stkz(restorePanel->GetRowString(wxT(_("When"))), wxT(" "), wxTOKEN_STRTOK);
if ((scheduledtime.ParseDate(stkz.GetNextToken()) == NULL) || // Date
(scheduledtime.ParseTime(stkz.GetNextToken()) == NULL)) { // Time
}
if (scheduledtime.Subtract(currenttime).IsLongerThan(wxTimeSpan::Seconds(150))) {
- wxbMainFrame::GetInstance()->Print(wxT("Restore is scheduled in more than two minutes, wx-console will not wait for its completion.\n"), CS_DEBUG);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore is scheduled in more than two minutes, wx-console will not wait for its completion."));
+ wxbMainFrame::GetInstance()->Print(wxT(_("Restore is scheduled in more than two minutes, wx-console will not wait for its completion.\n")), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore is scheduled in more than two minutes, wx-console will not wait for its completion.")));
SetStatus(finished);
return;
}
status = (*tableparser)[0][7].GetChar(0);
switch (status) {
case JS_Created:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job created, but not yet running."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job created, but not yet running.")));
waitforever = false;
break;
case JS_Running:
wxbMainFrame::GetInstance()->SetStatusText(
- wxString(wxT("Restore job running, please wait (")) << filemessages <<
- wxT(" of ") << totfilemessages << wxT(" files restored)..."));
+ wxString::Format(wxT(_("Restore job running, please wait (%d of %d files restored)...")), filemessages, totfilemessages));
waitforever = true;
break;
case JS_Terminated:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job terminated successfully."));
- wxbMainFrame::GetInstance()->Print(wxT("Restore job terminated successfully.\n"), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job terminated successfully.")));
+ wxbMainFrame::GetInstance()->Print(wxT(_("Restore job terminated successfully.\n")), CS_DEBUG);
waitforever = false;
ended = true;
break;
case JS_ErrorTerminated:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job terminated in error, see messages in console."));
- wxbMainFrame::GetInstance()->Print(wxT("Restore job terminated in error, see messages.\n"), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job terminated in error, see messages in console.")));
+ wxbMainFrame::GetInstance()->Print(wxT(_("Restore job terminated in error, see messages.\n")), CS_DEBUG);
waitforever = false;
ended = true;
break;
case JS_Error:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job reported a non-fatal error."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job reported a non-fatal error.")));
waitforever = false;
break;
case JS_FatalError:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job reported a fatal error."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job reported a fatal error.")));
waitforever = false;
ended = true;
break;
case JS_Canceled:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job cancelled by user."));
- wxbMainFrame::GetInstance()->Print(wxT("Restore job cancelled by user.\n"), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job cancelled by user.")));
+ wxbMainFrame::GetInstance()->Print(wxT(_("Restore job cancelled by user.\n")), CS_DEBUG);
waitforever = false;
ended = true;
break;
case JS_WaitFD:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job is waiting on File daemon."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job is waiting on File daemon.")));
waitforever = false;
break;
case JS_WaitMedia:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job is waiting for new media."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job is waiting for new media.")));
waitforever = false;
break;
case JS_WaitStoreRes:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job is waiting for storage resource."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job is waiting for storage resource.")));
waitforever = false;
break;
case JS_WaitJobRes:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job is waiting for job resource."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job is waiting for job resource.")));
waitforever = false;
break;
case JS_WaitClientRes:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job is waiting for Client resource."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job is waiting for Client resource.")));
waitforever = false;
break;
case JS_WaitMaxJobs:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job is waiting for maximum jobs."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job is waiting for maximum jobs.")));
waitforever = false;
break;
case JS_WaitStartTime:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job is waiting for start time."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job is waiting for start time.")));
waitforever = false;
break;
case JS_WaitPriority:
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore job is waiting for higher priority jobs to finish."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore job is waiting for higher priority jobs to finish.")));
waitforever = false;
break;
}
}
if ((!waitforever) && (sw.Time() > 60000)) {
- wxbMainFrame::GetInstance()->Print(wxT("The restore job has not been started within one minute, wx-console will not wait for its completion anymore.\n"), CS_DEBUG);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("The restore job has not been started within one minute, wx-console will not wait for its completion anymore."));
+ wxbMainFrame::GetInstance()->Print(wxT(_("The restore job has not been started within one minute, wx-console will not wait for its completion anymore.\n")), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("The restore job has not been started within one minute, wx-console will not wait for its completion anymore.")));
break;
}
}
gauge->SetValue(totfilemessages);
if (status == JS_Terminated) {
- wxbMainFrame::GetInstance()->Print(wxT("Restore done successfully.\n"), CS_DEBUG);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore done successfully."));
+ wxbMainFrame::GetInstance()->Print(wxT(_("Restore done successfully.\n")), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore done successfully.")));
}
SetStatus(finished);
}
void wxbRestorePanel::CmdConfigApply() {
if (cfgUpdated == 0) return;
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Applying restore configuration changes..."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Applying restore configuration changes...")));
EnableConfig(false);
wxbUtils::WaitForPrompt(wxT("mod\n")); /* TODO: check results */
wxbUtils::WaitForPrompt(wxT("9\n"));
dt = new wxbDataTokenizer(true);
- wxbUtils::WaitForPrompt(restorePanel->GetRowString(wxT("Where")) + wxT("\n"));
+ wxbUtils::WaitForPrompt(restorePanel->GetRowString(wxT(_("Where"))) + wxT("\n"));
def = wxT("/tmp");
cfgUpdated = cfgUpdated & (~(1 << ConfigWhere));
}
wxbUtils::WaitForPrompt(wxT("mod\n")); /* TODO: check results */
wxbUtils::WaitForPrompt(wxT("10\n"));
dt = new wxbDataTokenizer(true);
- wxbUtils::WaitForPrompt(wxString() << (restorePanel->GetRowSelection(wxT("Replace"))+1) << wxT("\n"));
+ wxbUtils::WaitForPrompt(wxString() << (restorePanel->GetRowSelection(wxT(_("Replace")))+1) << wxT("\n"));
def = wxT("1");
cfgUpdated = cfgUpdated & (~(1 << ConfigReplace));
}
wxbUtils::WaitForPrompt(wxT("mod\n")); /* TODO: check results */
wxbUtils::WaitForPrompt(wxT("6\n"));
dt = new wxbDataTokenizer(true);
- wxbUtils::WaitForPrompt(restorePanel->GetRowString(wxT("When")) + wxT("\n"));
+ wxbUtils::WaitForPrompt(restorePanel->GetRowString(wxT(("When"))) + wxT("\n"));
def = wxT("");
cfgUpdated = cfgUpdated & (~(1 << ConfigWhen));
}
wxbUtils::WaitForPrompt(wxT("mod\n")); /* TODO: check results */
wxbUtils::WaitForPrompt(wxT("7\n"));
dt = new wxbDataTokenizer(true);
- wxbUtils::WaitForPrompt(restorePanel->GetRowString(wxT("Priority")) + wxT("\n"));
+ wxbUtils::WaitForPrompt(restorePanel->GetRowString(wxT(_("Priority"))) + wxT("\n"));
def = wxT("10");
cfgUpdated = cfgUpdated & (~(1 << ConfigPriority));
}
else if ((cfgUpdated >> ConfigClient) & 1) {
wxbUtils::WaitForPrompt(wxT("mod\n")); /* TODO: check results */
wxbPromptParser *pp = wxbUtils::WaitForPrompt(wxT("5\n"), true);
- int client = pp->getChoices()->Index(restorePanel->GetRowString(wxT("Client")));
+ int client = pp->getChoices()->Index(restorePanel->GetRowString(wxT(_("Client"))));
if (client == wxNOT_FOUND) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Failed to find the selected client."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Failed to find the selected client.")));
failed = true;
client = 1;
}
else if ((cfgUpdated >> ConfigFileset) & 1) {
wxbUtils::WaitForPrompt(wxT("mod\n")); /* TODO: check results */
wxbPromptParser *pp = wxbUtils::WaitForPrompt(wxT("4\n"), true);
- int fileset = pp->getChoices()->Index(restorePanel->GetRowString(wxT("Fileset")));
+ int fileset = pp->getChoices()->Index(restorePanel->GetRowString(wxT(_("Fileset"))));
if (fileset == wxNOT_FOUND) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Failed to find the selected fileset."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Failed to find the selected fileset.")));
failed = true;
fileset = 1;
}
else if ((cfgUpdated >> ConfigStorage) & 1) {
wxbUtils::WaitForPrompt(wxT("mod\n")); /* TODO: check results */
wxbPromptParser *pp = wxbUtils::WaitForPrompt(wxT("2\n"), true);
- int fileset = pp->getChoices()->Index(restorePanel->GetRowString(wxT("Storage")));
+ int fileset = pp->getChoices()->Index(restorePanel->GetRowString(wxT(_("Storage"))));
if (fileset == wxNOT_FOUND) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Failed to find the selected storage."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Failed to find the selected storage.")));
failed = true;
fileset = 1;
}
unsigned int i;
for (i = 0; i < dt->GetCount(); i++) {
- if ((*dt)[i].Find(wxT("Run Restore job")) == 0) {
+ if ((*dt)[i].Find(wxT(_("Run Restore job"))) == 0) {
break;
}
}
EnableConfig(true);
if (!failed) {
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore configuration changes were applied."));
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore configuration changes were applied.")));
}
delete dt;
/* Cancel restore */
void wxbRestorePanel::CmdConfigCancel() {
wxbUtils::WaitForEnd(wxT("no\n"));
- wxbMainFrame::GetInstance()->Print(wxT("Restore cancelled.\n"), CS_DEBUG);
- wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore cancelled."));
+ wxbMainFrame::GetInstance()->Print(wxT(_("Restore cancelled.\n")), CS_DEBUG);
+ wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore cancelled.")));
SetStatus(finished);
}
/* List jobs for a specified client */
void wxbRestorePanel::CmdListJobs() {
if (status == entered) {
- configPanel->ClearRowChoices(wxT("Before"));
+ configPanel->ClearRowChoices(wxT(_("Before")));
/*wxbUtils::WaitForPrompt("query\n");
wxbUtils::WaitForPrompt("6\n");*/
wxbTableParser* tableparser = new wxbTableParser(false);
wxbDataTokenizer* dt = wxbUtils::WaitForEnd(
- wxString(wxT(".backups client=")) + configPanel->GetRowString(wxT("Client")) + wxT("\n"), true);
+ wxString(wxT(".backups client=")) + configPanel->GetRowString(wxT(_("Client"))) + wxT("\n"), true);
while (!tableparser->hasFinished()) {
wxTheApp->Yield(true);
if (!tableparser->GetCount() == 0) {
for (unsigned int i = 0; i < dt->Count(); i++) {
- if ((*dt)[i].Find(wxT("No results to list.")) == 0) {
- configPanel->AddRowChoice(wxT("Before"), wxT("No backup found for this client."));
- configPanel->SetRowSelection(wxT("Before"), 0);
+ if ((*dt)[i].Find(wxT(_("No results to list."))) == 0) {
+ configPanel->AddRowChoice(wxT(_("Before")),
+ wxT(_("No backup found for this client.")));
+ configPanel->SetRowSelection(wxT(_("Before")), 0);
configPanel->EnableApply(true); // Enabling the not existing apply button disables the ok button.
delete tableparser;
delete dt;
return;
}
- else if (((*dt)[i].Find(wxT("ERROR")) > -1) || ((*dt)[i].Find(wxT("Query failed")) > -1)) {
- configPanel->AddRowChoice(wxT("Before"), wxT("Cannot get previous backups list, see console."));
- configPanel->SetRowSelection(wxT("Before"), 0);
+ else if (((*dt)[i].Find(wxT(_("ERROR"))) > -1) ||
+ ((*dt)[i].Find(wxT(_("Query failed"))) > -1)) {
+ configPanel->AddRowChoice(wxT(_("Before")),
+ wxT(_("Cannot get previous backups list, see console.")));
+ configPanel->SetRowSelection(wxT(_("Before")), 0);
configPanel->EnableApply(true); // Enabling the not existing apply button disables the ok button.
delete tableparser;
delete dt;
const wxChar* chr;
if ( ( (chr = datetime.ParseDate(str.GetData()) ) != NULL ) && ( datetime.ParseTime(++chr) != NULL ) ) {
datetime += wxTimeSpan::Seconds(1);
- configPanel->AddRowChoice(wxT("Before"), datetime.Format(wxT("%Y-%m-%d %H:%M:%S")));
+ configPanel->AddRowChoice(wxT(_("Before")),
+ datetime.Format(wxT("%Y-%m-%d %H:%M:%S")));
}
}
delete tableparser;
- configPanel->SetRowSelection(wxT("Before"), 0);
+ configPanel->SetRowSelection(wxT(_("Before")), 0);
configPanel->EnableApply(false); // Disabling the not existing apply button enables the ok button.
}
}
/* Update first config, adapting settings to the job name selected */
void wxbRestorePanel::UpdateFirstConfig() {
configPanel->Enable(false);
- wxbDataTokenizer* dt = wxbUtils::WaitForEnd(wxString(wxT(".defaults job=")) + configPanel->GetRowString(wxT("Job Name")) + wxT("\n"), true, false);
+ wxbDataTokenizer* dt = wxbUtils::WaitForEnd(wxString(wxT(".defaults job=")) + configPanel->GetRowString(wxT(_("Job Name"))) + wxT("\n"), true, false);
/* job=RestoreFiles
* pool=Default
* messages=Standard
if ((j = str.Find('=')) > -1) {
name = str.Mid(0, j);
if (name == wxT("pool")) {
- configPanel->SetRowString(wxT("Pool"), str.Mid(j+1));
+ configPanel->SetRowString(wxT(_("Pool")), str.Mid(j+1));
}
else if (name == wxT("client")) {
str = str.Mid(j+1);
- if ((str != configPanel->GetRowString(wxT("Client"))) || (configPanel->GetRowString(wxT("Before")) == wxT(""))) {
- configPanel->SetRowString(wxT("Client"), str);
+ if ((str != configPanel->GetRowString(wxT(_("Client")))) ||
+ (configPanel->GetRowString(wxT(_("Before"))) == wxT(""))) {
+ configPanel->SetRowString(wxT(_("Client")), str);
dolistjobs = true;
}
}
else if (name == wxT("storage")) {
- configPanel->SetRowString(wxT("Storage"), str.Mid(j+1));
+ configPanel->SetRowString(wxT(_("Storage")), str.Mid(j+1));
}
else if (name == wxT("fileset")) {
- configPanel->SetRowString(wxT("Fileset"), str.Mid(j+1));
+ configPanel->SetRowString(wxT(_("Fileset")), str.Mid(j+1));
}
}
}
bool wxbRestorePanel::UpdateSecondConfig(wxbDataTokenizer* dt) {
unsigned int i;
for (i = 0; i < dt->GetCount(); i++) {
- if ((*dt)[i].Find(wxT("Run Restore job")) == 0)
+ if ((*dt)[i].Find(wxT(_("Run Restore job"))) == 0)
break;
}
int k;
- if ((k = (*dt)[++i].Find(wxT("JobName:"))) != 0) return false;
- restorePanel->SetRowString(wxT("Job Name"), (*dt)[i].Mid(10).Trim(false).RemoveLast());
- if ((k = (*dt)[++i].Find(wxT("Bootstrap:"))) != 0) return false;
- restorePanel->SetRowString(wxT("Bootstrap"), (*dt)[i].Mid(10).Trim(false).RemoveLast());
- if ((k = (*dt)[++i].Find(wxT("Where:"))) != 0) return false;
- restorePanel->SetRowString(wxT("Where"), (*dt)[i].Mid(10).Trim(false).RemoveLast());
+ if ((k = (*dt)[++i].Find(wxT(_("JobName:")))) != 0) return false;
+ restorePanel->SetRowString(wxT(_("Job Name")), (*dt)[i].Mid(10).Trim(false).RemoveLast());
+ if ((k = (*dt)[++i].Find(wxT(_("Bootstrap:")))) != 0) return false;
+ restorePanel->SetRowString(wxT(_("Bootstrap")), (*dt)[i].Mid(10).Trim(false).RemoveLast());
+ if ((k = (*dt)[++i].Find(wxT(_("Where:")))) != 0) return false;
+ restorePanel->SetRowString(wxT(_("Where")), (*dt)[i].Mid(10).Trim(false).RemoveLast());
- if ((k = (*dt)[++i].Find(wxT("Replace:"))) != 0) return false;
+ if ((k = (*dt)[++i].Find(wxT(_("Replace:")))) != 0) return false;
wxString str = (*dt)[i].Mid(10).Trim(false).RemoveLast();
- if (str == wxT("always")) restorePanel->SetRowSelection(wxT("Replace"), 0);
- else if (str == wxT("ifnewer")) restorePanel->SetRowSelection(wxT("Replace"), 1);
- else if (str == wxT("ifolder")) restorePanel->SetRowSelection(wxT("Replace"), 2);
- else if (str == wxT("never")) restorePanel->SetRowSelection(wxT("Replace"), 3);
- else restorePanel->SetRowSelection(wxT("Replace"), 0);
-
- if ((k = (*dt)[++i].Find(wxT("FileSet:"))) != 0) return false;
- restorePanel->SetRowString(wxT("Fileset"), (*dt)[i].Mid(10).Trim(false).RemoveLast());
- if ((k = (*dt)[++i].Find(wxT("Client:"))) != 0) return false;
- restorePanel->SetRowString(wxT("Client"), (*dt)[i].Mid(10).Trim(false).RemoveLast());
- if ((k = (*dt)[++i].Find(wxT("Storage:"))) != 0) return false;
- restorePanel->SetRowString(wxT("Storage"), (*dt)[i].Mid(10).Trim(false).RemoveLast());
- if ((k = (*dt)[++i].Find(wxT("When:"))) != 0) return false;
- restorePanel->SetRowString(wxT("When"), (*dt)[i].Mid(10).Trim(false).RemoveLast());
- if ((k = (*dt)[++i].Find(wxT("Priority:"))) != 0) return false;
- restorePanel->SetRowString(wxT("Priority"), (*dt)[i].Mid(10).Trim(false).RemoveLast());
+ if (str == wxT(_("always"))) restorePanel->SetRowSelection(wxT(_("Replace")), 0);
+ else if (str == wxT(_("ifnewer"))) restorePanel->SetRowSelection(wxT(_("Replace")), 1);
+ else if (str == wxT(_("ifolder"))) restorePanel->SetRowSelection(wxT(_("Replace")), 2);
+ else if (str == wxT(_("never"))) restorePanel->SetRowSelection(wxT(_("Replace")), 3);
+ else restorePanel->SetRowSelection(wxT(_("Replace")), 0);
+
+ if ((k = (*dt)[++i].Find(wxT(_("FileSet:")))) != 0) return false;
+ restorePanel->SetRowString(wxT(_("Fileset")), (*dt)[i].Mid(10).Trim(false).RemoveLast());
+ if ((k = (*dt)[++i].Find(wxT(_("Client:")))) != 0) return false;
+ restorePanel->SetRowString(wxT(_("Client")), (*dt)[i].Mid(10).Trim(false).RemoveLast());
+ if ((k = (*dt)[++i].Find(wxT(_("Storage:")))) != 0) return false;
+ restorePanel->SetRowString(wxT(_("Storage")), (*dt)[i].Mid(10).Trim(false).RemoveLast());
+ if ((k = (*dt)[++i].Find(wxT(_("When:")))) != 0) return false;
+ restorePanel->SetRowString(wxT(_("When")), (*dt)[i].Mid(10).Trim(false).RemoveLast());
+ if ((k = (*dt)[++i].Find(wxT(_("Priority:")))) != 0) return false;
+ restorePanel->SetRowString(wxT(_("Priority")), (*dt)[i].Mid(10).Trim(false).RemoveLast());
cfgUpdated = 0;
restorePanel->Layout();
configPanel->Layout();
centerSizer->Layout();
this->Layout();
- start->SetLabel(wxT("Enter restore mode"));
+ start->SetLabel(wxT(_("Enter restore mode")));
start->Enable(false);
configPanel->Enable(false);
tree->Enable(false);
this->Layout();
tree->DeleteAllItems();
list->DeleteAllItems();
- configPanel->ClearRowChoices(wxT("Client"));
- configPanel->ClearRowChoices(wxT("Before"));
+ configPanel->ClearRowChoices(wxT(_("Client")));
+ configPanel->ClearRowChoices(wxT(_("Before")));
wxbMainFrame::GetInstance()->EnablePanels();
newstatus = activable;
case activable:
cancelled = 0;
- start->SetLabel(wxT("Enter restore mode"));
+ start->SetLabel(wxT(_("Enter restore mode")));
start->Enable(true);
configPanel->Enable(false);
tree->Enable(false);
wxbMainFrame::GetInstance()->DisablePanels(this);
gauge->SetValue(0);
start->Enable(false);
- //start->SetLabel("Choose files to restore");
+ //start->SetLabel(_("Choose files to restore"));
configPanel->Enable(true);
tree->Enable(false);
list->Enable(false);
break;
case choosing:
start->Enable(true);
- start->SetLabel(wxT("Restore"));
+ start->SetLabel(wxT(_("Restore")));
centerSizer->Remove(configPanel);
configPanel->Show(false);
centerSizer->Add(treelistPanel, 1, wxEXPAND);
restorePanel->EnableApply(false);
break;
case restoring:
- start->SetLabel(wxT("Restoring..."));
+ start->SetLabel(wxT(_("Restoring...")));
gauge->Enable(true);
gauge->SetValue(0);
start->Enable(false);