From fce6a648a27ee86f6941a5085ec7909f6d43e725 Mon Sep 17 00:00:00 2001 From: Nicolas Boichat Date: Wed, 10 Aug 2005 16:35:38 +0000 Subject: [PATCH] Mark translatable strings in all source files. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@2302 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/autoconf/configure.in | 4 +- bacula/configure | 4 +- bacula/nb-1.37 | 2 + bacula/po/POTFILES.in | 1 - bacula/po/bacula.pot | 9398 ++++++++++++---- bacula/po/fr.gmo | Bin 481 -> 565 bytes bacula/po/fr.po | 9408 +++++++++++++---- bacula/po/it.gmo | Bin 470 -> 470 bytes bacula/po/it.po | 9398 ++++++++++++---- bacula/src/baconfig.h | 16 +- bacula/src/console/authenticate.c | 4 +- bacula/src/console/console.c | 5 +- bacula/src/console/console_conf.c | 16 +- bacula/src/dird/authenticate.c | 4 +- bacula/src/dird/backup.c | 4 +- bacula/src/dird/catreq.c | 24 +- bacula/src/dird/dird.c | 17 +- bacula/src/dird/dird_conf.c | 160 +- bacula/src/dird/fd_cmds.c | 10 +- bacula/src/dird/getmsg.c | 2 +- bacula/src/dird/inc_conf.c | 14 +- bacula/src/dird/job.c | 4 +- bacula/src/dird/jobq.c | 26 +- bacula/src/dird/mac.c | 6 +- bacula/src/dird/msgchan.c | 2 +- bacula/src/dird/next_vol.c | 18 +- bacula/src/dird/pythondir.c | 10 +- bacula/src/dird/recycle.c | 2 +- bacula/src/dird/restore.c | 4 +- bacula/src/dird/run_conf.c | 10 +- bacula/src/dird/scheduler.c | 12 +- bacula/src/dird/ua_cmds.c | 50 +- bacula/src/dird/ua_dotcmds.c | 2 +- bacula/src/dird/ua_input.c | 6 +- bacula/src/dird/ua_label.c | 6 +- bacula/src/dird/ua_output.c | 44 +- bacula/src/dird/ua_prune.c | 4 +- bacula/src/dird/ua_purge.c | 6 +- bacula/src/dird/ua_query.c | 4 +- bacula/src/dird/ua_restore.c | 73 +- bacula/src/dird/ua_run.c | 4 +- bacula/src/dird/ua_select.c | 20 +- bacula/src/dird/ua_status.c | 47 +- bacula/src/dird/ua_tree.c | 28 +- bacula/src/dird/ua_update.c | 56 +- bacula/src/dird/verify.c | 8 +- bacula/src/filed/authenticate.c | 12 +- bacula/src/filed/backup.c | 2 +- bacula/src/filed/filed.c | 11 +- bacula/src/filed/filed_conf.c | 6 +- bacula/src/filed/job.c | 28 +- bacula/src/filed/pythonfd.c | 16 +- bacula/src/filed/restore.c | 22 +- bacula/src/filed/status.c | 22 +- bacula/src/filed/verify.c | 2 +- bacula/src/findlib/bfile.c | 28 +- bacula/src/findlib/create_file.c | 6 +- bacula/src/findlib/enable_priv.c | 2 +- bacula/src/findlib/match.c | 2 +- bacula/src/findlib/save-cwd.c | 34 +- bacula/src/gnome2-console/console.c | 20 +- bacula/src/gnome2-console/console_conf.c | 18 +- bacula/src/gnome2-console/interface.c | 62 +- bacula/src/gnome2-console/restore.c | 2 +- bacula/src/gnome2-console/support.c | 4 +- bacula/src/lib/address_conf.c | 6 +- bacula/src/lib/berrno.c | 8 +- bacula/src/lib/bget_msg.c | 4 +- bacula/src/lib/bnet.c | 33 +- bacula/src/lib/bnet_server.c | 6 +- bacula/src/lib/bpipe.c | 4 +- bacula/src/lib/bshm.c | 10 +- bacula/src/lib/bsys.c | 6 +- bacula/src/lib/btimers.c | 2 +- bacula/src/lib/cram-md5.c | 4 +- bacula/src/lib/daemon.c | 2 +- bacula/src/lib/events.c | 2 +- bacula/src/lib/jcr.c | 2 +- bacula/src/lib/lex.c | 18 +- bacula/src/lib/mem_pool.c | 16 +- bacula/src/lib/message.c | 42 +- bacula/src/lib/parse_conf.c | 4 +- bacula/src/lib/pythonlib.c | 16 +- bacula/src/lib/regex.c | 34 +- bacula/src/lib/res.c | 4 +- bacula/src/lib/rwlock.c | 40 +- bacula/src/lib/semlock.c | 38 +- bacula/src/lib/signal.c | 98 +- bacula/src/lib/smartall.c | 38 +- bacula/src/lib/tls.c | 18 +- bacula/src/lib/util.c | 18 +- bacula/src/lib/var.c | 94 +- bacula/src/lib/watchdog.c | 12 +- bacula/src/stored/ansi_label.c | 2 +- bacula/src/stored/append.c | 12 +- bacula/src/stored/askdir.c | 12 +- bacula/src/stored/authenticate.c | 14 +- bacula/src/stored/autochanger.c | 2 +- bacula/src/stored/bcopy.c | 18 +- bacula/src/stored/bextract.c | 36 +- bacula/src/stored/block.c | 14 +- bacula/src/stored/bls.c | 36 +- bacula/src/stored/bscan.c | 23 +- bacula/src/stored/btape.c | 461 +- bacula/src/stored/butil.c | 18 +- bacula/src/stored/dev.c | 20 +- bacula/src/stored/device.c | 10 +- bacula/src/stored/dircmd.c | 4 +- bacula/src/stored/dvd.c | 7 +- bacula/src/stored/job.c | 2 +- bacula/src/stored/label.c | 47 +- bacula/src/stored/mount.c | 4 +- bacula/src/stored/parse_bsr.c | 46 +- bacula/src/stored/pythonsd.c | 18 +- bacula/src/stored/read.c | 4 +- bacula/src/stored/read_record.c | 24 +- bacula/src/stored/record.c | 4 +- bacula/src/stored/reserve.c | 2 +- bacula/src/stored/spool.c | 27 +- bacula/src/stored/status.c | 54 +- bacula/src/stored/stored.c | 13 +- bacula/src/stored/stored_conf.c | 14 +- bacula/src/tools/bsmtp.c | 32 +- bacula/src/tools/dbcheck.c | 141 +- bacula/src/tools/fstype.c | 6 +- bacula/src/tools/testfind.c | 20 +- bacula/src/tools/testls.c | 8 +- bacula/src/tray-monitor/tray-monitor.c | 182 +- bacula/src/tray-monitor/tray_conf.c | 22 +- bacula/src/wx-console/authenticate.c | 4 +- bacula/src/wx-console/console_conf.c | 16 +- bacula/src/wx-console/console_thread.cpp | 37 +- bacula/src/wx-console/main.cpp | 8 +- bacula/src/wx-console/wxbconfigfileeditor.cpp | 11 +- bacula/src/wx-console/wxbconfigpanel.cpp | 6 +- bacula/src/wx-console/wxbhistorytextctrl.cpp | 8 +- bacula/src/wx-console/wxbmainframe.cpp | 104 +- bacula/src/wx-console/wxbrestorepanel.cpp | 337 +- 138 files changed, 23123 insertions(+), 8588 deletions(-) diff --git a/bacula/autoconf/configure.in b/bacula/autoconf/configure.in index ebefbdce73..5d33d51208 100644 --- a/bacula/autoconf/configure.in +++ b/bacula/autoconf/configure.in @@ -118,8 +118,8 @@ dnl -------------------------------------------------- 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. diff --git a/bacula/configure b/bacula/configure index 25bf6e4e67..4509ca5646 100755 --- a/bacula/configure +++ b/bacula/configure @@ -6660,8 +6660,8 @@ _ACEOF -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. diff --git a/bacula/nb-1.37 b/bacula/nb-1.37 index 43f20e00ab..76b20894ec 100644 --- a/bacula/nb-1.37 +++ b/bacula/nb-1.37 @@ -4,6 +4,8 @@ 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. diff --git a/bacula/po/POTFILES.in b/bacula/po/POTFILES.in index 2a9810eab0..1feb607bda 100644 --- a/bacula/po/POTFILES.in +++ b/bacula/po/POTFILES.in @@ -1,7 +1,6 @@ # 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 diff --git a/bacula/po/bacula.pot b/bacula/po/bacula.pot index a6ebcd9434..fbede1c371 100644 --- a/bacula/po/bacula.pot +++ b/bacula/po/bacula.pot @@ -8,7 +8,7 @@ msgid "" 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 \n" "Language-Team: LANGUAGE \n" @@ -160,10 +160,10 @@ msgstr "" 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 "" @@ -190,6 +190,10 @@ 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 "" @@ -222,9 +226,17 @@ 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 "" @@ -272,10 +284,23 @@ 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 "" @@ -299,7 +324,7 @@ 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 "" @@ -314,7 +339,7 @@ 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 "" @@ -347,7 +372,7 @@ 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 "" @@ -590,7 +615,7 @@ 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 "" @@ -609,6 +634,15 @@ 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 @@ -636,7 +670,7 @@ msgid "Bad response to Hello command: ERR=%s\n" 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 "" @@ -650,7 +684,7 @@ msgid "" "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" @@ -658,13 +692,7 @@ msgid "" "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 "" @@ -700,6 +728,7 @@ msgid "output to file" 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 "" @@ -755,110 +784,148 @@ 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 @@ -894,8 +961,7 @@ msgstr "" 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 "" @@ -932,6 +998,9 @@ msgid "" 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 "" @@ -1000,6 +1069,11 @@ 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 "" @@ -1079,22 +1153,22 @@ 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" @@ -1156,22 +1230,58 @@ msgstr "" 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" @@ -1182,28 +1292,30 @@ msgstr "" 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 set configuration file to file\n" @@ -1219,46 +1331,46 @@ msgid "" "\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 " @@ -1266,50 +1378,64 @@ msgid "" "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 " @@ -1317,18 +1443,318 @@ msgid "" "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 "" @@ -1424,7 +1850,7 @@ 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 "" @@ -1443,15 +1869,28 @@ 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" @@ -1488,7 +1927,7 @@ msgid "" "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 "" @@ -1516,7 +1955,7 @@ 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 @@ -1524,6 +1963,11 @@ msgstr "" 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 "" @@ -1533,6 +1977,16 @@ 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" @@ -1558,12 +2012,22 @@ msgstr "" 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 "" @@ -1577,6 +2041,11 @@ 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" @@ -1621,7 +2090,7 @@ msgstr "" 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 "" @@ -1640,11 +2109,62 @@ 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" @@ -1662,7 +2182,7 @@ msgstr "" #: 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" @@ -1690,6 +2210,7 @@ msgid "" msgstr "" #: src/dird/msgchan.c:78 src/filed/job.c:1128 +#: src/tray-monitor/tray-monitor.c:874 msgid "Storage daemon" msgstr "" @@ -1784,6 +2305,40 @@ 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 "" @@ -1812,7 +2367,7 @@ 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" @@ -2041,7 +2596,12 @@ msgstr "" 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 "" @@ -2051,6 +2611,26 @@ 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 "" @@ -2106,10 +2686,34 @@ 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 "" @@ -2175,10 +2779,11 @@ msgid "gui [on|off] -- non-interactive gui mode" 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 "" @@ -2192,7 +2797,7 @@ msgid "" "from catalog" msgstr "" -#: src/dird/ua_cmds.c:99 +#: src/dird/ua_cmds.c:99 src/stored/btape.c:2534 msgid "label" msgstr "" @@ -2292,7 +2897,7 @@ msgstr "" msgid "run " msgstr "" -#: src/dird/ua_cmds.c:113 +#: src/dird/ua_cmds.c:113 src/stored/btape.c:2543 msgid "status" msgstr "" @@ -2332,7 +2937,7 @@ 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 "" @@ -2470,10 +3075,9 @@ 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 "" @@ -2482,9 +3086,9 @@ 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 "" @@ -2493,7 +3097,7 @@ 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 "" @@ -2501,6 +3105,11 @@ 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 "" @@ -2552,16 +3161,16 @@ 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 "" @@ -2570,73 +3179,18 @@ 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" @@ -2705,14 +3259,14 @@ msgstr "" 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 "" @@ -2724,9 +3278,9 @@ msgid "" "\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 @@ -2802,20 +3356,35 @@ msgstr "" 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 "" @@ -2851,7 +3420,7 @@ 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 "" @@ -2934,7 +3503,7 @@ msgid "" "==============\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 "" @@ -2943,11 +3512,21 @@ 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" @@ -3061,6 +3640,10 @@ msgstr "" 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 "" @@ -3166,7 +3749,7 @@ msgid "Jobs" 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 "" @@ -3192,6 +3775,16 @@ 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" @@ -3255,11 +3848,23 @@ msgstr "" 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 "" @@ -3288,7 +3893,7 @@ msgid "" "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 "" @@ -3314,43 +3919,105 @@ 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" @@ -3360,181 +4027,221 @@ msgid "" "\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" @@ -3787,11 +4494,16 @@ msgstr "" 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 "" @@ -3799,15 +4511,24 @@ 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 "" @@ -3820,27 +4541,27 @@ msgid "Levels:\n" 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 "" @@ -3853,7 +4574,7 @@ msgid "Initialize Catalog" 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 "" @@ -3990,6 +4711,10 @@ 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" @@ -4096,6 +4821,14 @@ msgstr "" 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" @@ -4116,6 +4849,11 @@ msgstr "" 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 "" @@ -4137,25 +4875,57 @@ 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" @@ -4163,182 +4933,210 @@ msgid "" "====\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 "" @@ -4457,7 +5255,7 @@ msgid "" "\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 "" @@ -4466,48 +5264,79 @@ 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 @@ -4579,7 +5408,7 @@ msgstr "" #: src/dird/verify.c:415 #, c-format msgid "" -"): %s\n" +"Bacula %s (%s): %s\n" " JobId: %d\n" " Job: %s\n" " FileSet: %s\n" @@ -4598,10 +5427,10 @@ msgid "" "\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" @@ -4618,90 +5447,90 @@ msgid "" "\n" msgstr "" -#: src/dird/verify.c:522 +#: src/dird/verify.c:526 #, c-format msgid "" "bird use as configuration file\n" @@ -5240,38 +6121,33 @@ msgid "" "\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 @@ -5283,11 +6159,20 @@ msgstr "" 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" @@ -5298,11 +6183,19 @@ msgstr "" 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" @@ -5328,6 +6221,21 @@ msgstr "" 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" @@ -5338,11 +6246,21 @@ msgstr "" 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" @@ -5407,6 +6325,16 @@ msgstr "" 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" @@ -5464,19 +6392,19 @@ msgid "Logic error: output file should not be open\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 @@ -5489,7 +6417,17 @@ msgstr "" 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 "" @@ -5515,7 +6453,41 @@ 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 "" @@ -5525,15 +6497,25 @@ 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" @@ -5558,7 +6540,7 @@ msgstr "" 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 "" @@ -5577,10 +6559,6 @@ msgstr "" msgid " SDSocket closed.\n" msgstr "" -#: src/filed/status.c:196 -msgid "====\n" -msgstr "" - #: src/filed/status.c:215 msgid "Terminated Jobs:\n" msgstr "" @@ -5589,29 +6567,37 @@ 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 "" @@ -5665,11 +6651,6 @@ 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" @@ -5688,6 +6669,16 @@ msgstr "" 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" @@ -5723,6 +6714,62 @@ msgstr "" 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" @@ -5743,6 +6790,12 @@ msgstr "" 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 "" @@ -5767,11 +6820,6 @@ 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" @@ -5797,6 +6845,10 @@ msgstr "" 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" @@ -5834,6 +6886,41 @@ msgstr "" 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" @@ -5863,13 +6950,7 @@ msgstr "" 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 set configuration file to file\n" @@ -5880,35 +6961,72 @@ msgid "" "\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 "" @@ -5985,7 +7103,8 @@ 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 "" @@ -6003,6 +7122,8 @@ msgid "Msgs" 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 "" @@ -6022,7 +7143,7 @@ msgstr "" msgid " Status: " msgstr "" -#: src/gnome2-console/interface.c:326 src/gnome2-console/interface.c:1692 +#: src/gnome2-console/interface.c:326 msgid " " msgstr "" @@ -6050,10 +7171,6 @@ 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 "" @@ -6062,12 +7179,8 @@ 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 "" @@ -6075,7 +7188,7 @@ 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 "" @@ -6083,26 +7196,13 @@ 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 "" @@ -6114,11 +7214,11 @@ 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 "" @@ -6170,11 +7270,45 @@ 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" @@ -6200,6 +7334,20 @@ msgstr "" 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" @@ -6291,10 +7439,37 @@ msgstr "" 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" @@ -6360,36 +7535,92 @@ msgstr "" 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" @@ -6407,7 +7638,7 @@ msgstr "" #: 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 @@ -6463,6 +7694,35 @@ msgstr "" 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" @@ -6499,6 +7759,11 @@ msgstr "" 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" @@ -6516,11 +7781,16 @@ msgstr "" 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" @@ -6541,6 +7811,19 @@ msgstr "" 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" @@ -6550,6 +7833,14 @@ msgstr "" 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" @@ -6574,12 +7865,12 @@ msgid "" "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" @@ -6593,11 +7884,47 @@ msgstr "" 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" @@ -6638,6 +7965,18 @@ msgstr "" 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" @@ -6648,6 +7987,24 @@ msgstr "" 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" @@ -6669,6 +8026,81 @@ msgid "" "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 "" @@ -6678,11 +8110,6 @@ 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" @@ -6743,6 +8170,16 @@ msgstr "" 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" @@ -6763,11 +8200,6 @@ msgstr "" 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 "" @@ -6861,1298 +8293,2308 @@ msgstr "" 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] \n" -" -b bootstrap specify a bootstrap file\n" -" -c specify configuration file\n" -" -d 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 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 ] \n" -" -b bootstrap specify a bootstrap file\n" -" -c specify configuration file\n" -" -d set debug level to nn\n" -" -m update media info in database\n" -" -n specify the database name (default bacula)\n" -" -u specify database user name (default bacula)\n" -" -P 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 specify Volume names (separated by |)\n" -" -w 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] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d 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 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 \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to nn\n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V 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] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d specify debug level\n" +" -e exclude list\n" +" -i 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 ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P 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 specify Volume names (separated by |)\n" +" -w 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" @@ -8164,2060 +10606,4378 @@ msgid "" " 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 \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d 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 use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g 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 userid to \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 \n" -" -b specify bootstrap file\n" -" -c set configuration file to file\n" -" -d 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 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 "\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 "\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 use as configuration file\n" -" -dnn set debug level to nn\n" -" -f run in foreground (for debugging)\n" -" -g 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 userid to \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 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 "" -"Bacula Tray Monitor\n" -"\n" -"Copyright (C) 2004 Kern Sibbald and John Walker\n" -"Written by Nicolas Boichat\n" -"\n" -"Version: " +#: src/wx-console/wxbmainframe.cpp:257 +msgid "Console" msgstr "" -#: src/tray-monitor/tray-monitor.c:499 -#, c-format -msgid ") %s %s %s" +#: 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 \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 "" diff --git a/bacula/po/fr.gmo b/bacula/po/fr.gmo index d705c16a53545c72ae7191886efe8a19859fbb74..bf0ffb520861638938253939649971fc2685a7d0 100644 GIT binary patch delta 194 zcmaFJyp^T?o)F7a1|VPpVi_RT0b*7lwgF-g2moSPAPxlL<%|pr`B1(%Py>*Q0zhUk zIOpf(r6!kT=A|o?\n" "Language-Team: French \n" "MIME-Version: 1.0\n" @@ -160,10 +160,10 @@ msgstr "" 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 "" @@ -190,6 +190,10 @@ 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 "" @@ -222,9 +226,17 @@ 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 "" @@ -272,10 +284,23 @@ 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 "" @@ -299,7 +324,7 @@ 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 "" @@ -314,7 +339,7 @@ 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 "" @@ -347,7 +372,7 @@ 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 "" @@ -590,7 +615,7 @@ 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 "" @@ -609,6 +634,15 @@ 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 @@ -636,7 +670,7 @@ msgid "Bad response to Hello command: ERR=%s\n" 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 "" @@ -650,7 +684,7 @@ msgid "" "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" @@ -658,13 +692,7 @@ msgid "" "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 "" @@ -700,6 +728,7 @@ msgid "output to file" 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 "" @@ -755,110 +784,148 @@ 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 @@ -894,8 +961,7 @@ msgstr "" 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 "" @@ -932,6 +998,9 @@ msgid "" 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 "" @@ -1000,6 +1069,11 @@ 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 "" @@ -1079,22 +1153,22 @@ 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" @@ -1156,22 +1230,58 @@ msgstr "" 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" @@ -1182,28 +1292,30 @@ msgstr "" 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 set configuration file to file\n" @@ -1219,46 +1331,46 @@ msgid "" "\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 " @@ -1266,50 +1378,64 @@ msgid "" "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 " @@ -1317,18 +1443,318 @@ msgid "" "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 "" @@ -1424,7 +1850,7 @@ 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 "" @@ -1443,15 +1869,28 @@ 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" @@ -1488,7 +1927,7 @@ msgid "" "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 "" @@ -1516,7 +1955,7 @@ 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 @@ -1524,6 +1963,11 @@ msgstr "" 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 "" @@ -1533,6 +1977,16 @@ 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" @@ -1558,12 +2012,22 @@ msgstr "" 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 "" @@ -1577,6 +2041,11 @@ 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" @@ -1621,7 +2090,7 @@ msgstr "" 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 "" @@ -1640,11 +2109,62 @@ 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" @@ -1662,7 +2182,7 @@ msgstr "" #: 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" @@ -1690,6 +2210,7 @@ msgid "" msgstr "" #: src/dird/msgchan.c:78 src/filed/job.c:1128 +#: src/tray-monitor/tray-monitor.c:874 msgid "Storage daemon" msgstr "" @@ -1784,6 +2305,40 @@ 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 "" @@ -1812,7 +2367,7 @@ 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" @@ -2041,7 +2596,12 @@ msgstr "" 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 "" @@ -2051,6 +2611,26 @@ 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 "" @@ -2106,10 +2686,34 @@ 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 "" @@ -2175,10 +2779,11 @@ msgid "gui [on|off] -- non-interactive gui mode" 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 "" @@ -2192,7 +2797,7 @@ msgid "" "from catalog" msgstr "" -#: src/dird/ua_cmds.c:99 +#: src/dird/ua_cmds.c:99 src/stored/btape.c:2534 msgid "label" msgstr "" @@ -2292,7 +2897,7 @@ msgstr "" msgid "run " msgstr "" -#: src/dird/ua_cmds.c:113 +#: src/dird/ua_cmds.c:113 src/stored/btape.c:2543 msgid "status" msgstr "" @@ -2332,7 +2937,7 @@ 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 "" @@ -2470,10 +3075,9 @@ 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 "" @@ -2482,9 +3086,9 @@ 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 "" @@ -2493,7 +3097,7 @@ 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 "" @@ -2501,6 +3105,11 @@ 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 "" @@ -2552,16 +3161,16 @@ 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 "" @@ -2570,73 +3179,18 @@ 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" @@ -2705,14 +3259,14 @@ msgstr "" 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 "" @@ -2724,9 +3278,9 @@ msgid "" "\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 @@ -2802,20 +3356,35 @@ msgstr "" 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 "" @@ -2851,7 +3420,7 @@ 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 "" @@ -2934,7 +3503,7 @@ msgid "" "==============\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 "" @@ -2943,11 +3512,21 @@ 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" @@ -3061,6 +3640,10 @@ msgstr "" 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 "" @@ -3166,7 +3749,7 @@ msgid "Jobs" 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 "" @@ -3192,6 +3775,16 @@ 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" @@ -3255,11 +3848,23 @@ msgstr "" 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 "" @@ -3288,7 +3893,7 @@ msgid "" "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 "" @@ -3314,43 +3919,105 @@ 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" @@ -3360,181 +4027,221 @@ msgid "" "\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" @@ -3787,11 +4494,16 @@ msgstr "" 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 "" @@ -3799,15 +4511,24 @@ 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 "" @@ -3820,27 +4541,27 @@ msgid "Levels:\n" 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 "" @@ -3853,7 +4574,7 @@ msgid "Initialize Catalog" 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 "" @@ -3990,6 +4711,10 @@ 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" @@ -4096,6 +4821,14 @@ msgstr "" 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" @@ -4116,6 +4849,11 @@ msgstr "" 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 "" @@ -4137,25 +4875,57 @@ 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" @@ -4163,182 +4933,210 @@ msgid "" "====\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 "" @@ -4457,7 +5255,7 @@ msgid "" "\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 "" @@ -4466,48 +5264,79 @@ 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 @@ -4579,7 +5408,7 @@ msgstr "" #: src/dird/verify.c:415 #, c-format msgid "" -"): %s\n" +"Bacula %s (%s): %s\n" " JobId: %d\n" " Job: %s\n" " FileSet: %s\n" @@ -4598,10 +5427,10 @@ msgid "" "\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" @@ -4618,90 +5447,90 @@ msgid "" "\n" msgstr "" -#: src/dird/verify.c:522 +#: src/dird/verify.c:526 #, c-format msgid "" "bird use as configuration file\n" @@ -5240,38 +6121,33 @@ msgid "" "\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 @@ -5283,11 +6159,20 @@ msgstr "" 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" @@ -5298,11 +6183,19 @@ msgstr "" 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" @@ -5328,6 +6221,21 @@ msgstr "" 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" @@ -5338,11 +6246,21 @@ msgstr "" 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" @@ -5407,6 +6325,16 @@ msgstr "" 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" @@ -5464,19 +6392,19 @@ msgid "Logic error: output file should not be open\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 @@ -5489,7 +6417,17 @@ msgstr "" 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 "" @@ -5515,7 +6453,41 @@ 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 "" @@ -5525,15 +6497,25 @@ 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" @@ -5558,7 +6540,7 @@ msgstr "" 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 "" @@ -5577,10 +6559,6 @@ msgstr "" msgid " SDSocket closed.\n" msgstr "" -#: src/filed/status.c:196 -msgid "====\n" -msgstr "" - #: src/filed/status.c:215 msgid "Terminated Jobs:\n" msgstr "" @@ -5589,29 +6567,37 @@ 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 "" @@ -5665,11 +6651,6 @@ 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" @@ -5688,6 +6669,16 @@ msgstr "" 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" @@ -5723,6 +6714,62 @@ msgstr "" 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" @@ -5743,6 +6790,12 @@ msgstr "" 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 "" @@ -5767,11 +6820,6 @@ 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" @@ -5797,6 +6845,10 @@ msgstr "" 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" @@ -5834,6 +6886,41 @@ msgstr "" 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" @@ -5863,13 +6950,7 @@ msgstr "" 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 set configuration file to file\n" @@ -5880,35 +6961,72 @@ msgid "" "\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 "" @@ -5985,7 +7103,8 @@ 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 "" @@ -6003,6 +7122,8 @@ msgid "Msgs" 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 "" @@ -6022,7 +7143,7 @@ msgstr "" msgid " Status: " msgstr "" -#: src/gnome2-console/interface.c:326 src/gnome2-console/interface.c:1692 +#: src/gnome2-console/interface.c:326 msgid " " msgstr "" @@ -6050,10 +7171,6 @@ 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 "" @@ -6062,12 +7179,8 @@ 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 "" @@ -6075,7 +7188,7 @@ 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 "" @@ -6083,26 +7196,13 @@ 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 "" @@ -6114,11 +7214,11 @@ 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 "" @@ -6170,9 +7270,43 @@ 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 @@ -6200,6 +7334,20 @@ msgstr "" 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" @@ -6291,10 +7439,37 @@ msgstr "" 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" @@ -6360,36 +7535,92 @@ msgstr "" 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" @@ -6407,7 +7638,7 @@ msgstr "" #: 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 @@ -6463,6 +7694,35 @@ msgstr "" 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" @@ -6499,6 +7759,11 @@ msgstr "" 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" @@ -6516,11 +7781,16 @@ msgstr "" 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" @@ -6541,6 +7811,19 @@ msgstr "" 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" @@ -6550,6 +7833,14 @@ msgstr "" 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" @@ -6574,12 +7865,12 @@ msgid "" "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" @@ -6593,11 +7884,47 @@ msgstr "" 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" @@ -6638,6 +7965,18 @@ msgstr "" 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" @@ -6648,6 +7987,24 @@ msgstr "" 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" @@ -6669,6 +8026,81 @@ msgid "" "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 "" @@ -6678,11 +8110,6 @@ 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" @@ -6743,6 +8170,16 @@ msgstr "" 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" @@ -6763,11 +8200,6 @@ msgstr "" 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 "" @@ -6861,1297 +8293,2307 @@ msgstr "" 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] \n" -" -b bootstrap specify a bootstrap file\n" -" -c specify configuration file\n" -" -d 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 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 ] \n" -" -b bootstrap specify a bootstrap file\n" -" -c specify configuration file\n" -" -d set debug level to nn\n" -" -m update media info in database\n" -" -n specify the database name (default bacula)\n" -" -u specify database user name (default bacula)\n" -" -P 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 specify Volume names (separated by |)\n" -" -w 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] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d 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 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 \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to nn\n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V 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] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d specify debug level\n" +" -e exclude list\n" +" -i 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 ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P 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 specify Volume names (separated by |)\n" +" -w 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" @@ -8164,2060 +10606,4378 @@ msgid "" " 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 \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d 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 use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g 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 userid to \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 \n" -" -b specify bootstrap file\n" -" -c set configuration file to file\n" -" -d 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 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 "\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 "\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 use as configuration file\n" -" -dnn set debug level to nn\n" -" -f run in foreground (for debugging)\n" -" -g 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 userid to \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 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 "" -"Bacula Tray Monitor\n" -"\n" -"Copyright (C) 2004 Kern Sibbald and John Walker\n" -"Written by Nicolas Boichat\n" -"\n" -"Version: " +#: src/wx-console/wxbmainframe.cpp:257 +msgid "Console" msgstr "" -#: src/tray-monitor/tray-monitor.c:499 -#, c-format -msgid ") %s %s %s" +#: 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 \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 "" diff --git a/bacula/po/it.gmo b/bacula/po/it.gmo index 1fbd44d46071e3fb12deef7db9832da4d6142b6c..680fc593dd27728a97f374b85d6f9c6b5f196ee8 100644 GIT binary patch delta 19 acmcb{e2sa+S`I@41w#ufLxYW56&V3S#s&od delta 19 acmcb{e2sa+S`GsX1w(TyQ?rd*6&V3TKn4{6 diff --git a/bacula/po/it.po b/bacula/po/it.po index 0ccac39c9b..71c691c904 100644 --- a/bacula/po/it.po +++ b/bacula/po/it.po @@ -7,7 +7,7 @@ msgid "" 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: \n" "Language-Team: Italian \n" @@ -160,10 +160,10 @@ msgstr "" 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 "" @@ -190,6 +190,10 @@ 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 "" @@ -222,9 +226,17 @@ 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 "" @@ -272,10 +284,23 @@ 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 "" @@ -299,7 +324,7 @@ 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 "" @@ -314,7 +339,7 @@ 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 "" @@ -347,7 +372,7 @@ 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 "" @@ -590,7 +615,7 @@ 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 "" @@ -609,6 +634,15 @@ 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 @@ -636,7 +670,7 @@ msgid "Bad response to Hello command: ERR=%s\n" 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 "" @@ -650,7 +684,7 @@ msgid "" "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" @@ -658,13 +692,7 @@ msgid "" "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 "" @@ -700,6 +728,7 @@ msgid "output to file" 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 "" @@ -755,110 +784,148 @@ 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 @@ -894,8 +961,7 @@ msgstr "" 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 "" @@ -932,6 +998,9 @@ msgid "" 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 "" @@ -1000,6 +1069,11 @@ 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 "" @@ -1079,22 +1153,22 @@ 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" @@ -1156,22 +1230,58 @@ msgstr "" 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" @@ -1182,28 +1292,30 @@ msgstr "" 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 set configuration file to file\n" @@ -1219,46 +1331,46 @@ msgid "" "\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 " @@ -1266,50 +1378,64 @@ msgid "" "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 " @@ -1317,18 +1443,318 @@ msgid "" "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 "" @@ -1424,7 +1850,7 @@ 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 "" @@ -1443,15 +1869,28 @@ 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" @@ -1488,7 +1927,7 @@ msgid "" "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 "" @@ -1516,7 +1955,7 @@ 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 @@ -1524,6 +1963,11 @@ msgstr "" 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 "" @@ -1533,6 +1977,16 @@ 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" @@ -1558,12 +2012,22 @@ msgstr "" 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 "" @@ -1577,6 +2041,11 @@ 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" @@ -1621,7 +2090,7 @@ msgstr "" 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 "" @@ -1640,11 +2109,62 @@ 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" @@ -1662,7 +2182,7 @@ msgstr "" #: 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" @@ -1690,6 +2210,7 @@ msgid "" msgstr "" #: src/dird/msgchan.c:78 src/filed/job.c:1128 +#: src/tray-monitor/tray-monitor.c:874 msgid "Storage daemon" msgstr "" @@ -1784,6 +2305,40 @@ 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 "" @@ -1812,7 +2367,7 @@ 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" @@ -2041,7 +2596,12 @@ msgstr "" 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 "" @@ -2051,6 +2611,26 @@ 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 "" @@ -2106,10 +2686,34 @@ 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 "" @@ -2175,10 +2779,11 @@ msgid "gui [on|off] -- non-interactive gui mode" 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 "" @@ -2192,7 +2797,7 @@ msgid "" "from catalog" msgstr "" -#: src/dird/ua_cmds.c:99 +#: src/dird/ua_cmds.c:99 src/stored/btape.c:2534 msgid "label" msgstr "" @@ -2292,7 +2897,7 @@ msgstr "" msgid "run " msgstr "" -#: src/dird/ua_cmds.c:113 +#: src/dird/ua_cmds.c:113 src/stored/btape.c:2543 msgid "status" msgstr "" @@ -2332,7 +2937,7 @@ 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 "" @@ -2470,10 +3075,9 @@ 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 "" @@ -2482,9 +3086,9 @@ 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 "" @@ -2493,7 +3097,7 @@ 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 "" @@ -2501,6 +3105,11 @@ 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 "" @@ -2552,16 +3161,16 @@ 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 "" @@ -2570,73 +3179,18 @@ 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" @@ -2705,14 +3259,14 @@ msgstr "" 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 "" @@ -2724,9 +3278,9 @@ msgid "" "\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 @@ -2802,20 +3356,35 @@ msgstr "" 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 "" @@ -2851,7 +3420,7 @@ 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 "" @@ -2934,7 +3503,7 @@ msgid "" "==============\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 "" @@ -2943,11 +3512,21 @@ 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" @@ -3061,6 +3640,10 @@ msgstr "" 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 "" @@ -3166,7 +3749,7 @@ msgid "Jobs" 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 "" @@ -3192,6 +3775,16 @@ 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" @@ -3255,11 +3848,23 @@ msgstr "" 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 "" @@ -3288,7 +3893,7 @@ msgid "" "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 "" @@ -3314,43 +3919,105 @@ 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" @@ -3360,181 +4027,221 @@ msgid "" "\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" @@ -3787,11 +4494,16 @@ msgstr "" 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 "" @@ -3799,15 +4511,24 @@ 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 "" @@ -3820,27 +4541,27 @@ msgid "Levels:\n" 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 "" @@ -3853,7 +4574,7 @@ msgid "Initialize Catalog" 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 "" @@ -3990,6 +4711,10 @@ 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" @@ -4096,6 +4821,14 @@ msgstr "" 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" @@ -4116,6 +4849,11 @@ msgstr "" 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 "" @@ -4137,25 +4875,57 @@ 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" @@ -4163,182 +4933,210 @@ msgid "" "====\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 "" @@ -4457,7 +5255,7 @@ msgid "" "\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 "" @@ -4466,48 +5264,79 @@ 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 @@ -4579,7 +5408,7 @@ msgstr "" #: src/dird/verify.c:415 #, c-format msgid "" -"): %s\n" +"Bacula %s (%s): %s\n" " JobId: %d\n" " Job: %s\n" " FileSet: %s\n" @@ -4598,10 +5427,10 @@ msgid "" "\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" @@ -4618,90 +5447,90 @@ msgid "" "\n" msgstr "" -#: src/dird/verify.c:522 +#: src/dird/verify.c:526 #, c-format msgid "" "bird use as configuration file\n" @@ -5240,38 +6121,33 @@ msgid "" "\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 @@ -5283,11 +6159,20 @@ msgstr "" 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" @@ -5298,11 +6183,19 @@ msgstr "" 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" @@ -5328,6 +6221,21 @@ msgstr "" 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" @@ -5338,11 +6246,21 @@ msgstr "" 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" @@ -5407,6 +6325,16 @@ msgstr "" 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" @@ -5464,19 +6392,19 @@ msgid "Logic error: output file should not be open\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 @@ -5489,7 +6417,17 @@ msgstr "" 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 "" @@ -5515,7 +6453,41 @@ 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 "" @@ -5525,15 +6497,25 @@ 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" @@ -5558,7 +6540,7 @@ msgstr "" 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 "" @@ -5577,10 +6559,6 @@ msgstr "" msgid " SDSocket closed.\n" msgstr "" -#: src/filed/status.c:196 -msgid "====\n" -msgstr "" - #: src/filed/status.c:215 msgid "Terminated Jobs:\n" msgstr "" @@ -5589,29 +6567,37 @@ 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 "" @@ -5665,11 +6651,6 @@ 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" @@ -5688,6 +6669,16 @@ msgstr "" 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" @@ -5723,6 +6714,62 @@ msgstr "" 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" @@ -5743,6 +6790,12 @@ msgstr "" 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 "" @@ -5767,11 +6820,6 @@ 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" @@ -5797,6 +6845,10 @@ msgstr "" 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" @@ -5834,6 +6886,41 @@ msgstr "" 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" @@ -5863,13 +6950,7 @@ msgstr "" 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 set configuration file to file\n" @@ -5880,35 +6961,72 @@ msgid "" "\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 "" @@ -5985,7 +7103,8 @@ 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 "" @@ -6003,6 +7122,8 @@ msgid "Msgs" 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 "" @@ -6022,7 +7143,7 @@ msgstr "" msgid " Status: " msgstr "" -#: src/gnome2-console/interface.c:326 src/gnome2-console/interface.c:1692 +#: src/gnome2-console/interface.c:326 msgid " " msgstr "" @@ -6050,10 +7171,6 @@ 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 "" @@ -6062,12 +7179,8 @@ 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 "" @@ -6075,7 +7188,7 @@ 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 "" @@ -6083,26 +7196,13 @@ 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 "" @@ -6114,11 +7214,11 @@ 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 "" @@ -6170,11 +7270,45 @@ 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" @@ -6200,6 +7334,20 @@ msgstr "" 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" @@ -6291,10 +7439,37 @@ msgstr "" 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" @@ -6360,36 +7535,92 @@ msgstr "" 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" @@ -6407,7 +7638,7 @@ msgstr "" #: 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 @@ -6463,6 +7694,35 @@ msgstr "" 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" @@ -6499,6 +7759,11 @@ msgstr "" 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" @@ -6516,11 +7781,16 @@ msgstr "" 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" @@ -6541,6 +7811,19 @@ msgstr "" 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" @@ -6550,6 +7833,14 @@ msgstr "" 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" @@ -6574,12 +7865,12 @@ msgid "" "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" @@ -6593,11 +7884,47 @@ msgstr "" 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" @@ -6638,6 +7965,18 @@ msgstr "" 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" @@ -6648,6 +7987,24 @@ msgstr "" 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" @@ -6669,6 +8026,81 @@ msgid "" "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 "" @@ -6678,11 +8110,6 @@ 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" @@ -6743,6 +8170,16 @@ msgstr "" 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" @@ -6763,11 +8200,6 @@ msgstr "" 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 "" @@ -6861,1298 +8293,2308 @@ msgstr "" 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] \n" -" -b bootstrap specify a bootstrap file\n" -" -c specify configuration file\n" -" -d 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 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 ] \n" -" -b bootstrap specify a bootstrap file\n" -" -c specify configuration file\n" -" -d set debug level to nn\n" -" -m update media info in database\n" -" -n specify the database name (default bacula)\n" -" -u specify database user name (default bacula)\n" -" -P 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 specify Volume names (separated by |)\n" -" -w 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] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d 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 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 \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to nn\n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V 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] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d specify debug level\n" +" -e exclude list\n" +" -i 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 ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P 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 specify Volume names (separated by |)\n" +" -w 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" @@ -8164,2060 +10606,4378 @@ msgid "" " 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 \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d 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 use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g 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 userid to \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 \n" -" -b specify bootstrap file\n" -" -c set configuration file to file\n" -" -d 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 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 "\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 "\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 use as configuration file\n" -" -dnn set debug level to nn\n" -" -f run in foreground (for debugging)\n" -" -g 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 userid to \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 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 "" -"Bacula Tray Monitor\n" -"\n" -"Copyright (C) 2004 Kern Sibbald and John Walker\n" -"Written by Nicolas Boichat\n" -"\n" -"Version: " +#: src/wx-console/wxbmainframe.cpp:257 +msgid "Console" msgstr "" -#: src/tray-monitor/tray-monitor.c:499 -#, c-format -msgid ") %s %s %s" +#: 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 \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 "" diff --git a/bacula/src/baconfig.h b/bacula/src/baconfig.h index f958090899..d7000e5709 100644 --- a/bacula/src/baconfig.h +++ b/bacula/src/baconfig.h @@ -49,19 +49,24 @@ #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 +#include +#ifndef _ #define _(s) gettext((s)) +#endif /* N */ +#ifndef N_ #define N_(s) (s) +#endif /* N_ */ #else #undef _ #define _(s) (s) @@ -69,7 +74,10 @@ #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***** */ @@ -572,6 +580,7 @@ extern "C" long gethostid(void); #endif +/* Disabled because it breaks internationalisation... #undef HAVE_SETLOCALE #ifdef HAVE_SETLOCALE #include @@ -583,6 +592,7 @@ extern "C" long gethostid(void); #else #define nl_langinfo(x) ("ANSI_X3.4-1968") #endif +*/ /* Fake entry points if regex does not exist */ #ifndef HAVE_REGEX_H diff --git a/bacula/src/console/authenticate.c b/bacula/src/console/authenticate.c index 66a1d67faf..fcbed7b946 100644 --- a/bacula/src/console/authenticate.c +++ b/bacula/src/console/authenticate.c @@ -38,10 +38,10 @@ void senditf(const char *fmt, ...); 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 */ diff --git a/bacula/src/console/console.c b/bacula/src/console/console.c index af82ec5e78..9bea604bd5 100644 --- a/bacula/src/console/console.c +++ b/bacula/src/console/console.c @@ -321,9 +321,12 @@ int main(int argc, char *argv[]) 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); diff --git a/bacula/src/console/console_conf.c b/bacula/src/console/console_conf.c index 75483db0c2..19b1a117c8 100644 --- a/bacula/src/console/console_conf.c +++ b/bacula/src/console/console_conf.c @@ -120,7 +120,7 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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 */ @@ -129,15 +129,15 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm } 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); @@ -213,7 +213,7 @@ void free_resource(RES *sres, int type) } 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); @@ -239,7 +239,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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]); } } @@ -258,7 +258,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; } @@ -285,7 +285,7 @@ void save_resource(int type, RES_ITEM *items, int pass) size = sizeof(DIRRES); break; default: - printf("Unknown resource type %d\n", type); + printf(_("Unknown resource type %d\n"), type); error = 1; size = 1; break; diff --git a/bacula/src/dird/authenticate.c b/bacula/src/dird/authenticate.c index f18e0a4e53..f49b7c47c2 100644 --- a/bacula/src/dird/authenticate.c +++ b/bacula/src/dird/authenticate.c @@ -353,7 +353,7 @@ int authenticate_user_agent(UAContext *uac) /* 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; } @@ -370,6 +370,6 @@ 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; } diff --git a/bacula/src/dird/backup.c b/bacula/src/dird/backup.c index 715b53aebc..2406fc7947 100644 --- a/bacula/src/dird/backup.c +++ b/bacula/src/dird/backup.c @@ -486,7 +486,7 @@ void backup_cleanup(JCR *jcr, int TermCode) // 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" @@ -513,6 +513,8 @@ void backup_cleanup(JCR *jcr, int TermCode) " FD termination status: %s\n" " SD termination status: %s\n" " Termination: %s\n\n"), + VERSION, + LSMDATE, edt, jcr->jr.JobId, jcr->jr.Job, diff --git a/bacula/src/dird/catreq.c b/bacula/src/dird/catreq.c index 030ea7d3e9..c563d35eac 100644 --- a/bacula/src/dird/catreq.c +++ b/bacula/src/dird/catreq.c @@ -106,7 +106,7 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) 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; @@ -128,7 +128,7 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) 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"); } @@ -156,9 +156,9 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) * 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*** @@ -184,12 +184,12 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) 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); } @@ -212,7 +212,7 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) 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; @@ -235,7 +235,7 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) 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; } @@ -267,7 +267,7 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) } 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); @@ -286,7 +286,7 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) 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); @@ -295,7 +295,7 @@ void catalog_request(JCR *jcr, BSOCK *bs, char *msg) } 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); } @@ -395,7 +395,7 @@ void catalog_update(JCR *jcr, BSOCK *bs, char *msg) } 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 */ diff --git a/bacula/src/dird/dird.c b/bacula/src/dird/dird.c index e6f0f57dc4..eec2b9f2ca 100644 --- a/bacula/src/dird/dird.c +++ b/bacula/src/dird/dird.c @@ -69,7 +69,7 @@ static void usage() { 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 set configuration file to file\n" " -dnn set debug level to nn\n" @@ -81,7 +81,7 @@ static void usage() " -u userid\n" " -v verbose user messages\n" " -? print this message.\n" -"\n")); +"\n"), VERSION, BDATE); exit(1); } @@ -101,9 +101,12 @@ int main (int argc, char *argv[]) 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); @@ -579,7 +582,7 @@ static int check_resources() 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); @@ -592,7 +595,7 @@ static int check_resources() 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); @@ -641,14 +644,14 @@ static int check_resources() 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 */ diff --git a/bacula/src/dird/dird_conf.c b/bacula/src/dird/dird_conf.c index 7c34b250bc..75f813e30c 100644 --- a/bacula/src/dird/dird_conf.c +++ b/bacula/src/dird/dird_conf.c @@ -438,7 +438,7 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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 */ @@ -447,63 +447,63 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm } 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, @@ -511,8 +511,8 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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(), @@ -520,95 +520,95 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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; ires_fs.num_includes; i++) { INCEXE *incexe = res->res_fs.include_items[i]; for (j=0; jnum_opts; j++) { @@ -670,13 +670,13 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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); @@ -685,7 +685,7 @@ next_run: } 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); @@ -694,7 +694,7 @@ next_run: } 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); @@ -703,7 +703,7 @@ next_run: } 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); @@ -712,7 +712,7 @@ next_run: } 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); @@ -721,7 +721,7 @@ next_run: } 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); @@ -730,17 +730,17 @@ next_run: } 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 */ @@ -749,38 +749,38 @@ next_run: 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) { @@ -1074,7 +1074,7 @@ void free_resource(RES *sres, int type) 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) { @@ -1106,13 +1106,13 @@ void save_resource(int type, RES_ITEM *items, int pass) 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) { @@ -1121,7 +1121,7 @@ void save_resource(int type, RES_ITEM *items, int pass) */ 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]); } } @@ -1146,20 +1146,20 @@ void save_resource(int type, RES_ITEM *items, int pass) /* 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 */ @@ -1168,7 +1168,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; @@ -1186,7 +1186,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; @@ -1194,7 +1194,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; @@ -1206,12 +1206,12 @@ void save_resource(int type, RES_ITEM *items, int pass) * 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; } @@ -1271,7 +1271,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; } @@ -1286,7 +1286,7 @@ void save_resource(int type, RES_ITEM *items, int pass) } 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 */ @@ -1298,7 +1298,7 @@ void save_resource(int type, RES_ITEM *items, int pass) } } 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); } } @@ -1371,7 +1371,7 @@ void store_jobtype(LEX *lc, RES_ITEM *item, int index, int 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); @@ -1395,7 +1395,7 @@ void store_level(LEX *lc, RES_ITEM *item, int index, int pass) } } 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); @@ -1415,7 +1415,7 @@ void store_replace(LEX *lc, RES_ITEM *item, int index, int pass) } } 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); diff --git a/bacula/src/dird/fd_cmds.c b/bacula/src/dird/fd_cmds.c index c2f55318f7..c0f2cddc79 100644 --- a/bacula/src/dird/fd_cmds.c +++ b/bacula/src/dird/fd_cmds.c @@ -141,7 +141,7 @@ void get_level_since_time(JCR *jcr, char *since, int since_len) 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; @@ -162,7 +162,7 @@ void get_level_since_time(JCR *jcr, char *since, int since_len) /* 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 { @@ -170,14 +170,14 @@ void get_level_since_time(JCR *jcr, char *since, int since_len) 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; @@ -193,7 +193,7 @@ static void send_since_time(JCR *jcr) 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); } diff --git a/bacula/src/dird/getmsg.c b/bacula/src/dird/getmsg.c index 06c9d62b75..b9d4247080 100644 --- a/bacula/src/dird/getmsg.c +++ b/bacula/src/dird/getmsg.c @@ -315,7 +315,7 @@ bool response(JCR *jcr, BSOCK *bs, char *resp, const char *cmd, e_prtmsg prtmsg) } 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; diff --git a/bacula/src/dird/inc_conf.c b/bacula/src/dird/inc_conf.c index c99b83f3df..0ca26731ab 100644 --- a/bacula/src/dird/inc_conf.c +++ b/bacula/src/dird/inc_conf.c @@ -246,7 +246,7 @@ static void scan_include_options(LEX *lc, int keyword, char *opts, int optlen) } } 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); @@ -315,7 +315,7 @@ static void store_newinc(LEX *lc, RES_ITEM *item, int index, int pass) 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 */ @@ -325,7 +325,7 @@ static void store_newinc(LEX *lc, RES_ITEM *item, int index, int 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 (pass == 1) { @@ -559,7 +559,7 @@ static void options_res(LEX *lc, RES_ITEM *item, int index, int pass) 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) { @@ -580,7 +580,7 @@ static void options_res(LEX *lc, RES_ITEM *item, int index, int pass) 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); @@ -589,7 +589,7 @@ static void options_res(LEX *lc, RES_ITEM *item, int index, int 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); } } } @@ -614,7 +614,7 @@ static void store_opts(LEX *lc, RES_ITEM *item, int index, int pass) } } 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)); diff --git a/bacula/src/dird/job.c b/bacula/src/dird/job.c index 03cbfac60c..faef49445a 100644 --- a/bacula/src/dird/job.c +++ b/bacula/src/dird/job.c @@ -226,7 +226,7 @@ static void *job_thread(void *arg) } 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; } @@ -304,7 +304,7 @@ static void *job_thread(void *arg) } 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) || diff --git a/bacula/src/dird/jobq.c b/bacula/src/dird/jobq.c index c1f5a7866d..7c0d86485f 100755 --- a/bacula/src/dird/jobq.c +++ b/bacula/src/dird/jobq.c @@ -64,7 +64,7 @@ int jobq_init(jobq_t *jq, int threads, void *(*engine)(void *arg)) 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) { @@ -73,13 +73,13 @@ int jobq_init(jobq_t *jq, int threads, void *(*engine)(void *arg)) } 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; @@ -112,7 +112,7 @@ int jobq_destroy(jobq_t *jq) } 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 */ @@ -125,7 +125,7 @@ int jobq_destroy(jobq_t *jq) 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; } @@ -133,7 +133,7 @@ int jobq_destroy(jobq_t *jq) 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; } @@ -141,7 +141,7 @@ int jobq_destroy(jobq_t *jq) } 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); @@ -232,14 +232,14 @@ int jobq_add(jobq_t *jq, JCR *jcr) 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; } @@ -304,7 +304,7 @@ int jobq_remove(jobq_t *jq, JCR *jcr) 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; } @@ -350,7 +350,7 @@ static int start_server(jobq_t *jq) 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) { @@ -359,7 +359,7 @@ static int start_server(jobq_t *jq) 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; } } @@ -385,7 +385,7 @@ void *jobq_server(void *arg) 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++; diff --git a/bacula/src/dird/mac.c b/bacula/src/dird/mac.c index 9cf64be42c..3356fb8a1e 100644 --- a/bacula/src/dird/mac.c +++ b/bacula/src/dird/mac.c @@ -64,7 +64,7 @@ bool do_mac_init(JCR *jcr) 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; @@ -374,7 +374,7 @@ void mac_cleanup(JCR *jcr, int TermCode) // 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" @@ -398,6 +398,8 @@ void mac_cleanup(JCR *jcr, int TermCode) " FD termination status: %s\n" " SD termination status: %s\n" " Termination: %s\n\n"), + VERSION, + LSMDATE, edt, jcr->jr.JobId, jcr->jr.Job, diff --git a/bacula/src/dird/msgchan.c b/bacula/src/dird/msgchan.c index 7dac9fee0b..9da9150771 100644 --- a/bacula/src/dird/msgchan.c +++ b/bacula/src/dird/msgchan.c @@ -40,7 +40,7 @@ static char jobcmd[] = "JobId=%d job=%s job_name=%s client_name=%s " 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"; diff --git a/bacula/src/dird/next_vol.c b/bacula/src/dird/next_vol.c index 6954d2ddfc..52086651a1 100644 --- a/bacula/src/dird/next_vol.c +++ b/bacula/src/dird/next_vol.c @@ -259,7 +259,7 @@ void check_if_volume_valid_or_recyclable(JCR *jcr, MEDIA_DBR *mr, const char **r /* 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 */ } @@ -277,18 +277,18 @@ void check_if_volume_valid_or_recyclable(JCR *jcr, MEDIA_DBR *mr, const char **r */ 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 @@ -313,15 +313,15 @@ void check_if_volume_valid_or_recyclable(JCR *jcr, MEDIA_DBR *mr, const char **r 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)"); } } } diff --git a/bacula/src/dird/pythondir.c b/bacula/src/dird/pythondir.c index 64388426b8..5893be1d78 100644 --- a/bacula/src/dird/pythondir.c +++ b/bacula/src/dird/pythondir.c @@ -101,7 +101,7 @@ PyObject *job_getattr(PyObject *self, char *attrname) 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++) { @@ -133,7 +133,7 @@ PyObject *job_getattr(PyObject *self, char *attrname) 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 */ @@ -160,7 +160,7 @@ PyObject *job_getattr(PyObject *self, char *attrname) 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; @@ -203,13 +203,13 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) 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; diff --git a/bacula/src/dird/recycle.c b/bacula/src/dird/recycle.c index c242d1bc81..633cb5d35a 100644 --- a/bacula/src/dird/recycle.c +++ b/bacula/src/dird/recycle.c @@ -99,7 +99,7 @@ int recycle_oldest_purged_volume(JCR *jcr, bool InChanger, MEDIA_DBR *mr) 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; } diff --git a/bacula/src/dird/restore.c b/bacula/src/dird/restore.c index 9c0d1573cc..2e1d24fe4b 100644 --- a/bacula/src/dird/restore.c +++ b/bacula/src/dird/restore.c @@ -272,7 +272,7 @@ void restore_cleanup(JCR *jcr, int TermCode) 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" @@ -286,6 +286,8 @@ void restore_cleanup(JCR *jcr, int TermCode) " FD termination status: %s\n" " SD termination status: %s\n" " Termination: %s\n\n"), + VERSION, + LSMDATE, edt, jcr->jr.JobId, jcr->jr.Job, diff --git a/bacula/src/dird/run_conf.c b/bacula/src/dird/run_conf.c index a5d354a7e6..2a06fc5aff 100644 --- a/bacula/src/dird/run_conf.c +++ b/bacula/src/dird/run_conf.c @@ -185,7 +185,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass) 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) { @@ -242,7 +242,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass) 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 */ } @@ -267,7 +267,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass) 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 */ } @@ -279,7 +279,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass) 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 */ } @@ -287,7 +287,7 @@ void store_run(LEX *lc, RES_ITEM *item, int index, int pass) } 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 */ diff --git a/bacula/src/dird/scheduler.c b/bacula/src/dird/scheduler.c index b1361ebfa3..a2a977ebb5 100644 --- a/bacula/src/dird/scheduler.c +++ b/bacula/src/dird/scheduler.c @@ -99,7 +99,7 @@ JCR *wait_for_next_job(char *one_shot_job_to_run) #ifdef list_chain job_item *je; foreach_dlist(je, jobs_to_run) { - dump_job(je, "Walk queue"); + dump_job(je, _("Walk queue")); } #endif /* @@ -109,7 +109,7 @@ JCR *wait_for_next_job(char *one_shot_job_to_run) 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")); @@ -129,7 +129,7 @@ JCR *wait_for_next_job(char *one_shot_job_to_run) 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); @@ -342,7 +342,7 @@ static void add_job(JOB *job, RUN *run, time_t now, time_t runtime) 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; } @@ -350,11 +350,11 @@ static void add_job(JOB *job, RUN *run, time_t now, time_t runtime) /* 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 diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index ba2208487c..04f8672e78 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -414,7 +414,7 @@ static int cancel_cmd(UAContext *ua, const char *cmd) 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); } @@ -753,7 +753,7 @@ static int setdebug_cmd(UAContext *ua, const char *cmd) 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]); } @@ -765,7 +765,7 @@ static int setdebug_cmd(UAContext *ua, const char *cmd) } /* 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) { @@ -775,18 +775,18 @@ static int setdebug_cmd(UAContext *ua, const char *cmd) /* General debug? */ for (i=1; iargc; 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]); @@ -802,9 +802,9 @@ static int setdebug_cmd(UAContext *ua, const char *cmd) } } - 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]); @@ -825,10 +825,10 @@ static int setdebug_cmd(UAContext *ua, const char *cmd) * 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; @@ -909,30 +909,30 @@ static int estimate_cmd(UAContext *ua, const char *cmd) jcr->JobLevel = L_FULL; for (int i=1; iargc; 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]); } @@ -1068,7 +1068,7 @@ static int delete_cmd(UAContext *ua, const char *cmd) 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 */ } @@ -1112,7 +1112,7 @@ static void delete_job(UAContext *ua) 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]); @@ -1379,14 +1379,14 @@ int qhelp_cmd(UAContext *ua, const char *cmd) unsigned int i; for (i=0; iJobId; /* ref NULL pointer */ jcr->JobId = 1000; /* another ref NULL pointer */ return 0; diff --git a/bacula/src/dird/ua_input.c b/bacula/src/dird/ua_input.c index e4ecafd2a9..f1101d2cd0 100644 --- a/bacula/src/dird/ua_input.c +++ b/bacula/src/dird/ua_input.c @@ -79,17 +79,17 @@ bool get_pint(UAContext *ua, const char *prompt) 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; diff --git a/bacula/src/dird/ua_label.c b/bacula/src/dird/ua_label.c index f9c5396717..408f04f540 100644 --- a/bacula/src/dird/ua_label.c +++ b/bacula/src/dird/ua_label.c @@ -167,7 +167,7 @@ int update_slots(UAContext *ua) } 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) { @@ -508,7 +508,7 @@ static void label_from_barcodes(UAContext *ua) 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; } @@ -540,7 +540,7 @@ static void label_from_barcodes(UAContext *ua) 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 */ diff --git a/bacula/src/dird/ua_output.c b/bacula/src/dird/ua_output.c index 09f44df8b4..e68100bcf4 100644 --- a/bacula/src/dird/ua_output.c +++ b/bacula/src/dird/ua_output.c @@ -256,20 +256,20 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) /* Scan arguments looking for things to do */ for (i=1; iargc; 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) { @@ -279,21 +279,21 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) } /* 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; jargc; 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; @@ -304,15 +304,15 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) } /* 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; jargc; 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; @@ -326,24 +326,24 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) } /* 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; jargc; 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; @@ -360,7 +360,7 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) uint32_t *ids; /* Is a specific pool wanted? */ for (i=1; iargc; 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; @@ -391,7 +391,7 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) 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; @@ -400,10 +400,10 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) 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])); diff --git a/bacula/src/dird/ua_prune.c b/bacula/src/dird/ua_prune.c index 840902e945..18641bbedc 100644 --- a/bacula/src/dird/ua_prune.c +++ b/bacula/src/dird/ua_prune.c @@ -499,14 +499,14 @@ int prune_volume(UAContext *ua, MEDIA_DBR *mr) 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); diff --git a/bacula/src/dird/ua_purge.c b/bacula/src/dird/ua_purge.c index df739c9686..c5d969425c 100644 --- a/bacula/src/dird/ua_purge.c +++ b/bacula/src/dird/ua_purge.c @@ -229,7 +229,7 @@ int purgecmd(UAContext *ua, const char *cmd) } /* 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); } @@ -485,7 +485,7 @@ int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *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)); @@ -552,7 +552,7 @@ int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *mr) } 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)); diff --git a/bacula/src/dird/ua_query.c b/bacula/src/dird/ua_query.c index fd55b19d32..ba8cd81534 100644 --- a/bacula/src/dird/ua_query.c +++ b/bacula/src/dird/ua_query.c @@ -56,7 +56,7 @@ int querycmd(UAContext *ua, const char *cmd) 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; } @@ -252,7 +252,7 @@ int sqlquerycmd(UAContext *ua, const char *cmd) 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); diff --git a/bacula/src/dird/ua_restore.c b/bacula/src/dird/ua_restore.c index ef8d764595..a0fde9b6aa 100644 --- a/bacula/src/dird/ua_restore.c +++ b/bacula/src/dird/ua_restore.c @@ -186,8 +186,12 @@ int restore_cmd(UAContext *ua, const char *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; @@ -225,7 +229,7 @@ int restore_cmd(UAContext *ua, const char *cmd) 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); @@ -269,7 +273,7 @@ static int get_client_name(UAContext *ua, RESTORE_CTX *rx) 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; @@ -302,18 +306,18 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) 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[] = { @@ -616,8 +620,12 @@ static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx) 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)); @@ -903,8 +911,8 @@ static bool build_directory_tree(UAContext *ua, RESTORE_CTX *rx) } } 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 { @@ -919,14 +927,31 @@ static bool build_directory_tree(UAContext *ua, RESTORE_CTX *rx) } } 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); } diff --git a/bacula/src/dird/ua_run.c b/bacula/src/dird/ua_run.c index 21d15d7628..2373114527 100644 --- a/bacula/src/dird/ua_run.c +++ b/bacula/src/dird/ua_run.c @@ -461,7 +461,7 @@ int run_cmd(UAContext *ua, const char *cmd) 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; } @@ -484,7 +484,7 @@ try_again: } /* Run without prompting? */ - if (ua->batch || find_arg(ua, _("yes")) > 0) { + if (ua->batch || find_arg(ua, N_("yes")) > 0) { goto start_job; } diff --git a/bacula/src/dird/ua_select.c b/bacula/src/dird/ua_select.c index 48d09485b4..5409ee49b3 100644 --- a/bacula/src/dird/ua_select.c +++ b/bacula/src/dird/ua_select.c @@ -285,8 +285,8 @@ CLIENT *get_client_resource(UAContext *ua) int i; for (i=1; iargc; 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; } @@ -428,7 +428,7 @@ bool select_pool_dbr(UAContext *ua, POOL_DBR *pr) uint32_t *ids; for (i=1; iargc; 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)) { @@ -612,10 +612,10 @@ int get_job_dbr(UAContext *ua, JOB_DBR *jr) int i; for (i=1; iargc; 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; @@ -785,12 +785,12 @@ STORE *get_storage_resource(UAContext *ua, int use_default) 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]); @@ -804,7 +804,7 @@ STORE *get_storage_resource(UAContext *ua, int use_default) 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; @@ -826,7 +826,7 @@ STORE *get_storage_resource(UAContext *ua, int use_default) 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)) { diff --git a/bacula/src/dird/ua_status.c b/bacula/src/dird/ua_status.c index 7a6e172eda..3143716597 100644 --- a/bacula/src/dird/ua_status.c +++ b/bacula/src/dird/ua_status.c @@ -98,14 +98,14 @@ int status_cmd(UAContext *ua, const char *cmd) Dmsg1(20, "status:%s:\n", cmd); for (i=1; iargc; 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); @@ -124,10 +124,10 @@ int status_cmd(UAContext *ua, const char *cmd) 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; @@ -242,11 +242,16 @@ static void do_director_status(UAContext *ua) { 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"), @@ -269,7 +274,7 @@ static void do_director_status(UAContext *ua) * List terminated jobs */ list_terminated_jobs(ua); - bsendmsg(ua, "====\n"); + bsendmsg(ua, _("====\n")); } static void do_storage_status(UAContext *ua, STORE *store) @@ -474,7 +479,7 @@ static void list_scheduled_jobs(UAContext *ua) if (num_jobs == 0) { bsendmsg(ua, _("No Scheduled Jobs.\n")); } - bsendmsg(ua, "====\n"); + bsendmsg(ua, _("====\n")); Dmsg0(200, "Leave list_sched_jobs_runs()\n"); } @@ -636,7 +641,7 @@ static void list_running_jobs(UAContext *ua) } free_jcr(jcr); } - bsendmsg(ua, "====\n"); + bsendmsg(ua, _("====\n")); Dmsg0(200, "leave list_run_jobs()\n"); } @@ -684,23 +689,23 @@ static void list_terminated_jobs(UAContext *ua) } 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"), @@ -711,6 +716,6 @@ static void list_terminated_jobs(UAContext *ua) termstat, dt, JobName); } - bsendmsg(ua, "\n"); + bsendmsg(ua, _("\n")); unlock_last_jobs_list(); } diff --git a/bacula/src/dird/ua_tree.c b/bacula/src/dird/ua_tree.c index 9174b27b2d..ed999b7991 100644 --- a/bacula/src/dird/ua_tree.c +++ b/bacula/src/dird/ua_tree.c @@ -305,9 +305,11 @@ static int markcmd(UAContext *ua, TREE_CTX *tree) } 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; } @@ -334,9 +336,11 @@ static int markdircmd(UAContext *ua, TREE_CTX *tree) } 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; } @@ -356,7 +360,7 @@ static int countcmd(UAContext *ua, TREE_CTX *tree) } } } - 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; @@ -495,7 +499,7 @@ static int dircmd(UAContext *ua, TREE_CTX *tree) 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; } @@ -576,7 +580,7 @@ static int estimatecmd(UAContext *ua, TREE_CTX *tree) } } } - 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; } @@ -589,7 +593,7 @@ static int helpcmd(UAContext *ua, TREE_CTX *tree) bsendmsg(ua, _(" Command Description\n ======= ===========\n")); for (i=0; icmd, sizeof(mr.VolStatus)) < 0) { return 1; } @@ -595,7 +595,7 @@ static int update_volume(UAContext *ua) update_all_vols_from_pool(ua); return 1; default: /* Done or error */ - bsendmsg(ua, "Selection done.\n"); + bsendmsg(ua, _("Selection done.\n")); return 1; } } diff --git a/bacula/src/dird/verify.c b/bacula/src/dird/verify.c index bf4ef9cd69..20261083c8 100644 --- a/bacula/src/dird/verify.c +++ b/bacula/src/dird/verify.c @@ -412,7 +412,7 @@ void verify_cleanup(JCR *jcr, int TermCode) 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" @@ -428,6 +428,8 @@ void verify_cleanup(JCR *jcr, int TermCode) " FD termination status: %s\n" " SD termination status: %s\n" " Termination: %s\n\n"), + VERSION, + LSMDATE, edt, jcr->jr.JobId, jcr->jr.Job, @@ -445,7 +447,7 @@ void verify_cleanup(JCR *jcr, int TermCode) 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" @@ -459,6 +461,8 @@ void verify_cleanup(JCR *jcr, int TermCode) " Non-fatal FD errors: %d\n" " FD termination status: %s\n" " Termination: %s\n\n"), + VERSION, + LSMDATE, edt, jcr->jr.JobId, jcr->jr.Job, diff --git a/bacula/src/filed/authenticate.c b/bacula/src/filed/authenticate.c index d44655d13a..186c0afc74 100644 --- a/bacula/src/filed/authenticate.c +++ b/bacula/src/filed/authenticate.c @@ -46,12 +46,12 @@ static int authenticate(int rcode, BSOCK *bs, JCR* jcr) 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); @@ -63,7 +63,7 @@ static int authenticate(int rcode, BSOCK *bs, JCR* jcr) 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); @@ -77,7 +77,7 @@ static int authenticate(int rcode, BSOCK *bs, JCR* jcr) } 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"), @@ -138,7 +138,7 @@ static int authenticate(int rcode, BSOCK *bs, JCR* jcr) 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; } @@ -234,7 +234,7 @@ int authenticate_storagedaemon(JCR *jcr) 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; } diff --git a/bacula/src/filed/backup.c b/bacula/src/filed/backup.c index f030b007e5..857fb499bc 100644 --- a/bacula/src/filed/backup.c +++ b/bacula/src/filed/backup.c @@ -532,7 +532,7 @@ static bool read_and_send_acl(JCR *jcr, int acltype, int stream) 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) { diff --git a/bacula/src/filed/filed.c b/bacula/src/filed/filed.c index 8fdbea3044..fd36fa3df5 100644 --- a/bacula/src/filed/filed.c +++ b/bacula/src/filed/filed.c @@ -58,9 +58,9 @@ static pthread_t server_tid; 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 use as configuration file\n" " -dnn set debug level to nn\n" @@ -72,7 +72,7 @@ static void usage() " -u userid\n" " -v verbose user messages\n" " -? print this message.\n" -"\n")); +"\n"), VERSION, BDATE); exit(1); } @@ -93,9 +93,12 @@ int main (int argc, char *argv[]) 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); diff --git a/bacula/src/filed/filed_conf.c b/bacula/src/filed/filed_conf.c index cc4a3d4c76..1490b59a8e 100644 --- a/bacula/src/filed/filed_conf.c +++ b/bacula/src/filed/filed_conf.c @@ -265,7 +265,7 @@ void free_resource(RES *sres, int type) 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) { @@ -313,13 +313,13 @@ void save_resource(int type, RES_ITEM *items, int pass) /* 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; diff --git a/bacula/src/filed/job.c b/bacula/src/filed/job.c index 39518d1f43..e30ed6720d 100644 --- a/bacula/src/filed/job.c +++ b/bacula/src/filed/job.c @@ -320,7 +320,7 @@ static int cancel_cmd(JCR *jcr) 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); @@ -358,7 +358,7 @@ static int setdebug_cmd(JCR *jcr) 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; @@ -375,7 +375,7 @@ static int estimate_cmd(JCR *jcr) 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); @@ -419,7 +419,7 @@ static int runbefore_cmd(JCR *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; } @@ -432,7 +432,7 @@ static int runbefore_cmd(JCR *jcr) 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; } } @@ -446,7 +446,7 @@ static int runafter_cmd(JCR *jcr) 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; } @@ -675,7 +675,7 @@ static void add_fileset(JCR *jcr, const char *item) 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; } @@ -729,7 +729,7 @@ static void add_fileset(JCR *jcr, const char *item) 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; } @@ -898,7 +898,7 @@ static void set_options(findFOPTS *fo, const char *opts) 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; } } @@ -1065,7 +1065,7 @@ static int level_cmd(JCR *jcr) 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; } @@ -1098,7 +1098,7 @@ static int session_cmd(JCR *jcr) &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; } @@ -1328,7 +1328,7 @@ static int verify_cmd(JCR *jcr) 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; } @@ -1343,7 +1343,7 @@ static int verify_cmd(JCR *jcr) } 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; } @@ -1382,7 +1382,7 @@ static int verify_cmd(JCR *jcr) 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; } diff --git a/bacula/src/filed/pythonfd.c b/bacula/src/filed/pythonfd.c index bf2646973d..4ba9c9c5ad 100644 --- a/bacula/src/filed/pythonfd.c +++ b/bacula/src/filed/pythonfd.c @@ -99,7 +99,7 @@ PyObject *job_getattr(PyObject *self, char *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; } for (i=0; getvars[i].name; i++) { @@ -130,7 +130,7 @@ PyObject *job_getattr(PyObject *self, char *attrname) 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; @@ -147,13 +147,13 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) 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; } @@ -165,14 +165,14 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) } } 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; } } @@ -181,7 +181,7 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) 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); @@ -217,7 +217,7 @@ static PyObject *set_job_events(PyObject *self, PyObject *arg) } 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 */ diff --git a/bacula/src/filed/restore.c b/bacula/src/filed/restore.c index 269be4ae66..e2686298d2 100644 --- a/bacula/src/filed/restore.c +++ b/bacula/src/filed/restore.c @@ -305,7 +305,7 @@ void do_restore(JCR *jcr) 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; } @@ -344,7 +344,7 @@ void do_restore(JCR *jcr) 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++; @@ -356,7 +356,7 @@ void do_restore(JCR *jcr) 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++; @@ -447,23 +447,23 @@ ok_out: 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 diff --git a/bacula/src/filed/status.c b/bacula/src/filed/status.c index 3e86e6e0c5..daa6b15e32 100755 --- a/bacula/src/filed/status.c +++ b/bacula/src/filed/status.c @@ -64,8 +64,8 @@ static void do_status(void sendit(const char *msg, int len, void *sarg), void *a 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"), @@ -236,23 +236,23 @@ static void list_terminated_jobs(void sendit(const char *msg, int len, void *sa } 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)); @@ -272,7 +272,7 @@ static void list_terminated_jobs(void sendit(const char *msg, int len, void *sa dt, JobName); sendit(buf, strlen(buf), arg); } - sendit("====\n", 5, arg); + sendit(_("====\n"), 5, arg); unlock_last_jobs_list(); } @@ -319,7 +319,7 @@ int qstatus_cmd(JCR *jcr) 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; @@ -345,7 +345,7 @@ int qstatus_cmd(JCR *jcr) 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; diff --git a/bacula/src/filed/verify.c b/bacula/src/filed/verify.c index ec1b541251..c25f8294cc 100644 --- a/bacula/src/filed/verify.c +++ b/bacula/src/filed/verify.c @@ -226,7 +226,7 @@ static int verify_file(FF_PKT *ff_pkt, void *pkt, bool top_level) 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)) { diff --git a/bacula/src/findlib/bfile.c b/bacula/src/findlib/bfile.c index 7ec967ab67..4dc9df5392 100644 --- a/bacula/src/findlib/bfile.c +++ b/bacula/src/findlib/bfile.c @@ -64,33 +64,33 @@ const char *stream_to_ascii(int stream) 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; diff --git a/bacula/src/findlib/create_file.c b/bacula/src/findlib/create_file.c index 9144bfc10a..8733c03e36 100644 --- a/bacula/src/findlib/create_file.c +++ b/bacula/src/findlib/create_file.c @@ -167,7 +167,7 @@ int create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace) } 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); } /* @@ -268,7 +268,7 @@ int create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace) 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; @@ -319,7 +319,7 @@ int create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace) */ 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; diff --git a/bacula/src/findlib/enable_priv.c b/bacula/src/findlib/enable_priv.c index a5a1e388ff..38b69462e5 100755 --- a/bacula/src/findlib/enable_priv.c +++ b/bacula/src/findlib/enable_priv.c @@ -82,7 +82,7 @@ enable_priv(JCR *jcr, HANDLE hToken, char *name, int ignore_errors) 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); } diff --git a/bacula/src/findlib/match.c b/bacula/src/findlib/match.c index 762c69e4a3..7daf08430d 100644 --- a/bacula/src/findlib/match.c +++ b/bacula/src/findlib/match.c @@ -181,7 +181,7 @@ void add_fname_to_include_list(FF_PKT *ff, int prefixed, const char *fname) 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; } } diff --git a/bacula/src/findlib/save-cwd.c b/bacula/src/findlib/save-cwd.c index 4ce4678772..6cf2983dd2 100644 --- a/bacula/src/findlib/save-cwd.c +++ b/bacula/src/findlib/save-cwd.c @@ -45,7 +45,7 @@ save_cwd(struct saved_cwd *cwd) 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; } @@ -59,7 +59,7 @@ save_cwd(struct saved_cwd *cwd) 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; @@ -81,7 +81,7 @@ save_cwd(struct saved_cwd *cwd) 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; } @@ -99,12 +99,28 @@ restore_cwd(const struct saved_cwd *cwd, const char *dest, const char *from) 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; diff --git a/bacula/src/gnome2-console/console.c b/bacula/src/gnome2-console/console.c index e2223c49a2..681950fbbb 100644 --- a/bacula/src/gnome2-console/console.c +++ b/bacula/src/gnome2-console/console.c @@ -86,14 +86,14 @@ static void usage() { 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 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); } @@ -200,6 +200,10 @@ int main(int argc, char *argv[]) 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); @@ -491,7 +495,7 @@ int connect_to_director(gpointer data) /* 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, @@ -513,7 +517,7 @@ int connect_to_director(gpointer data) /* 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, @@ -532,7 +536,7 @@ int connect_to_director(gpointer data) } - 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; @@ -544,7 +548,7 @@ int connect_to_director(gpointer data) return 0; } - set_status(" Initializing ..."); + set_status(_(" Initializing ...")); bnet_fsend(UA_sock, "autodisplay on"); @@ -580,7 +584,7 @@ int connect_to_director(gpointer data) 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; } @@ -743,7 +747,7 @@ void set_statusf(const char *fmt, ...) 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(); } diff --git a/bacula/src/gnome2-console/console_conf.c b/bacula/src/gnome2-console/console_conf.c index e0601dcc85..400ae7726c 100644 --- a/bacula/src/gnome2-console/console_conf.c +++ b/bacula/src/gnome2-console/console_conf.c @@ -119,7 +119,7 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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 */ @@ -128,18 +128,18 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm } 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); @@ -217,7 +217,7 @@ void free_resource(RES *sres, int type) } 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); @@ -243,7 +243,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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]); } } @@ -265,7 +265,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; } @@ -295,7 +295,7 @@ void save_resource(int type, RES_ITEM *items, int pass) size = sizeof(CONRES); break; default: - printf("Unknown resource type %d\n", type); + printf(_("Unknown resource type %d\n"), type); error = 1; break; } diff --git a/bacula/src/gnome2-console/interface.c b/bacula/src/gnome2-console/interface.c index ec3f830e13..86b61c6806 100644 --- a/bacula/src/gnome2-console/interface.c +++ b/bacula/src/gnome2-console/interface.c @@ -29,15 +29,15 @@ 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 @@ -90,7 +90,7 @@ static GnomeUIInfo edit1_menu_uiinfo[] = 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, @@ -126,35 +126,35 @@ static GnomeUIInfo help1_menu_uiinfo[] = 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, @@ -562,7 +562,7 @@ create_SelectDirectorDialog (void) 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); @@ -744,7 +744,7 @@ create_RunDialog (void) 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); @@ -774,7 +774,7 @@ create_RunDialog (void) 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); @@ -854,7 +854,7 @@ create_RunDialog (void) 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); @@ -883,7 +883,7 @@ create_RunDialog (void) 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); @@ -912,7 +912,7 @@ create_RunDialog (void) 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); @@ -940,7 +940,7 @@ create_RunDialog (void) 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); @@ -958,7 +958,7 @@ create_RunDialog (void) 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); @@ -976,7 +976,7 @@ create_RunDialog (void) 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); @@ -994,11 +994,11 @@ create_RunDialog (void) 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); @@ -1105,7 +1105,7 @@ create_RunDialog (void) 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), @@ -1270,7 +1270,7 @@ create_restore_file_selection (void) 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); @@ -1468,7 +1468,7 @@ create_label_dialog (void) 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); @@ -1661,7 +1661,7 @@ create_RestoreDialog (void) 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); @@ -1689,7 +1689,7 @@ create_RestoreDialog (void) 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); @@ -1717,7 +1717,7 @@ create_RestoreDialog (void) 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); @@ -1745,7 +1745,7 @@ create_RestoreDialog (void) 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); @@ -1762,11 +1762,11 @@ create_RestoreDialog (void) 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); diff --git a/bacula/src/gnome2-console/restore.c b/bacula/src/gnome2-console/restore.c index 6c7d9ea83f..c7cb31e195 100755 --- a/bacula/src/gnome2-console/restore.c +++ b/bacula/src/gnome2-console/restore.c @@ -118,7 +118,7 @@ on_restore_remove_button_clicked(GtkButton *button, gpointer user_data) */ 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) { diff --git a/bacula/src/gnome2-console/support.c b/bacula/src/gnome2-console/support.c index 27ea655a74..1bc775a00e 100644 --- a/bacula/src/gnome2-console/support.c +++ b/bacula/src/gnome2-console/support.c @@ -38,7 +38,7 @@ lookup_widget (GtkWidget *widget, 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; } @@ -89,7 +89,7 @@ create_pixbuf (const gchar *filename) 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); } diff --git a/bacula/src/lib/address_conf.c b/bacula/src/lib/address_conf.c index 81fe37a800..81a7b115bd 100644 --- a/bacula/src/lib/address_conf.c +++ b/bacula/src/lib/address_conf.c @@ -282,7 +282,7 @@ static int add_address(dlist **out, IPADDR::i_type type, unsigned short defaultp } 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; } } @@ -305,7 +305,7 @@ static int add_address(dlist **out, IPADDR::i_type type, unsigned short defaultp 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; } } @@ -315,7 +315,7 @@ static int add_address(dlist **out, IPADDR::i_type type, unsigned short defaultp 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; } diff --git a/bacula/src/lib/berrno.c b/bacula/src/lib/berrno.c index 922a032f07..d3a73f331e 100644 --- a/bacula/src/lib/berrno.c +++ b/bacula/src/lib/berrno.c @@ -63,17 +63,17 @@ const char *berrno::strerror() 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 */ @@ -81,7 +81,7 @@ const char *berrno::strerror() } 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 diff --git a/bacula/src/lib/bget_msg.c b/bacula/src/lib/bget_msg.c index 18e8fc26df..e0084533ff 100644 --- a/bacula/src/lib/bget_msg.c +++ b/bacula/src/lib/bget_msg.c @@ -88,11 +88,11 @@ int bget_msg(BSOCK *sock) 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; } } diff --git a/bacula/src/lib/bnet.c b/bacula/src/lib/bnet.c index 48bfcdefc8..da653f43fb 100644 --- a/bacula/src/lib/bnet.c +++ b/bacula/src/lib/bnet.c @@ -604,22 +604,22 @@ static const char *gethost_strerror() 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; } @@ -754,7 +754,7 @@ static BSOCK *bnet_open(JCR * jcr, const char *name, char *host, char *service, */ 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); @@ -774,7 +774,7 @@ static BSOCK *bnet_open(JCR * jcr, const char *name, char *host, char *service, 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; } @@ -838,8 +838,9 @@ BSOCK *bnet_connect(JCR * jcr, int retry_interval, int max_retry_time, 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; @@ -983,13 +984,13 @@ int bnet_set_nonblocking (BSOCK *bsock) { /* 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; @@ -1016,13 +1017,13 @@ int bnet_set_blocking (BSOCK *bsock) { /* 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; @@ -1046,7 +1047,7 @@ void bnet_restore_blocking (BSOCK *bsock, int flags) { #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); @@ -1100,7 +1101,7 @@ const char *bnet_sig_to_ascii(BSOCK * bs) 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; } } diff --git a/bacula/src/lib/bnet_server.c b/bacula/src/lib/bnet_server.c index c2cad7deaa..f94bc710e8 100644 --- a/bacula/src/lib/bnet_server.c +++ b/bacula/src/lib/bnet_server.c @@ -121,7 +121,7 @@ bnet_thread_server(dlist *addrs, int max_clients, workq_t *client_wq, 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); @@ -375,14 +375,14 @@ BSOCK *bnet_accept(BSOCK * bsock, char *who) 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 */ } diff --git a/bacula/src/lib/bpipe.c b/bacula/src/lib/bpipe.c index 03b7e35017..03a1ee1a7f 100644 --- a/bacula/src/lib/bpipe.c +++ b/bacula/src/lib/bpipe.c @@ -279,7 +279,7 @@ int run_program(char *prog, int wait, POOLMEM *results) * 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")); } } } @@ -354,7 +354,7 @@ int run_program_full_output(char *prog, int wait, POOLMEM *results) 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; } diff --git a/bacula/src/lib/bshm.c b/bacula/src/lib/bshm.c index ade0e4b8db..4ba4db1658 100644 --- a/bacula/src/lib/bshm.c +++ b/bacula/src/lib/bshm.c @@ -66,7 +66,7 @@ void shm_create(BSHM *shm) Dmsg1(110, "shm_create size=%d\n", shm->size); for (i=0; isize, 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; } @@ -74,7 +74,7 @@ void shm_create(BSHM *shm) 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); @@ -99,7 +99,7 @@ void *shm_open(BSHM *shm) 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; @@ -120,7 +120,7 @@ void shm_close(BSHM *shm) #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 @@ -136,7 +136,7 @@ void shm_destroy(BSHM *shm) #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 diff --git a/bacula/src/lib/bsys.c b/bacula/src/lib/bsys.c index be6582b355..d41d971077 100644 --- a/bacula/src/lib/bsys.c +++ b/bacula/src/lib/bsys.c @@ -393,7 +393,7 @@ void b_memset(const char *file, int line, void *mem, int val, size_t num) { /* 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); } @@ -532,7 +532,7 @@ void write_state_file(char *dir, const char *progname, int port) 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; } @@ -549,7 +549,7 @@ void write_state_file(char *dir, const char *progname, int port) 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: diff --git a/bacula/src/lib/btimers.c b/bacula/src/lib/btimers.c index 3023677f52..3f530c6fc2 100644 --- a/bacula/src/lib/btimers.c +++ b/bacula/src/lib/btimers.c @@ -236,7 +236,7 @@ static btimer_t *btimer_start_common(uint32_t wait) 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); diff --git a/bacula/src/lib/cram-md5.c b/bacula/src/lib/cram-md5.c index 1eb58bb552..540ae5b4af 100644 --- a/bacula/src/lib/cram-md5.c +++ b/bacula/src/lib/cram-md5.c @@ -77,7 +77,7 @@ int cram_md5_auth(BSOCK *bs, char *password, int tls_local_need) 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; @@ -102,7 +102,7 @@ int cram_md5_get_auth(BSOCK *bs, char *password, int *tls_remote_need) 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; } diff --git a/bacula/src/lib/daemon.c b/bacula/src/lib/daemon.c index cd0545a61c..55ce00b6bc 100644 --- a/bacula/src/lib/daemon.c +++ b/bacula/src/lib/daemon.c @@ -55,7 +55,7 @@ daemon_start() 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 */ diff --git a/bacula/src/lib/events.c b/bacula/src/lib/events.c index 187793e2ea..861c8c8b78 100644 --- a/bacula/src/lib/events.c +++ b/bacula/src/lib/events.c @@ -158,7 +158,7 @@ void FillEventsBox(HWND hwnd, int idlist) 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; } diff --git a/bacula/src/lib/jcr.c b/bacula/src/lib/jcr.c index a5e878303d..fbb1356ac8 100755 --- a/bacula/src/lib/jcr.c +++ b/bacula/src/lib/jcr.c @@ -274,7 +274,7 @@ static void remove_jcr(JCR *jcr) { 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"); diff --git a/bacula/src/lib/lex.c b/bacula/src/lib/lex.c index 01ab91ad60..a9925f2cd4 100644 --- a/bacula/src/lib/lex.c +++ b/bacula/src/lib/lex.c @@ -105,7 +105,7 @@ LEX *lex_close_file(LEX *lf) 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); @@ -178,7 +178,7 @@ LEX *lex_open_file(LEX *lf, const char *filename, LEX_ERROR_HANDLER *scan_error) 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) { @@ -241,13 +241,13 @@ static void begin_str(LEX *lf, int ch) 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 "??????"; } } diff --git a/bacula/src/lib/mem_pool.c b/bacula/src/lib/mem_pool.c index f5c2b5f11e..8b0a502dfb 100644 --- a/bacula/src/lib/mem_pool.c +++ b/bacula/src/lib/mem_pool.c @@ -97,7 +97,7 @@ POOLMEM *sm_get_pool_memory(const char *fname, int lineno, int pool) 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) { @@ -115,7 +115,7 @@ POOLMEM *sm_get_pool_memory(const char *fname, int lineno, int pool) 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; @@ -135,7 +135,7 @@ POOLMEM *sm_get_memory(const char *fname, int lineno, int32_t size) 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; @@ -170,7 +170,7 @@ POOLMEM *sm_realloc_pool_memory(const char *fname, int lineno, POOLMEM *obuf, in 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; @@ -241,7 +241,7 @@ POOLMEM *get_pool_memory(int 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; @@ -261,7 +261,7 @@ POOLMEM *get_memory(int32_t size) 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; @@ -299,7 +299,7 @@ POOLMEM *realloc_pool_memory(POOLMEM *obuf, int32_t size) 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; @@ -518,7 +518,7 @@ void POOL_MEM::realloc_pm(int32_t size) 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; diff --git a/bacula/src/lib/message.c b/bacula/src/lib/message.c index c641983ae0..d4810b710a 100755 --- a/bacula/src/lib/message.c +++ b/bacula/src/lib/message.c @@ -369,13 +369,13 @@ static BPIPE *open_mail_pipe(JCR *jcr, POOLMEM *&cmd, DEST *d) 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; @@ -428,7 +428,7 @@ void close_msg(JCR *jcr) } 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"); @@ -440,7 +440,7 @@ void close_msg(JCR *jcr) } 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()); } /* @@ -664,7 +664,7 @@ void dispatch_message(JCR *jcr, int type, time_t mtime, char *msg) 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); @@ -686,7 +686,7 @@ void dispatch_message(JCR *jcr, int type, time_t mtime, char *msg) 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; @@ -702,7 +702,7 @@ void dispatch_message(JCR *jcr, int type, time_t mtime, char *msg) 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; @@ -930,30 +930,30 @@ e_msg(const char *file, int line, int type, int level, const char *fmt,...) } 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); @@ -1029,28 +1029,28 @@ Jmsg(JCR *jcr, int type, time_t mtime, const char *fmt,...) } 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); diff --git a/bacula/src/lib/parse_conf.c b/bacula/src/lib/parse_conf.c index 2765489552..18a103a65e 100755 --- a/bacula/src/lib/parse_conf.c +++ b/bacula/src/lib/parse_conf.c @@ -696,7 +696,7 @@ void store_yesno(LEX *lc, RES_ITEM *item, int index, int pass) } 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); @@ -720,7 +720,7 @@ void store_label(LEX *lc, RES_ITEM *item, int index, int pass) } } 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); diff --git a/bacula/src/lib/pythonlib.c b/bacula/src/lib/pythonlib.c index 884727193d..34d738a6cf 100644 --- a/bacula/src/lib/pythonlib.c +++ b/bacula/src/lib/pythonlib.c @@ -105,12 +105,12 @@ void init_python_interpreter(const char *progname, const char *scripts, 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 */ @@ -122,12 +122,12 @@ void init_python_interpreter(const char *progname, const char *scripts, 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(); @@ -227,7 +227,7 @@ int generate_daemon_event(JCR *jcr, const char *event) /* 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; @@ -240,7 +240,7 @@ int generate_daemon_event(JCR *jcr, const char *event) 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; } @@ -264,7 +264,7 @@ int generate_daemon_event(JCR *jcr, const char *event) 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 */ @@ -279,7 +279,7 @@ int generate_daemon_event(JCR *jcr, const char *event) } 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: diff --git a/bacula/src/lib/regex.c b/bacula/src/lib/regex.c index 40e4c0d492..c8634e1fb1 100644 --- a/bacula/src/lib/regex.c +++ b/bacula/src/lib/regex.c @@ -1037,55 +1037,55 @@ weak_alias (__re_set_syntax, re_set_syntax) 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[] = diff --git a/bacula/src/lib/res.c b/bacula/src/lib/res.c index 72b6775687..83408ba7be 100644 --- a/bacula/src/lib/res.c +++ b/bacula/src/lib/res.c @@ -63,7 +63,7 @@ void b_LockRes(const char *file, int line) } #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++; @@ -73,7 +73,7 @@ void b_UnlockRes(const char *file, int line) { 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--; diff --git a/bacula/src/lib/rwlock.c b/bacula/src/lib/rwlock.c index 16ce457fb0..d66a5cc983 100644 --- a/bacula/src/lib/rwlock.c +++ b/bacula/src/lib/rwlock.c @@ -286,11 +286,11 @@ int rwl_writeunlock(brwlock_t *rwl) 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 */ @@ -355,14 +355,14 @@ void *thread_routine(void *arg) 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 { /* @@ -372,14 +372,14 @@ void *thread_routine(void *arg) */ 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++; @@ -388,7 +388,7 @@ void *thread_routine(void *arg) } } 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; @@ -420,7 +420,7 @@ int main (int argc, char *argv[]) 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)); } } @@ -435,7 +435,7 @@ int main (int argc, char *argv[]) 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)); } } @@ -446,10 +446,10 @@ int main (int argc, char *argv[]) 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); } @@ -459,12 +459,12 @@ int main (int argc, char *argv[]) */ 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; } @@ -536,13 +536,13 @@ void *thread_routine (void *arg) 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", @@ -597,7 +597,7 @@ int main (int argc, char *argv[]) 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")); } /* @@ -607,10 +607,10 @@ int main (int argc, char *argv[]) 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); @@ -621,7 +621,7 @@ int main (int argc, char *argv[]) */ 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); } diff --git a/bacula/src/lib/semlock.c b/bacula/src/lib/semlock.c index e20d77f534..41273819e7 100644 --- a/bacula/src/lib/semlock.c +++ b/bacula/src/lib/semlock.c @@ -182,7 +182,7 @@ int sem_unlock(semlock_t *sem) } 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 */ @@ -245,14 +245,14 @@ void *thread_routine(void *arg) 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 { /* @@ -262,14 +262,14 @@ void *thread_routine(void *arg) */ 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++; @@ -278,7 +278,7 @@ void *thread_routine(void *arg) } } 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; @@ -310,7 +310,7 @@ int main (int argc, char *argv[]) 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)); } } @@ -325,7 +325,7 @@ int main (int argc, char *argv[]) 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)); } } @@ -336,10 +336,10 @@ int main (int argc, char *argv[]) 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); } @@ -349,12 +349,12 @@ int main (int argc, char *argv[]) */ 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; } @@ -426,13 +426,13 @@ void *thread_routine (void *arg) 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", @@ -487,7 +487,7 @@ int main (int argc, char *argv[]) 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")); } /* @@ -497,10 +497,10 @@ int main (int argc, char *argv[]) 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); @@ -511,7 +511,7 @@ int main (int argc, char *argv[]) */ 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); } diff --git a/bacula/src/lib/signal.c b/bacula/src/lib/signal.c index 83333deb58..f9be096f4d 100644 --- a/bacula/src/lib/signal.c +++ b/bacula/src/lib/signal.c @@ -58,7 +58,7 @@ static pid_t main_pid = 0; 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]; } @@ -84,7 +84,7 @@ extern "C" void signal_handler(int 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 @@ -97,9 +97,9 @@ extern "C" void signal_handler(int sig) 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)); @@ -133,16 +133,16 @@ extern "C" void signal_handler(int sig) 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 */ @@ -157,7 +157,7 @@ extern "C" void signal_handler(int sig) 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"); @@ -165,7 +165,7 @@ extern "C" void signal_handler(int sig) 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 @@ -194,70 +194,70 @@ void init_signals(void terminate(int sig)) 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 diff --git a/bacula/src/lib/smartall.c b/bacula/src/lib/smartall.c index a6873dc53b..0f7c00fd5d 100644 --- a/bacula/src/lib/smartall.c +++ b/bacula/src/lib/smartall.c @@ -162,7 +162,7 @@ void sm_free(const char *file, int line, void *fp) 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; @@ -178,11 +178,11 @@ void sm_free(const char *file, int line, void *fp) 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 @@ -191,7 +191,7 @@ void sm_free(const char *file, int line, void *fp) 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; @@ -262,7 +262,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size) 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 @@ -303,7 +303,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size) 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; } @@ -364,12 +364,10 @@ void sm_dump(bool bufdump) 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; } @@ -378,7 +376,7 @@ void sm_dump(bool bufdump) 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); @@ -414,7 +412,7 @@ void sm_dump(bool bufdump) 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); } } @@ -444,26 +442,26 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump) 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) { diff --git a/bacula/src/lib/tls.c b/bacula/src/lib/tls.c index ae596b8d82..024b8c3034 100644 --- a/bacula/src/lib/tls.c +++ b/bacula/src/lib/tls.c @@ -413,7 +413,7 @@ TLS_CONNECTION *new_tls_connection (TLS_CONTEXT *ctx, int fd) 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); @@ -424,7 +424,7 @@ TLS_CONNECTION *new_tls_connection (TLS_CONTEXT *ctx, int fd) /* 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; } @@ -490,7 +490,7 @@ static inline bool openssl_bsock_session_start(BSOCK *bsock, bool server) 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: @@ -507,7 +507,7 @@ static inline bool openssl_bsock_session_start(BSOCK *bsock, bool server) break; default: /* Socket Error Occured */ - openssl_post_errors(M_ERROR, "Connect failure"); + openssl_post_errors(M_ERROR, _("Connect failure")); stat = false; goto cleanup; } @@ -713,7 +713,7 @@ static struct CRYPTO_dynlock_value *openssl_create_dynamic_mutex (const char *fi 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; @@ -733,7 +733,7 @@ static void openssl_destroy_dynamic_mutex (struct CRYPTO_dynlock_value *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); @@ -770,7 +770,7 @@ static int openssl_init_threads (void) 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; } } @@ -802,7 +802,7 @@ static void openssl_cleanup_threads (void) 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)); } } @@ -867,7 +867,7 @@ int init_tls (void) 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 */ diff --git a/bacula/src/lib/util.c b/bacula/src/lib/util.c index b592a21a6f..1d53dc2e22 100644 --- a/bacula/src/lib/util.c +++ b/bacula/src/lib/util.c @@ -543,7 +543,7 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to) if (jcr) { str = jcr->client_name; } else { - str = "*none*"; + str = _("*none*"); } break; case 'd': @@ -553,7 +553,7 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to) if (jcr) { str = job_status_to_str(jcr->JobStatus); } else { - str = "*none*"; + str = _("*none*"); } break; case 'i': @@ -561,21 +561,21 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to) 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': @@ -589,7 +589,7 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to) } str = name; } else { - str = "*none*"; + str = _("*none*"); } break; case 'r': @@ -599,14 +599,14 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to) 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': @@ -617,7 +617,7 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to) str = ""; } } else { - str = "*none*"; + str = _("*none*"); } break; default: diff --git a/bacula/src/lib/var.c b/bacula/src/lib/var.c index d9b58d7497..14a59227c1 100644 --- a/bacula/src/lib/var.c +++ b/bacula/src/lib/var.c @@ -2656,52 +2656,52 @@ var_format( /* 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 */ @@ -2710,7 +2710,7 @@ const char *var_strerror(var_t *var, var_rc_t rc) 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]; } diff --git a/bacula/src/lib/watchdog.c b/bacula/src/lib/watchdog.c index 985856dc39..7784681161 100755 --- a/bacula/src/lib/watchdog.c +++ b/bacula/src/lib/watchdog.c @@ -167,13 +167,13 @@ watchdog_t *new_watchdog(void) 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(); @@ -193,7 +193,7 @@ bool unregister_watchdog(watchdog_t *wd) 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(); @@ -310,7 +310,7 @@ static void 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)); } } @@ -324,7 +324,7 @@ static void wd_unlock() { 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)); } } diff --git a/bacula/src/stored/ansi_label.c b/bacula/src/stored/ansi_label.c index ef2e6561a9..b8e02b3a59 100644 --- a/bacula/src/stored/ansi_label.c +++ b/bacula/src/stored/ansi_label.c @@ -134,7 +134,7 @@ int read_ansi_ibm_label(DCR *dcr) *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; } } diff --git a/bacula/src/stored/append.c b/bacula/src/stored/append.c index b6ee3f1ce1..8f6e71bb61 100644 --- a/bacula/src/stored/append.c +++ b/bacula/src/stored/append.c @@ -70,7 +70,7 @@ bool do_append_data(JCR *jcr) 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()); @@ -79,7 +79,7 @@ bool do_append_data(JCR *jcr) 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 @@ -91,7 +91,7 @@ bool do_append_data(JCR *jcr) 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 */ @@ -246,7 +246,7 @@ bool do_append_data(JCR *jcr) 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")); } /* @@ -261,7 +261,7 @@ bool do_append_data(JCR *jcr) 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 */ @@ -273,7 +273,7 @@ bool do_append_data(JCR *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")); } if (!ok) { diff --git a/bacula/src/stored/askdir.c b/bacula/src/stored/askdir.c index d67880dfe5..992873a9b2 100644 --- a/bacula/src/stored/askdir.c +++ b/bacula/src/stored/askdir.c @@ -282,12 +282,12 @@ bool dir_update_volume_info(DCR *dcr, bool label) 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; } @@ -315,7 +315,7 @@ bool dir_update_volume_info(DCR *dcr, bool label) /* 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; } @@ -550,7 +550,6 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) bool dir_ask_sysop_to_mount_volume(DCR *dcr) { int stat = 0; - const char *msg; DEVICE *dev = dcr->dev; JCR *jcr = dcr->jcr; @@ -568,9 +567,8 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr) } 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); } diff --git a/bacula/src/stored/authenticate.c b/bacula/src/stored/authenticate.c index 1dac37c54e..d93f135996 100644 --- a/bacula/src/stored/authenticate.c +++ b/bacula/src/stored/authenticate.c @@ -49,12 +49,12 @@ static int authenticate(int rcode, BSOCK *bs, JCR* jcr) #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); @@ -65,7 +65,7 @@ static int authenticate(int rcode, BSOCK *bs, JCR* jcr) 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); @@ -80,7 +80,7 @@ static int authenticate(int rcode, BSOCK *bs, JCR* jcr) } // 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"), @@ -142,7 +142,7 @@ static int authenticate(int rcode, BSOCK *bs, JCR* jcr) 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; } @@ -174,7 +174,7 @@ int authenticate_director(JCR *jcr) 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; @@ -246,7 +246,7 @@ int authenticate_filed(JCR *jcr) 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; } diff --git a/bacula/src/stored/autochanger.c b/bacula/src/stored/autochanger.c index f7b9619bcc..9ab4a452e4 100644 --- a/bacula/src/stored/autochanger.c +++ b/bacula/src/stored/autochanger.c @@ -303,7 +303,7 @@ bool autochanger_cmd(DCR *dcr, BSOCK *dir, const char *cmd) 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; diff --git a/bacula/src/stored/bcopy.c b/bacula/src/stored/bcopy.c index efc70b9bc2..15766ac356 100644 --- a/bacula/src/stored/bcopy.c +++ b/bacula/src/stored/bcopy.c @@ -56,7 +56,7 @@ static void usage() { fprintf(stderr, _( "Copyright (C) 2002-2005 Kern Sibbald.\n" -"\nVersion: " VERSION " (" BDATE ")\n\n" +"\nVersion: %s (%s)\n\n" "Usage: bcopy [-d debug_level] \n" " -b bootstrap specify a bootstrap file\n" " -c specify configuration file\n" @@ -66,7 +66,7 @@ static void usage() " -p proceed inspite of errors\n" " -v verbose\n" " -w specify working directory (default /tmp)\n" -" -? print this message\n\n")); +" -? print this message\n\n"), VERSION, BDATE); exit(1); } @@ -77,6 +77,10 @@ int main (int argc, char *argv[]) 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); @@ -213,10 +217,10 @@ static bool record_cb(DCR *in_dcr, DEV_RECORD *rec) } 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++; @@ -240,10 +244,10 @@ static bool record_cb(DCR *in_dcr, DEV_RECORD *rec) } 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; @@ -283,7 +287,7 @@ void free_unused_volume(DCR *dcr) { } 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; diff --git a/bacula/src/stored/bextract.c b/bacula/src/stored/bextract.c index 2c45c97449..a882a883d3 100644 --- a/bacula/src/stored/bextract.c +++ b/bacula/src/stored/bextract.c @@ -66,9 +66,9 @@ pthread_cond_t wait_device_release = PTHREAD_COND_INITIALIZER; 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 \n" " -b specify a bootstrap file\n" " -c specify a configuration file\n" @@ -78,7 +78,7 @@ static void usage() " -p proceed inspite of I/O errors\n" " -v verbose\n" " -V specify Volume names (separated by |)\n" -" -? print this message\n\n"); +" -? print this message\n\n"), VERSION, BDATE); exit(1); } @@ -90,6 +90,10 @@ int main (int argc, char *argv[]) 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 */ @@ -120,7 +124,7 @@ int main (int argc, char *argv[]) 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); } @@ -135,7 +139,7 @@ int main (int argc, char *argv[]) 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); } @@ -170,7 +174,7 @@ int main (int argc, char *argv[]) argv += optind; if (argc != 2) { - Pmsg0(0, "Wrong number of arguments: \n"); + Pmsg0(0, _("Wrong number of arguments: \n")); usage(); } @@ -191,11 +195,11 @@ int main (int argc, char *argv[]) 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); @@ -219,11 +223,11 @@ static void do_extract(char *devname) /* 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); @@ -244,7 +248,7 @@ static void do_extract(char *devname) free_jcr(jcr); term_dev(dev); - printf("%u files restored.\n", num_files); + printf(_("%u files restored.\n"), num_files); return; } @@ -401,7 +405,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) 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; @@ -414,7 +418,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) } #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; } @@ -428,7 +432,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) 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; @@ -437,7 +441,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) /* 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; @@ -466,7 +470,7 @@ void free_unused_volume(DCR *dcr) { } 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; diff --git a/bacula/src/stored/block.c b/bacula/src/stored/block.c index bda9911ff5..1461f77714 100644 --- a/bacula/src/stored/block.c +++ b/bacula/src/stored/block.c @@ -75,8 +75,8 @@ void dump_block(DEV_BLOCK *b, const char *msg) 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)) { @@ -88,7 +88,7 @@ void dump_block(DEV_BLOCK *b, const char *msg) 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; @@ -504,7 +504,7 @@ bool write_block_to_dev(DCR *dcr) #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 @@ -515,7 +515,7 @@ bool write_block_to_dev(DCR *dcr) #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 @@ -681,8 +681,8 @@ static bool terminate_writing_volume(DCR *dcr) 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"); } diff --git a/bacula/src/stored/bls.c b/bacula/src/stored/bls.c index c67f8a3b9e..22845d6bc5 100644 --- a/bacula/src/stored/bls.c +++ b/bacula/src/stored/bls.c @@ -65,9 +65,9 @@ static BSR *bsr = NULL; 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] \n" " -b specify a bootstrap file\n" " -c specify a config file\n" @@ -81,7 +81,7 @@ static void usage() " -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); } @@ -95,6 +95,10 @@ int main (int argc, char *argv[]) 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 */ @@ -219,8 +223,8 @@ int main (int argc, char *argv[]) * 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); } @@ -298,7 +302,7 @@ static void do_blocks(char *infname) 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, @@ -307,7 +311,7 @@ static void do_blocks(char *infname) } 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); } } @@ -374,7 +378,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) 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); @@ -391,30 +395,30 @@ static void get_session_record(DEVICE *dev, DEV_RECORD *rec, SESSION_LABEL *sess 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); } } @@ -437,7 +441,7 @@ void free_unused_volume(DCR *dcr) { } 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; diff --git a/bacula/src/stored/bscan.c b/bacula/src/stored/bscan.c index a01236ef68..b46c66c273 100644 --- a/bacula/src/stored/bscan.c +++ b/bacula/src/stored/bscan.c @@ -107,7 +107,7 @@ static void usage() { fprintf(stderr, _( "Copyright (C) 2001-2005 Kern Sibbald.\n" -"\nVersion: " VERSION " (" BDATE ")\n\n" +"\nVersion: %s (%s)\n\n" "Usage: bscan [ options ] \n" " -b bootstrap specify a bootstrap file\n" " -c specify configuration file\n" @@ -124,7 +124,7 @@ static void usage() " -v verbose\n" " -V specify Volume names (separated by |)\n" " -w specify working directory (default from conf file)\n" -" -? print this message\n\n")); +" -? print this message\n\n"), VERSION, BDATE); exit(1); } @@ -134,6 +134,10 @@ int main (int argc, char *argv[]) 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); @@ -278,9 +282,14 @@ int main (int argc, char *argv[]) } 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); @@ -369,7 +378,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) 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; } @@ -1215,7 +1224,7 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr) 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; diff --git a/bacula/src/stored/btape.c b/bacula/src/stored/btape.c index 5882028073..dd73797be5 100644 --- a/bacula/src/stored/btape.c +++ b/bacula/src/stored/btape.c @@ -147,24 +147,28 @@ int main(int margc, char *margv[]) 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; @@ -173,11 +177,11 @@ int main(int margc, char *margv[]) 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"); @@ -244,11 +248,11 @@ int main(int margc, char *margv[]) /* 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); } @@ -333,7 +337,7 @@ static bool open_the_device() 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); @@ -354,19 +358,19 @@ static void labelcmd() 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); } /* @@ -380,28 +384,28 @@ static void readlabelcmd() 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; } @@ -419,9 +423,9 @@ static void loadcmd() { 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()); } /* @@ -430,10 +434,10 @@ static void loadcmd() 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()); } } @@ -460,10 +464,15 @@ static void weofcmd() } 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()); + } } } @@ -575,7 +584,7 @@ static void capcmd() 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(); } @@ -590,15 +599,15 @@ static void rectestcmd() 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; } @@ -614,7 +623,7 @@ static void rectestcmd() 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; } @@ -702,12 +711,12 @@ static int re_read_block_test() 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)); @@ -765,7 +774,7 @@ static int write_read_test() 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); @@ -807,10 +816,10 @@ static int write_read_test() 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: @@ -877,7 +886,7 @@ static int position_test() 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); @@ -919,10 +928,10 @@ static int position_test() 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) { @@ -962,9 +971,9 @@ static int position_test() 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: @@ -1053,8 +1062,8 @@ static int append_test() 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; @@ -1068,11 +1077,11 @@ static int append_test() } 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; @@ -1096,14 +1105,14 @@ static int autochanger_test() 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') { @@ -1133,9 +1142,9 @@ try_again: 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) { @@ -1148,7 +1157,7 @@ try_again: 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); @@ -1188,31 +1197,31 @@ try_again: */ 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); @@ -1223,7 +1232,7 @@ try_again: 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; } @@ -1268,11 +1277,11 @@ test_again: 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; @@ -1280,11 +1289,11 @@ test_again: 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; @@ -1293,28 +1302,28 @@ test_again: 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; } @@ -1324,16 +1333,16 @@ test_again: 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; } @@ -1362,47 +1371,47 @@ static void testcmd() } 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" @@ -1414,7 +1423,7 @@ failed: "\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; } @@ -1431,12 +1440,11 @@ all_done: "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(); @@ -1459,10 +1467,15 @@ static void fsfcmd() 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 */ @@ -1476,10 +1489,15 @@ static void fsrcmd() 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); + } } @@ -1529,7 +1547,7 @@ static void rrcmd() char *buf; int stat, len; - if (!get_cmd("Enter length to read: ")) { + if (!get_cmd(_("Enter length to read: "))) { return; } len = atoi(cmd); @@ -1566,7 +1584,7 @@ static void scancmd() 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); @@ -1576,12 +1594,17 @@ static void scancmd() 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); @@ -1589,15 +1612,19 @@ static void scancmd() 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; @@ -1606,7 +1633,7 @@ static void scancmd() dev->file++; } if (dev->state & ST_EOT) { - printf("End of tape\n"); + printf(_("End of tape\n")); break; } } else { /* Got data */ @@ -1618,7 +1645,7 @@ static void scancmd() } 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)); } @@ -1648,16 +1675,24 @@ static void scan_blocks() 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")); @@ -1665,8 +1700,12 @@ static void scan_blocks() } 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")); @@ -1677,8 +1716,12 @@ static void scan_blocks() } 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; @@ -1692,7 +1735,7 @@ static void scan_blocks() 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); @@ -1705,7 +1748,7 @@ static void scan_blocks() } 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)); } @@ -1714,7 +1757,7 @@ static void statcmd() { 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 @@ -1742,7 +1785,7 @@ static void fillcmd() 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" @@ -1757,18 +1800,18 @@ static void fillcmd() "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; } @@ -1781,10 +1824,10 @@ static void fillcmd() 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 */ @@ -1811,7 +1854,7 @@ static void fillcmd() 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 */ @@ -1840,9 +1883,9 @@ static void fillcmd() 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; @@ -1882,14 +1925,14 @@ static void fillcmd() 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); } @@ -1955,7 +1998,7 @@ static void fillcmd() 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; @@ -1963,8 +2006,14 @@ static void fillcmd() 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(); @@ -2001,14 +2050,14 @@ static void unfillcmd() 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(); @@ -2079,7 +2128,7 @@ static void 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); @@ -2130,7 +2179,7 @@ static void do_unfill() */ 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); @@ -2146,7 +2195,7 @@ static void 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 %d.\n"), dev->block_num); @@ -2169,13 +2218,13 @@ static bool quickie_cb(DCR *dcr, DEV_RECORD *rec) { 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; } @@ -2201,11 +2250,11 @@ static bool compare_blocks(DEV_BLOCK *last_block, DEV_BLOCK *block) 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) { @@ -2241,7 +2290,7 @@ static int flush_block(DEV_BLOCK *block, int dump) 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) { /* @@ -2255,11 +2304,11 @@ static int flush_block(DEV_BLOCK *block, int dump) 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; @@ -2274,7 +2323,7 @@ static int flush_block(DEV_BLOCK *block, int dump) } 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); @@ -2324,9 +2373,9 @@ static void qfillcmd() 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) { @@ -2341,7 +2390,7 @@ static void qfillcmd() 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("+"); @@ -2393,7 +2442,7 @@ static void rawfill_cmd() } } 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); @@ -2413,7 +2462,7 @@ static void rawfill_cmd() 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(); } @@ -2443,7 +2492,7 @@ static void bfill_cmd() } } 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; @@ -2462,41 +2511,41 @@ static void bfill_cmd() } 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)) @@ -2538,7 +2587,7 @@ static void usage() { fprintf(stderr, _( "Copyright (C) 2000-2005 Kern Sibbald.\n" -"\nVersion: " VERSION " (" BDATE ")\n\n" +"\nVersion: %s (%s)\n\n" "Usage: btape \n" " -b specify bootstrap file\n" " -c set configuration file to file\n" @@ -2547,7 +2596,7 @@ static void usage() " -s turn off signals\n" " -v be verbose\n" " -? print this message.\n" -"\n")); +"\n"), VERSION, BDATE); } @@ -2628,10 +2677,10 @@ bool dir_ask_sysop_to_mount_volume(DCR *dcr) 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(); @@ -2655,7 +2704,7 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) 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(); } @@ -2673,7 +2722,7 @@ static bool my_mount_next_read_volume(DCR *dcr) 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; @@ -2685,7 +2734,7 @@ static bool my_mount_next_read_volume(DCR *dcr) 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) { @@ -2700,7 +2749,7 @@ static bool my_mount_next_read_volume(DCR *dcr) 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 */ diff --git a/bacula/src/stored/butil.c b/bacula/src/stored/butil.c index 746ff744a9..b7fcb2a5f8 100644 --- a/bacula/src/stored/butil.c +++ b/bacula/src/stored/butil.c @@ -43,19 +43,19 @@ char *rec_state_to_str(DEV_RECORD *rec) 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; @@ -254,8 +254,12 @@ static DEVRES *find_device_res(char *device_name, int read_access) 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; } diff --git a/bacula/src/stored/dev.c b/bacula/src/stored/dev.c index a8ea31197b..6a7e2c23c2 100644 --- a/bacula/src/stored/dev.c +++ b/bacula/src/stored/dev.c @@ -389,7 +389,7 @@ void DEVICE::open_tape_device(DCR *dcr, int omode) 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; @@ -724,7 +724,7 @@ const char *DEVICE::print_blocked() const case BST_MOUNT: return "BST_MOUNT"; default: - return "unknown blocked code"; + return _("unknown blocked code"); } } @@ -933,7 +933,7 @@ bool update_pos_dev(DEVICE *dev) 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; @@ -969,8 +969,8 @@ uint32_t status_dev(DEVICE *dev) } 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; @@ -978,7 +978,7 @@ uint32_t status_dev(DEVICE *dev) 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)) { @@ -1019,9 +1019,9 @@ uint32_t status_dev(DEVICE *dev) } #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; @@ -1585,7 +1585,7 @@ clrerror_dev(DEVICE *dev, int func) 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"; @@ -1632,7 +1632,7 @@ clrerror_dev(DEVICE *dev, int func) break; #endif default: - bsnprintf(buf, sizeof(buf), "unknown func code %d", func); + bsnprintf(buf, sizeof(buf), _("unknown func code %d"), func); msg = buf; break; } diff --git a/bacula/src/stored/device.c b/bacula/src/stored/device.c index 5b98bc8de7..5a59c94688 100644 --- a/bacula/src/stored/device.c +++ b/bacula/src/stored/device.c @@ -128,7 +128,7 @@ bool fixup_device_block_write_error(DCR *dcr) 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; @@ -165,7 +165,7 @@ bool fixup_device_block_write_error(DCR *dcr) 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 */ @@ -301,7 +301,7 @@ bool open_device(DCR *dcr) 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; @@ -343,7 +343,7 @@ void dev_lock(DEVICE *dev) { 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)); } } @@ -351,7 +351,7 @@ void dev_unlock(DEVICE *dev) { 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)); } } diff --git a/bacula/src/stored/dircmd.c b/bacula/src/stored/dircmd.c index 993c3d10e6..9166d1fd6e 100644 --- a/bacula/src/stored/dircmd.c +++ b/bacula/src/stored/dircmd.c @@ -238,7 +238,7 @@ static bool setdebug_cmd(JCR *jcr) 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; @@ -631,7 +631,7 @@ static bool mount_cmd(JCR *jcr) 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"), diff --git a/bacula/src/stored/dvd.c b/bacula/src/stored/dvd.c index 2670b5cb68..4e160712dd 100644 --- a/bacula/src/stored/dvd.c +++ b/bacula/src/stored/dvd.c @@ -135,6 +135,7 @@ static bool do_mount_dev(DEVICE* dev, int mount, int dotimeout) /* 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; } @@ -149,7 +150,7 @@ static bool do_mount_dev(DEVICE* dev, int mount, int dotimeout) 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 @@ -257,7 +258,7 @@ void update_free_space_dev(DEVICE* dev) } 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, " @@ -318,7 +319,7 @@ static bool dvd_write_part(DCR *dcr) 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; diff --git a/bacula/src/stored/job.c b/bacula/src/stored/job.c index 5dd592256f..2ea2d341c0 100644 --- a/bacula/src/stored/job.c +++ b/bacula/src/stored/job.c @@ -197,7 +197,7 @@ void handle_filed_connection(BSOCK *fd, char *job_name) 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; diff --git a/bacula/src/stored/label.c b/bacula/src/stored/label.c index d5319dffb5..2ca577c680 100644 --- a/bacula/src/stored/label.c +++ b/bacula/src/stored/label.c @@ -83,7 +83,7 @@ int read_dev_volume_label(DCR *dcr) * => 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; @@ -120,7 +120,7 @@ int read_dev_volume_label(DCR *dcr) 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; } @@ -192,7 +192,7 @@ int read_dev_volume_label(DCR *dcr) 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; @@ -831,11 +831,11 @@ void dump_volume_label(DEVICE *dev) 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" @@ -847,7 +847,7 @@ void dump_volume_label(DEVICE *dev) "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, @@ -857,13 +857,13 @@ void dump_volume_label(DEVICE *dev) 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); } @@ -883,28 +883,28 @@ static void dump_session_label(DEV_RECORD *rec, const char *type) 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" @@ -913,7 +913,7 @@ static void dump_session_label(DEV_RECORD *rec, const char *type) "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), @@ -931,8 +931,7 @@ static void dump_session_label(DEV_RECORD *rec, const char *type) 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); } @@ -966,7 +965,7 @@ void dump_label_record(DEVICE *dev, DEV_RECORD *rec, int verbose) type = _("End of Media"); break; case EOT_LABEL: - type = ("End of Tape"); + type = _("End of Tape"); break; default: type = _("Unknown"); @@ -986,7 +985,7 @@ void dump_label_record(DEVICE *dev, DEV_RECORD *rec, int verbose) 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; @@ -994,7 +993,7 @@ void dump_label_record(DEVICE *dev, DEV_RECORD *rec, int verbose) 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; @@ -1006,18 +1005,18 @@ void dump_label_record(DEVICE *dev, DEV_RECORD *rec, int verbose) 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), @@ -1027,7 +1026,7 @@ void dump_label_record(DEVICE *dev, DEV_RECORD *rec, int verbose) 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; diff --git a/bacula/src/stored/mount.c b/bacula/src/stored/mount.c index abdb5ceb9e..0ebd073a9b 100644 --- a/bacula/src/stored/mount.c +++ b/bacula/src/stored/mount.c @@ -443,7 +443,7 @@ void release_volume(DCR *dcr) 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"); } /* @@ -490,7 +490,7 @@ bool mount_next_read_volume(DCR *dcr) 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; } diff --git a/bacula/src/stored/parse_bsr.c b/bacula/src/stored/parse_bsr.c index 2b82cb80be..f5076ee584 100755 --- a/bacula/src/stored/parse_bsr.c +++ b/bacula/src/stored/parse_bsr.c @@ -413,7 +413,7 @@ static BSR *store_count(LEX *lc, BSR *bsr) 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; } @@ -421,7 +421,7 @@ static BSR *store_jobtype(LEX *lc, BSR *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; } @@ -623,7 +623,7 @@ static BSR *store_exclude(LEX *lc, BSR *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); } } @@ -631,7 +631,7 @@ void dump_volfile(BSR_VOLFILE *volfile) 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); } } @@ -641,9 +641,9 @@ void dump_findex(BSR_FINDEX *FileIndex) { 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); } @@ -653,9 +653,9 @@ void dump_jobid(BSR_JOBID *jobid) { 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); } @@ -665,9 +665,9 @@ void dump_sessid(BSR_SESSID *sessid) { 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); } @@ -676,7 +676,7 @@ void dump_sessid(BSR_SESSID *sessid) 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); } } @@ -685,7 +685,7 @@ void dump_volume(BSR_VOLUME *volume) 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); } } @@ -693,7 +693,7 @@ void dump_client(BSR_CLIENT *client) 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); } } @@ -701,7 +701,7 @@ void dump_job(BSR_JOB *job) 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); } } @@ -715,12 +715,12 @@ void dump_bsr(BSR *bsr, bool recurse) 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); @@ -731,16 +731,16 @@ void dump_bsr(BSR *bsr, bool recurse) 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); diff --git a/bacula/src/stored/pythonsd.c b/bacula/src/stored/pythonsd.c index 40b21880e6..7b1cffdb4c 100644 --- a/bacula/src/stored/pythonsd.c +++ b/bacula/src/stored/pythonsd.c @@ -92,7 +92,7 @@ PyObject *job_getattr(PyObject *self, char *attrname) 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; } @@ -134,7 +134,7 @@ PyObject *job_getattr(PyObject *self, char *attrname) 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; @@ -151,13 +151,13 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) 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; } @@ -174,7 +174,7 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) /* 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; } } @@ -184,7 +184,7 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) 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); @@ -199,7 +199,7 @@ static PyObject *set_job_events(PyObject *self, PyObject *arg) 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); @@ -215,7 +215,7 @@ static PyObject *job_write(PyObject *self, PyObject *args) 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) { @@ -251,7 +251,7 @@ int generate_job_event(JCR *jcr, const char *event) 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; diff --git a/bacula/src/stored/read.c b/bacula/src/stored/read.c index 45b4dd5cca..6becec3377 100644 --- a/bacula/src/stored/read.c +++ b/bacula/src/stored/read.c @@ -106,7 +106,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) /* 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; @@ -121,7 +121,7 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) 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)); diff --git a/bacula/src/stored/read_record.c b/bacula/src/stored/read_record.c index 42056dde18..c17be35dce 100644 --- a/bacula/src/stored/read_record.c +++ b/bacula/src/stored/read_record.c @@ -65,10 +65,10 @@ bool read_records(DCR *dcr, 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 @@ -102,7 +102,7 @@ bool read_records(DCR *dcr, } 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", @@ -116,7 +116,7 @@ bool read_records(DCR *dcr, 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 */ @@ -272,7 +272,7 @@ static bool try_repositioning(JCR *jcr, DEV_RECORD *rec, DEVICE *dev) } 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); } @@ -318,28 +318,28 @@ static void handle_session_record(DEVICE *dev, DEV_RECORD *rec, SESSION_LABEL *s 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); } diff --git a/bacula/src/stored/record.c b/bacula/src/stored/record.c index 2849134292..45329a8444 100644 --- a/bacula/src/stored/record.c +++ b/bacula/src/stored/record.c @@ -58,7 +58,7 @@ const char *FI_to_ascii(int fi) return "EOT_LABEL"; break; default: - sprintf(buf, "unknown: %d", fi); + sprintf(buf, _("unknown: %d"), fi); return buf; } } @@ -329,7 +329,7 @@ bool write_record_to_block(DEV_BLOCK *block, DEV_RECORD *rec) 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 diff --git a/bacula/src/stored/reserve.c b/bacula/src/stored/reserve.c index 610093cbbf..62ea51375c 100644 --- a/bacula/src/stored/reserve.c +++ b/bacula/src/stored/reserve.c @@ -707,7 +707,7 @@ static int can_reserve_drive(DCR *dcr, bool PreferMountedVols) 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 */ } diff --git a/bacula/src/stored/spool.c b/bacula/src/stored/spool.c index bf6925b2f8..610c0f33bf 100644 --- a/bacula/src/stored/spool.c +++ b/bacula/src/stored/spool.c @@ -66,13 +66,13 @@ void list_spool_stats(BSOCK *bs) { 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)); @@ -114,7 +114,7 @@ bool commit_data_spool(DCR *dcr) 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; } @@ -195,9 +195,14 @@ static bool despool_data(DCR *dcr, bool commit) 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; @@ -251,7 +256,7 @@ static bool despool_data(DCR *dcr, bool commit) 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; } @@ -303,20 +308,20 @@ static int read_block_from_spool_file(DCR *dcr) 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; } @@ -376,7 +381,7 @@ bool write_block_to_spool_file(DCR *dcr) #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 */ diff --git a/bacula/src/stored/status.c b/bacula/src/stored/status.c index 9579d926c5..7b7d342899 100644 --- a/bacula/src/stored/status.c +++ b/bacula/src/stored/status.c @@ -63,11 +63,15 @@ bool status_cmd(JCR *jcr) 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"), @@ -151,17 +155,17 @@ bool status_cmd(JCR *jcr) 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); @@ -176,7 +180,7 @@ static void send_blocked_status(JCR *jcr, DEVICE *dev) 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) { @@ -242,14 +246,14 @@ static void send_blocked_status(JCR *jcr, DEVICE *dev) 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); } } @@ -296,12 +300,12 @@ static void list_running_jobs(BSOCK *user) 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 } @@ -310,7 +314,7 @@ static void list_running_jobs(BSOCK *user) if (!found) { bnet_fsend(user, _("No Jobs running.\n")); } - bnet_fsend(user, "====\n"); + bnet_fsend(user, _("====\n")); } static void list_terminated_jobs(void *arg) @@ -350,23 +354,23 @@ 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)); @@ -386,7 +390,7 @@ static void list_terminated_jobs(void *arg) dt, JobName); sendit(buf, strlen(buf), arg); } - sendit("====\n", 5, arg); + sendit(_("====\n"), 5, arg); unlock_last_jobs_list(); } @@ -462,7 +466,7 @@ bool qstatus_cmd(JCR *jcr) 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; } @@ -487,7 +491,7 @@ bool qstatus_cmd(JCR *jcr) 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; } diff --git a/bacula/src/stored/stored.c b/bacula/src/stored/stored.c index 4171439121..b526c581cf 100644 --- a/bacula/src/stored/stored.c +++ b/bacula/src/stored/stored.c @@ -63,7 +63,7 @@ static void usage() { 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 use as configuration file\n" " -dnn set debug level to nn\n" @@ -75,7 +75,7 @@ static void usage() " -u userid to \n" " -v verbose user messages\n" " -? print this message.\n" -"\n")); +"\n"), VERSION, BDATE); exit(1); } @@ -93,19 +93,22 @@ int main (int argc, char *argv[]) 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) { diff --git a/bacula/src/stored/stored_conf.c b/bacula/src/stored/stored_conf.c index 5ea530146f..361337bb11 100644 --- a/bacula/src/stored/stored_conf.c +++ b/bacula/src/stored/stored_conf.c @@ -188,7 +188,7 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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; @@ -464,7 +464,7 @@ void free_resource(RES *sres, int type) 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 */ @@ -520,20 +520,20 @@ void save_resource(int type, RES_ITEM *items, int pass) /* 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 */ @@ -552,7 +552,7 @@ void save_resource(int type, RES_ITEM *items, int pass) } break; default: - printf("Unknown resource type %d\n", type); + printf(_("Unknown resource type %d\n"), type); error = 1; break; } @@ -587,7 +587,7 @@ void save_resource(int type, RES_ITEM *items, int pass) size = sizeof(AUTOCHANGER); break; default: - printf("Unknown resource type %d\n", type); + printf(_("Unknown resource type %d\n"), type); error = 1; size = 1; break; diff --git a/bacula/src/tools/bsmtp.c b/bacula/src/tools/bsmtp.c index bc83bd4f59..ab6883db73 100644 --- a/bacula/src/tools/bsmtp.c +++ b/bacula/src/tools/bsmtp.c @@ -82,7 +82,7 @@ static void get_response(void) } 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] != '-') { @@ -118,7 +118,7 @@ static void chat(const char *fmt, ...) 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" @@ -126,7 +126,7 @@ static void usage() " -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); } @@ -146,6 +146,10 @@ int main (int argc, char *argv[]) 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"); @@ -197,7 +201,7 @@ int main (int argc, char *argv[]) argv += optind; if (argc < 1) { - Pmsg0(0, "Fatal error: no recipient given.\n"); + Pmsg0(0, _("Fatal error: no recipient given.\n")); usage(); exit(1); } @@ -218,11 +222,11 @@ int main (int argc, char *argv[]) * 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); } @@ -247,10 +251,10 @@ int main (int argc, char *argv[]) */ 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; } @@ -258,7 +262,7 @@ 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)); @@ -266,24 +270,24 @@ hp: 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); } diff --git a/bacula/src/tools/dbcheck.c b/bacula/src/tools/dbcheck.c index 94e03848e9..b8890a26f1 100644 --- a/bacula/src/tools/dbcheck.c +++ b/bacula/src/tools/dbcheck.c @@ -104,6 +104,10 @@ int main (int argc, char *argv[]) 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 */ @@ -167,9 +171,9 @@ int main (int argc, char *argv[]) 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 { @@ -178,7 +182,7 @@ int main (int argc, char *argv[]) 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); @@ -262,10 +266,17 @@ static void do_interactive_mode() 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) { @@ -314,11 +325,17 @@ static void do_interactive_mode() 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(); @@ -483,7 +500,7 @@ static int delete_id_list(const char *query, ID_LIST *id_list) 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); } @@ -557,7 +574,7 @@ static void eliminate_duplicate_filenames() 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 " @@ -566,8 +583,8 @@ static void eliminate_duplicate_filenames() 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) { @@ -583,7 +600,7 @@ static void eliminate_duplicate_filenames() 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 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); } } @@ -692,7 +709,7 @@ static void eliminate_orphaned_file_records() { 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"; @@ -702,8 +719,8 @@ static void eliminate_orphaned_file_records() 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 " @@ -715,7 +732,7 @@ static void eliminate_orphaned_file_records() } 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); } } @@ -724,7 +741,7 @@ static void eliminate_orphaned_path_records() { 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"; @@ -734,8 +751,8 @@ static void eliminate_orphaned_path_records() 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); @@ -743,7 +760,7 @@ static void eliminate_orphaned_path_records() } 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); } } @@ -752,7 +769,7 @@ static void eliminate_orphaned_filename_records() { 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"; @@ -762,8 +779,8 @@ static void eliminate_orphaned_filename_records() 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); @@ -771,7 +788,7 @@ static void eliminate_orphaned_filename_records() } 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); } } @@ -780,7 +797,7 @@ static void eliminate_orphaned_fileset_records() { 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"; @@ -790,8 +807,8 @@ static void eliminate_orphaned_fileset_records() 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]); @@ -802,7 +819,7 @@ static void eliminate_orphaned_fileset_records() } 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); } } @@ -811,7 +828,7 @@ static void eliminate_orphaned_client_records() { 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 @@ -828,8 +845,8 @@ static void eliminate_orphaned_client_records() 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]); @@ -840,7 +857,7 @@ static void eliminate_orphaned_client_records() } 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); } } @@ -849,7 +866,7 @@ static void eliminate_orphaned_job_records() { 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 @@ -866,8 +883,8 @@ static void eliminate_orphaned_job_records() 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]); @@ -878,7 +895,7 @@ static void eliminate_orphaned_job_records() } 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); } } @@ -888,7 +905,7 @@ static void eliminate_admin_records() { 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) { @@ -897,8 +914,8 @@ static void eliminate_admin_records() 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]); @@ -909,7 +926,7 @@ static void eliminate_admin_records() } 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); } } @@ -918,7 +935,7 @@ static void eliminate_restore_records() { 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) { @@ -927,8 +944,8 @@ static void eliminate_restore_records() 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]); @@ -939,7 +956,7 @@ static void eliminate_restore_records() } 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); } } @@ -952,7 +969,7 @@ static void repair_bad_filenames() 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) { @@ -961,8 +978,8 @@ static void repair_bad_filenames() 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]); @@ -975,7 +992,7 @@ static void repair_bad_filenames() 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), @@ -1010,7 +1027,7 @@ static void repair_bad_paths() 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) { @@ -1019,8 +1036,8 @@ static void repair_bad_paths() 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]); @@ -1033,7 +1050,7 @@ static void repair_bad_paths() 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), @@ -1078,7 +1095,7 @@ static int yes_no(const char *prompt) { 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; } diff --git a/bacula/src/tools/fstype.c b/bacula/src/tools/fstype.c index 38795b2f4f..e671257908 100644 --- a/bacula/src/tools/fstype.c +++ b/bacula/src/tools/fstype.c @@ -53,6 +53,10 @@ main (int argc, char *const *argv) 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': @@ -79,7 +83,7 @@ main (int argc, char *const *argv) puts(fs); } } else { - fprintf(stderr, "%s: unknown\n", *argv); + fprintf(stderr, _("%s: unknown\n"), *argv); status = 1; } } diff --git a/bacula/src/tools/testfind.c b/bacula/src/tools/testfind.c index 0b676f02f2..6313918d9f 100644 --- a/bacula/src/tools/testfind.c +++ b/bacula/src/tools/testfind.c @@ -77,6 +77,10 @@ main (int argc, char *const *argv) 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* */ @@ -127,7 +131,7 @@ main (int argc, char *const *argv) 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)) { @@ -140,7 +144,7 @@ main (int argc, char *const *argv) 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)) { @@ -192,7 +196,7 @@ static int print_file(FF_PKT *ff, void *pkt, bool top_level) 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; @@ -213,11 +217,11 @@ static int print_file(FF_PKT *ff, void *pkt, bool top_level) 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); } @@ -330,8 +334,8 @@ static void count_files(FF_PKT *ar) 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); } } diff --git a/bacula/src/tools/testls.c b/bacula/src/tools/testls.c index dafee9c899..e48df2e6cc 100755 --- a/bacula/src/tools/testls.c +++ b/bacula/src/tools/testls.c @@ -73,6 +73,10 @@ main (int argc, char *const *argv) 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* */ @@ -123,7 +127,7 @@ main (int argc, char *const *argv) 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)) { @@ -136,7 +140,7 @@ main (int argc, char *const *argv) 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)) { diff --git a/bacula/src/tray-monitor/tray-monitor.c b/bacula/src/tray-monitor/tray-monitor.c index 3917beaea1..b80d4a4525 100644 --- a/bacula/src/tray-monitor/tray-monitor.c +++ b/bacula/src/tray-monitor/tray-monitor.c @@ -101,13 +101,13 @@ static void usage() 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 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, @@ -182,9 +182,12 @@ int main(int argc, char *argv[]) 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"; @@ -313,13 +316,13 @@ int main(int argc, char *argv[]) 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); @@ -331,7 +334,7 @@ int main(int argc, char *argv[]) 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); @@ -454,13 +457,13 @@ int main(int argc, char *argv[]) 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; @@ -492,19 +495,25 @@ int main(int argc, char *argv[]) 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, _( - "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); + GtkWidget* about = gtk_message_dialog_new_with_markup(GTK_WINDOW(window),GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, + "%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); #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); @@ -571,7 +580,7 @@ static int authenticate_daemon(monitoritem* item, JCR *jcr) { 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; } @@ -644,7 +653,7 @@ static gboolean fd_read(gpointer data) { 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); @@ -654,6 +663,15 @@ static gboolean fd_read(gpointer data) { 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; @@ -698,89 +716,109 @@ void getstatus(monitoritem* item, int current, GString** str) { 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; } @@ -817,34 +855,34 @@ int docmd(monitoritem* item, const char* command, GSList** list) { 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; @@ -856,26 +894,26 @@ int docmd(monitoritem* item, const char* command, GSList** list) { 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; @@ -907,35 +945,35 @@ int docmd(monitoritem* item, const char* command, GSList** list) { } 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("\n")); + g_slist_append(*list, g_string_new(_("\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, "\n"); + g_string_append_printf(str, _("\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 */ } diff --git a/bacula/src/tray-monitor/tray_conf.c b/bacula/src/tray-monitor/tray_conf.c index 8aaea718df..7614c2052a 100644 --- a/bacula/src/tray-monitor/tray_conf.c +++ b/bacula/src/tray-monitor/tray_conf.c @@ -149,7 +149,7 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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 */ @@ -158,25 +158,25 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm } 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) { @@ -229,7 +229,7 @@ void free_resource(RES *sres, int type) } 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) { @@ -259,13 +259,13 @@ void save_resource(int type, RES_ITEM *items, int pass) 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]); } } @@ -284,7 +284,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; } @@ -319,7 +319,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; diff --git a/bacula/src/wx-console/authenticate.c b/bacula/src/wx-console/authenticate.c index 01030f4736..fc477f4768 100644 --- a/bacula/src/wx-console/authenticate.c +++ b/bacula/src/wx-console/authenticate.c @@ -123,14 +123,14 @@ int authenticate_director(JCR *jcr, DIRRES *director, CONRES *cons) 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, "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); diff --git a/bacula/src/wx-console/console_conf.c b/bacula/src/wx-console/console_conf.c index 5c959db615..7c327610e6 100644 --- a/bacula/src/wx-console/console_conf.c +++ b/bacula/src/wx-console/console_conf.c @@ -121,7 +121,7 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm 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 */ @@ -130,15 +130,15 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm } 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); @@ -213,7 +213,7 @@ void free_resource(RES *sres, int type) } 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); @@ -239,7 +239,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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]); } } @@ -258,7 +258,7 @@ void save_resource(int type, RES_ITEM *items, int pass) 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; } @@ -285,7 +285,7 @@ void save_resource(int type, RES_ITEM *items, int pass) size = sizeof(DIRRES); break; default: - printf("Unknown resource type %d\n", type); + printf(_("Unknown resource type %d\n"), type); error = 1; size = 1; break; diff --git a/bacula/src/wx-console/console_thread.cpp b/bacula/src/wx-console/console_thread.cpp index 2d31762679..46cce53793 100644 --- a/bacula/src/wx-console/console_thread.cpp +++ b/bacula/src/wx-console/console_thread.cpp @@ -148,14 +148,13 @@ void console_thread::SetWorkingDirectory(wxString w_dir) { 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; @@ -164,7 +163,7 @@ void console_thread::InitLib() { 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")); } } } @@ -192,7 +191,7 @@ static void scan_err(const char *file, int line, LEX *lc, const char *msg, ...) 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; @@ -202,7 +201,7 @@ wxString console_thread::LoadConfig(wxString configfile) { if (!inited) { InitLib(); if (!inited) - return wxT("Error while initializing library."); + return wxT(_("Error while initializing library.")); } free_config_resources(); @@ -265,7 +264,7 @@ console_thread::~console_thread() { 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); @@ -276,7 +275,7 @@ void* console_thread::Entry() { } 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); @@ -286,7 +285,7 @@ void* console_thread::Entry() { return NULL; } - csprint("Connecting...\n"); + csprint(_("Connecting...\n")); int count = 0; DIRRES* res[16]; /* Maximum 16 directors */ @@ -302,7 +301,7 @@ void* console_thread::Entry() { 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); @@ -314,7 +313,7 @@ void* console_thread::Entry() { 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")); @@ -323,7 +322,7 @@ void* console_thread::Entry() { 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; @@ -352,7 +351,7 @@ void* console_thread::Entry() { /* 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, @@ -373,7 +372,7 @@ void* console_thread::Entry() { /* 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, @@ -391,11 +390,11 @@ void* console_thread::Entry() { } - 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); @@ -405,7 +404,7 @@ void* console_thread::Entry() { return NULL; } - csprint("Connected\n"); + csprint(_("Connected\n")); jcr.dir_bsock = UA_sock; if (!authenticate_director(&jcr, dir, cons)) { @@ -440,10 +439,10 @@ void* console_thread::Entry() { } 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); } @@ -461,7 +460,7 @@ void* console_thread::Entry() { csprint(NULL, CS_DISCONNECTED); - csprint("Connection terminated\n"); + csprint(_("Connection terminated\n")); UA_sock = NULL; diff --git a/bacula/src/wx-console/main.cpp b/bacula/src/wx-console/main.cpp index 4bd7bc9654..0e6e5eca94 100644 --- a/bacula/src/wx-console/main.cpp +++ b/bacula/src/wx-console/main.cpp @@ -66,6 +66,10 @@ IMPLEMENT_APP(MyApp) // '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(); @@ -89,12 +93,12 @@ bool MyApp::OnInit() } } - 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("")); diff --git a/bacula/src/wx-console/wxbconfigfileeditor.cpp b/bacula/src/wx-console/wxbconfigfileeditor.cpp index 7894f37fd6..2cba2fdcc5 100644 --- a/bacula/src/wx-console/wxbconfigfileeditor.cpp +++ b/bacula/src/wx-console/wxbconfigfileeditor.cpp @@ -38,7 +38,7 @@ BEGIN_EVENT_TABLE(wxbConfigFileEditor, wxDialog) 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; @@ -54,8 +54,8 @@ wxbConfigFileEditor::wxbConfigFileEditor(wxWindow* parent, wxString 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); @@ -66,7 +66,7 @@ wxbConfigFileEditor::wxbConfigFileEditor(wxWindow* parent, wxString filename): 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"); @@ -97,7 +97,8 @@ wxbConfigFileEditor::~wxbConfigFileEditor() { 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; diff --git a/bacula/src/wx-console/wxbconfigpanel.cpp b/bacula/src/wx-console/wxbconfigpanel.cpp index 262e98dcdd..e8a6f56306 100644 --- a/bacula/src/wx-console/wxbconfigpanel.cpp +++ b/bacula/src/wx-console/wxbconfigpanel.cpp @@ -177,18 +177,18 @@ wxbConfigPanel::wxbConfigPanel(wxWindow* parent, wxbConfig* config, wxString tit 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); diff --git a/bacula/src/wx-console/wxbhistorytextctrl.cpp b/bacula/src/wx-console/wxbhistorytextctrl.cpp index b3a93f4199..6037ad5827 100644 --- a/bacula/src/wx-console/wxbhistorytextctrl.cpp +++ b/bacula/src/wx-console/wxbhistorytextctrl.cpp @@ -58,7 +58,7 @@ void wxbHistoryTextCtrl::HistoryAdd(wxString cmd) { 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); } @@ -93,7 +93,7 @@ void wxbHistoryTextCtrl::OnKeyUp(wxKeyEvent& event) { 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) { @@ -102,7 +102,7 @@ void wxbHistoryTextCtrl::OnKeyUp(wxKeyEvent& event) { 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; @@ -129,7 +129,7 @@ void wxbHistoryTextCtrl::OnKeyUp(wxKeyEvent& event) { } } else { - help->SetLabel(wxT("Type your command below:")); + help->SetLabel(wxT(_("Type your command below:"))); event.Skip(); } } diff --git a/bacula/src/wx-console/wxbmainframe.cpp b/bacula/src/wx-console/wxbmainframe.cpp index 4396dcfbda..7c1cd9edcc 100644 --- a/bacula/src/wx-console/wxbmainframe.cpp +++ b/bacula/src/wx-console/wxbmainframe.cpp @@ -224,20 +224,20 @@ wxbMainFrame::wxbMainFrame(const wxString& title, const wxPoint& pos, const wxSi // 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); @@ -245,7 +245,7 @@ wxbMainFrame::wxbMainFrame(const wxString& title, const wxPoint& pos, const wxSi 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); @@ -254,35 +254,35 @@ wxbMainFrame::wxbMainFrame(const wxString& title, const wxPoint& pos, const wxSi /* 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); @@ -353,8 +353,8 @@ void wxbMainFrame::StartConsoleThread(const wxString& config) { 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) { @@ -365,8 +365,8 @@ void wxbMainFrame::StartConsoleThread(const wxString& config) { 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; } } @@ -393,10 +393,12 @@ void wxbMainFrame::StartConsoleThread(const wxString& config) { 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(); @@ -412,9 +414,11 @@ void wxbMainFrame::StartConsoleThread(const wxString& config) { 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(); @@ -426,7 +430,7 @@ void wxbMainFrame::StartConsoleThread(const wxString& config) { 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); } @@ -439,8 +443,8 @@ void wxbMainFrame::StartConsoleThread(const wxString& config) { 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); @@ -450,12 +454,12 @@ void wxbMainFrame::StartConsoleThread(const wxString& config) { } // 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 */ @@ -470,7 +474,7 @@ void wxbMainFrame::Unregister(wxbDataParser* dp) { parsers.RemoveAt(index); } else { - Print(wxT("Failed to unregister a data parser !"), CS_DEBUG); + Print(wxT(_("Failed to unregister a data parser !")), CS_DEBUG); } } @@ -478,7 +482,7 @@ void wxbMainFrame::Unregister(wxbDataParser* dp) { 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; @@ -493,20 +497,20 @@ void wxbMainFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) void wxbMainFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { wxString msg; - msg.Printf( _T("Welcome to Bacula wx-console.\nWritten by Nicolas Boichat \n(C) 2004 Kern Sibbald and John Walker\n")); + msg.Printf( _T(_("Welcome to Bacula wx-console.\nWritten by Nicolas Boichat \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); @@ -570,19 +574,20 @@ void wxbMainFrame::Print(wxString str, int status) 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); @@ -590,7 +595,7 @@ void wxbMainFrame::Print(wxString str, int status) } 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; @@ -604,8 +609,8 @@ void wxbMainFrame::Print(wxString str, int status) } 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); @@ -615,7 +620,7 @@ void wxbMainFrame::Print(wxString str, int status) consoleCtrl->AppendText(consoleBuffer); consoleBuffer = wxT(""); consoleCtrl->PageDown(); - SetStatusText(wxT("Disconnected of the director.")); + SetStatusText(wxT(_("Disconnected of the director."))); DisablePanels(); return; } @@ -634,7 +639,7 @@ void wxbMainFrame::Print(wxString str, int status) } 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; @@ -657,7 +662,7 @@ void wxbMainFrame::Print(wxString str, int status) } 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")); } @@ -672,7 +677,8 @@ void wxbMainFrame::Print(wxString str, int status) } 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")); } } } diff --git a/bacula/src/wx-console/wxbrestorepanel.cpp b/bacula/src/wx-console/wxbrestorepanel.cpp index 0d7f04b39e..ecb72d1bb3 100644 --- a/bacula/src/wx-console/wxbrestorepanel.cpp +++ b/bacula/src/wx-console/wxbrestorepanel.cpp @@ -255,10 +255,10 @@ wxbRestorePanel::wxbRestorePanel(wxWindow* parent): wxbPanel(parent) { 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]; @@ -284,11 +284,11 @@ wxbRestorePanel::wxbRestorePanel(wxWindow* parent): wxbPanel(parent) { 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); @@ -307,42 +307,42 @@ wxbRestorePanel::wxbRestorePanel(wxWindow* parent): wxbPanel(parent) { 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); @@ -356,31 +356,31 @@ wxbRestorePanel::wxbRestorePanel(wxWindow* parent): wxbPanel(parent) { 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); @@ -423,7 +423,7 @@ wxbRestorePanel::~wxbRestorePanel() { ----------------------------------------------------------------------------*/ wxString wxbRestorePanel::GetTitle() { - return wxT("Restore"); + return wxT(_("Restore")); } void wxbRestorePanel::EnablePanel(bool enable) { @@ -445,23 +445,23 @@ 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; @@ -473,19 +473,19 @@ void wxbRestorePanel::CmdStart() { 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; @@ -497,19 +497,19 @@ void wxbRestorePanel::CmdStart() { 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; @@ -521,20 +521,20 @@ void wxbRestorePanel::CmdStart() { 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; @@ -545,17 +545,17 @@ void wxbRestorePanel::CmdStart() { 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; @@ -569,18 +569,18 @@ void wxbRestorePanel::CmdStart() { 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); @@ -619,7 +619,7 @@ void wxbRestorePanel::CmdStart() { 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); @@ -704,12 +704,12 @@ void wxbRestorePanel::CmdStart() { } 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) { @@ -726,20 +726,19 @@ void wxbRestorePanel::CmdStart() { 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); @@ -749,8 +748,8 @@ void wxbRestorePanel::CmdStart() { 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; } @@ -760,7 +759,7 @@ void wxbRestorePanel::CmdStart() { jobid = wxT(""); EnableConfig(false); - wxbMainFrame::GetInstance()->SetStatusText(wxT("Restoring, please wait...")); + wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restoring, please wait..."))); wxbDataTokenizer* dt; @@ -773,22 +772,22 @@ void wxbRestorePanel::CmdStart() { 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; } @@ -806,7 +805,7 @@ void wxbRestorePanel::CmdStart() { 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 @@ -814,8 +813,8 @@ void wxbRestorePanel::CmdStart() { } 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; } @@ -839,72 +838,71 @@ void wxbRestorePanel::CmdStart() { 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; } @@ -953,8 +951,8 @@ void wxbRestorePanel::CmdStart() { } 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; } } @@ -964,8 +962,8 @@ void wxbRestorePanel::CmdStart() { 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); } @@ -1036,7 +1034,7 @@ void wxbRestorePanel::CmdCancel() { 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); @@ -1054,7 +1052,7 @@ void wxbRestorePanel::CmdConfigApply() { 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)); } @@ -1062,7 +1060,7 @@ void wxbRestorePanel::CmdConfigApply() { 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)); } @@ -1070,7 +1068,7 @@ void wxbRestorePanel::CmdConfigApply() { 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)); } @@ -1078,16 +1076,16 @@ void wxbRestorePanel::CmdConfigApply() { 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; } @@ -1100,9 +1098,9 @@ void wxbRestorePanel::CmdConfigApply() { 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; } @@ -1115,9 +1113,9 @@ void wxbRestorePanel::CmdConfigApply() { 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; } @@ -1134,7 +1132,7 @@ void wxbRestorePanel::CmdConfigApply() { 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; } } @@ -1150,7 +1148,7 @@ void wxbRestorePanel::CmdConfigApply() { EnableConfig(true); if (!failed) { - wxbMainFrame::GetInstance()->SetStatusText(wxT("Restore configuration changes were applied.")); + wxbMainFrame::GetInstance()->SetStatusText(wxT(_("Restore configuration changes were applied."))); } delete dt; @@ -1159,20 +1157,20 @@ void wxbRestorePanel::CmdConfigApply() { /* 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); @@ -1181,17 +1179,20 @@ void wxbRestorePanel::CmdListJobs() { 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; @@ -1208,13 +1209,14 @@ void wxbRestorePanel::CmdListJobs() { 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. } } @@ -1727,7 +1729,7 @@ void wxbRestorePanel::RefreshList() { /* 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 @@ -1749,20 +1751,21 @@ void wxbRestorePanel::UpdateFirstConfig() { 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)); } } } @@ -1795,7 +1798,7 @@ void wxbRestorePanel::UpdateFirstConfig() { 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; } @@ -1805,31 +1808,31 @@ bool wxbRestorePanel::UpdateSecondConfig(wxbDataTokenizer* dt) { 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(); @@ -1855,7 +1858,7 @@ void wxbRestorePanel::SetStatus(status_enum newstatus) { 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); @@ -1878,13 +1881,13 @@ void wxbRestorePanel::SetStatus(status_enum newstatus) { 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); @@ -1897,7 +1900,7 @@ void wxbRestorePanel::SetStatus(status_enum newstatus) { 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); @@ -1909,7 +1912,7 @@ void wxbRestorePanel::SetStatus(status_enum newstatus) { 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); @@ -1936,7 +1939,7 @@ void wxbRestorePanel::SetStatus(status_enum newstatus) { restorePanel->EnableApply(false); break; case restoring: - start->SetLabel(wxT("Restoring...")); + start->SetLabel(wxT(_("Restoring..."))); gauge->Enable(true); gauge->SetValue(0); start->Enable(false); -- 2.39.5