# # patch "AUTHORS" # from [f735fbbf50cbfa0258a4fc76d70b4781fd06c60a] # to [82c58d1acbc33679c1333196dd0b555c2550cfdc] # # patch "ChangeLog" # from [0f79b1bab4944e0d171410d02195b6e0aa344b39] # to [8406d3d44ebe3cdcbf3a85455d06e9d8256b0e18] # # patch "botan/arc4.cpp" # from [5d18a5e5578d84da92e194a2c878ff7da6503844] # to [475ce257a2f738c10bf6b5858c6590d0c6618cb9] # # patch "cert.cc" # from [43de7f5240b7caa27fc590630afe3ffeea0bfa0b] # to [42559a303b7e3a7896fc98035dfd13509cbb0b96] # # patch "commands.cc" # from [61185ae5cc7cd776c25ca1655199a314bdd40378] # to [d04179187700889eee2af3e4e6ada1ffad5e7317] # # patch "configure.ac" # from [289e0cb6ea26e1a8e515e7f81626a49e77381d69] # to [0a8fcd82b46313fe334dc86907bde61e73c8ab4e] # # patch "contrib/usher.cc" # from [8cb23c92752ea67f7858372494985d2d6204afaf] # to [d51be7aa0f1270b8a1dab605c33328095d82aab4] # # patch "database.cc" # from [4a6486b38a02fec9b281ae4a665f209bb9f3440e] # to [527f6668dd5cd105d42d05e3027ee783e2fdf624] # # patch "lua.cc" # from [fc053070a0c0a106e6f9a3e5678ef2a427ad1fcd] # to [7adcfab1864ac11bd60a241a3c607b9ddf031716] # # patch "monotone.cc" # from [21be582ccd322a35a5d1864ee1251e5773054619] # to [cab8b2b01a23a5e82a37761b90517703c57c241a] # # patch "monotone.texi" # from [9b7b9ab00d31aead6a87466ff1a2d843c54084a8] # to [6d5a231b85631453f85095ac4ce027c3fdc15e38] # # patch "netsync.cc" # from [5d53bf85b20e88af400ccea87f1233eefdfd5daa] # to [4bdd084e4dd25d0a85c5287e99850c30c4f6cc66] # # patch "po/POTFILES.in" # from [bd06ee5116d53df04a0065e56e3a6ef2b7837d8c] # to [4d5f0163f7f56dce90515e2ea15edaca8daf790e] # # patch "po/ja.po" # from [a3ec19a708293db5a8a1247f2c1dafaf367e6827] # to [493e2f3062a07374112f0e7ed64d84a6ae8dc0d2] # # patch "rcs_import.cc" # from [e01d4dc824657c684430fdf98d0132a1298f10d3] # to [1cae15157195ea7014977d5184a10d6472a959b2] # # patch "restrictions.cc" # from [a2c9b4ec291eb22ed849af535ffec2fc4de253d9] # to [08affd2e33496704cc881807f3dd408a9f2a4129] # # patch "sanity.cc" # from [d43cf000a18c156b97527e0724635b050159d16d] # to [7aef12692c6817c9405c6e34552c48a0b79335f8] # # patch "sanity.hh" # from [2c8cee0f678668a356de29a5c61fb3eed8c87b74] # to [5a3b4f9635067d92301924a42621085c15a33188] # # patch "sqlite/analyze.c" # from [43a2d91242bdd71b6c299378f6b11e896ee5e43d] # to [21a4cd125bedd3cb15857595c45c2a49c0556d26] # # patch "sqlite/build.c" # from [74653e045581bfbadb8b35a0cb38a62f4a2c850e] # to [aa9591839c00731370c1ba53a9c0045f70d764c4] # # patch "sqlite/delete.c" # from [16a0e19460b14d219f39ff5c7a9eef808aa1969c] # to [29dac493f4d83b05f91233b116827c133bcdab72] # # patch "sqlite/expr.c" # from [b8dbd5a30e80b83b0c1e137dcfcd687bd5d2b76c] # to [bb2cf5d5b065eaa23d5ae2620f6de0568768147d] # # patch "sqlite/insert.c" # from [484c73bc1309f283a31baa0e114f3ee980536397] # to [1f51566d7cf4b243a2792f5fda37343d6e9377fa] # # patch "sqlite/opcodes.c" # from [8b23c96979492cba740a2e3c67f6646e8b323b12] # to [9855bca95408a841cfbeb92135596bc18d7c034a] # # patch "sqlite/opcodes.h" # from [1848e78f249e09e0b773754679d6584412f8900f] # to [9918b6dfce41b2465940c5f6631afd418584dfb3] # # patch "sqlite/os_unix.c" # from [c86cf43b7ca9200e6fb7bc202ad2cc7da2f69367] # to [407dd07818d13807c396acf3f7570af81cbb666c] # # patch "sqlite/os_win.c" # from [ed03a35b2894f9b99840415f941a9f8594dea756] # to [fbccc85e7011174068c27d54256746321a1f0059] # # patch "sqlite/pager.h" # from [17b13225abd93c1e9f470060f40a21b9edb5a164] # to [e7b41ce8e7b5f629d456708b7ad9a8c8ede37140] # # patch "sqlite/parse.c" # from [9f03b15f12e12a7952705f50d01e3ac97bb81e34] # to [13d6d5853fcaddd632125185f51a4705558950fb] # # patch "sqlite/pragma.c" # from [6d773e25e8af13ef0820531ad2793417f8a8959d] # to [126149668aa7086e86cfa3e32c8523513c19dd63] # # patch "sqlite/select.c" # from [9ef1dddd436e1ea86a6bf64ae0ed71bf4a0b894f] # to [034c7f7447b8711f85bef578a437ea12ca7cac53] # # patch "sqlite/sqlite3.h" # from [d1ab08a3d92270801782adad0dad0f31d6df7761] # to [2c4119e974bd9182eb3597fbd6343c5e1c4bcb74] # # patch "sqlite/sqliteInt.h" # from [e78a7c53a97a2e5d8d6370b6836b2921124ac26f] # to [0606b9cc31efabadf5b3d40478c193fa89fa6662] # # patch "sqlite/update.c" # from [c2716c2115533ffae3d08bf8853aaba4f970f37e] # to [ac506fb7400158f826ec6c3a0dbe65e7ed3928d5] # # patch "sqlite/vdbe.c" # from [de007d59f036fcd1b89a7d4172aa0d028e8689eb] # to [3f1adcf4535dd35e4244d19d332fb6b515491c0d] # # patch "sqlite/vdbe.h" # from [c8e105979fc7aaf5b8004e9621904e3bd096dfa2] # to [8729a4ee16ff9aeab2af9667df3cf300ff978e13] # # patch "sqlite/vdbeInt.h" # from [3dd2a29c7b0a55404c35f93caae81fb42f4cb70a] # to [7bedbb9553a10e86b53f75d99e197f3f00a732bf] # # patch "sqlite/vdbeaux.c" # from [57a6ced8417bdc6f06c391d9c560ecbbed644ef3] # to [2b728d82cf2095386a90051b66e7faf1a143f27d] # # patch "sqlite/vdbemem.c" # from [fea0744936008831daa17cdc75056c3ca1469690] # to [ff426ff6e72aa3f0300a56ec8c7f18099be96b43] # # patch "sqlite/where.c" # from [1cc55c9aa142c7ef09b427f5fd0bf0488e365fc4] # to [3ed72ca029b3010a76e3a41b7b02ec1bdf849f00] # # patch "std_hooks.lua" # from [3aa6ea33c6bbb6e43c63dd4ff8ed353f3b9d4ce3] # to [f7edfb3f0063bd68d3a141693ec1141e9ff8266f] # # patch "tests/t_restriction_with_exclude_iprint.at" # from [4a5f81447a9aef3715473d174138a2ad610d7d00] # to [9eeb53c39d2dc0fe57457a538e4765ad15dfe1ee] # # patch "ui.cc" # from [2c9b65e320b66d6b104bee5885723c4f97f36e8b] # to [0fa61fa5c584e05a187d6c7e29c8336e4d7f3455] # # patch "ui.hh" # from [13817f413857ee072ca9ed1aa5dc90e51aaa0069] # to [2bedf507a3a2f5aa202e7cf38965822f5771c817] # ======================================================================== --- AUTHORS f735fbbf50cbfa0258a4fc76d70b4781fd06c60a +++ AUTHORS 82c58d1acbc33679c1333196dd0b555c2550cfdc @@ -66,6 +66,7 @@ Jordan Breeding Vladimir Vukicevic Benoît Dejean + Patrick Mauritz Several people have also contributed to the translation of monotone into non-English languages; their work is available in the po/ ======================================================================== --- ChangeLog 0f79b1bab4944e0d171410d02195b6e0aa344b39 +++ ChangeLog 8406d3d44ebe3cdcbf3a85455d06e9d8256b0e18 @@ -1,3 +1,108 @@ +2005-09-27 Richard Levitte + + * monotone.texi (Tutorial): It seems like texi2pdf gets quite + confused when a @chapter has a @subsection with a @section in + between. The resulting PDF had a Tutorial that was a indexed as a + subsection under Concepts/Branches instead of being indexed as the + chapter it is, and most confusingly, it's last subsection + (Branching and Merging) ended up as a a separate chapter of it's + own... + +2005-09-26 Benoît Dejean + + * database.cc: Merged 3 strings. + +2005-09-26 Matt Johnston + + * commands.cc: add 'help' command + * monotone.cc: add -h alias for --help + +2005-09-25 Matt Johnston + + * netsync.cc: use lexical_cast on port numbers to avoid + strange-looking "port 5,253" + +2005-09-25 Matthew Gregan + + * sqlite/*: Update in-tree SQLite from 3.2.6 to 3.2.7. + +2005-09-25 Benoît Dejean + + * netsync.cc: 3 more i18n strings. + +2005-09-25 Benoît Dejean + + * cert.cc (cert_signable_text): F() vs. boost::format. + * lua.cc (monotone_guess_binary_file_contents_for_lua), + (monotone_include_for_lua), (monotone_includedir_for_lua): + * rcs_import.cc (import_cvs_repo): Merged some strings. + +2005-09-25 Benoît Dejean + + * lua.cc (monotone_guess_binary_file_contents_for_lua): + Fixed signednes warning and istream usage. + +2005-09-25 Matt Johnston + + * ui.cc: fallback to the default locale if locale("") fails. + +2005-09-25 Matt Johnston + + * botan/arc4.cpp: increase maximum keylength to 256 bytes. + +2005-09-24 Benoît Dejean + + * ChangeLog: Fixed. + I don't understand how xxdiff works :/ Please help. + +2005-09-24 Satoru SATOH + + * po/ja.po: Updated Japanese translation. + +2005-09-23 Benoît Dejean + + * std_hooks.lua: More i18n strings. + + I don't know how to handle lua + "multiline" .. + "strings" because gettext doesn't join them. + +2005-09-22 Benoît Dejean + + * sanity.{cc,hh}: Uninlined F() and FP(). + This happily saves ~100KB of .text on my ppc. + +2005-09-22 Benoît Dejean + + * netsync.cc: Reverted changes + from f0a632bf14468b6e03a488d6f1a64ef18b61d04c + to 4f7f638954c79c54460d04c3be111acad8b26dd3 + +2005-09-22 Benoît Dejean + + * lua.cc (monotone_gettext_for_lua): New function. + * po/POTFILES.in: Added std_hooks.lua. + * std_hooks.lua: One more string for i18n. + +2005-09-22 Benoît Dejean + + * ui.{cc,hh} (get_user_locale): Returns a const &. + +2005-09-21 Timothy Brownawell + + * contrib/usher.cc: better error checking + +2005-09-20 Timothy Brownawell + + * restrictions.cc: Make calculate_unrestricted_revision work + with --exclude + * tests/t_restriction_with_exclude_iprint.at: remove XFAIL + +2005-09-20 Patrick Mauritz + + * configure.ac: solaris needs librt for fdatasync + * sqlite/parse.c: #line and #include interactions aren't defined + 2005-09-20 Matt Johnston * database.cc (space_usage): workaround the issue that in sqlite @@ -110,7 +215,7 @@ * tests/t_rename_dir_cross_level.at: When invoking mv to rename a directory, do not include a trailing slash on the target -- that is not portable. - + * Makefile.am (TESTS_ENVIRONMENT): Ensure that PATH starts with the current directory, so we test the just-built monotone binary, not some older version. ======================================================================== --- botan/arc4.cpp 5d18a5e5578d84da92e194a2c878ff7da6503844 +++ botan/arc4.cpp 475ce257a2f738c10bf6b5858c6590d0c6618cb9 @@ -93,7 +93,8 @@ /************************************************* * ARC4 Constructor * *************************************************/ -ARC4::ARC4(u32bit s) : StreamCipher(1, 32), SKIP(s) +// monotone-specific: max keysize is 256 bytes +ARC4::ARC4(u32bit s) : StreamCipher(1, 256), SKIP(s) { clear(); } ======================================================================== --- cert.cc 43de7f5240b7caa27fc590630afe3ffeea0bfa0b +++ cert.cc 42559a303b7e3a7896fc98035dfd13509cbb0b96 @@ -299,7 +299,7 @@ cert_signable_text(cert const & t, string & out) { - out = (F("address@hidden:%s]") % t.name % t.ident % remove_ws(t.value())).str(); + out = (boost::format("address@hidden:%s]") % t.name % t.ident % remove_ws(t.value())).str(); L(F("cert: signable text %s\n") % out); } ======================================================================== --- commands.cc 61185ae5cc7cd776c25ca1655199a314bdd40378 +++ commands.cc d04179187700889eee2af3e4e6ada1ffad5e7317 @@ -318,6 +318,19 @@ system_path path; }; + +CMD(help, N_("informative"), N_("command [ARGS...]"), N_("display command help"), OPT_NONE) +{ + if (args.size() < 1) + throw usage(""); + + string full_cmd = complete_command(idx(args, 0)()); + if (cmds.find(full_cmd) == cmds.end()) + throw usage(""); + + throw usage(full_cmd); +} + static void maybe_update_inodeprints(app_state & app) { ======================================================================== --- configure.ac 289e0cb6ea26e1a8e515e7f81626a49e77381d69 +++ configure.ac 0a8fcd82b46313fe334dc86907bde61e73c8ab4e @@ -307,6 +307,7 @@ AC_SEARCH_LIBS([inet_aton], [resolv]) AC_SEARCH_LIBS([accept], [socket]) AC_SEARCH_LIBS([inet_ntoa], [nsl]) +AC_SEARCH_LIBS([fdatasync], [rt]) AC_CHECK_LIB([z], [deflate], , AC_MSG_FAILURE([zlib is required])) # Now let the user specify whether he wants large file support or not in ======================================================================== --- contrib/usher.cc 8cb23c92752ea67f7858372494985d2d6204afaf +++ contrib/usher.cc d51be7aa0f1270b8a1dab605c33328095d82aab4 @@ -180,7 +180,8 @@ } void fixwrite(int n) { - if (n < 0) throw errstr("negative write\n", 0); + if (n < 0) + throw errstr("negative write\n", 0); writepos += n; } }; @@ -188,27 +189,60 @@ struct sock { int *s; - operator int(){return s[0];} + operator int() + { + if (!s) + return -1; + else + return s[0]; + } sock(int ss) { s = new int[2]; s[0] = ss; s[1] = 1; } - sock(sock const & ss){s = ss.s; s[1]++;} - ~sock(){if (s[1]--) return; ::close(s[0]); delete[] s;} - sock operator=(int ss){s[0]=ss;} + sock(sock const & ss) + { + s = ss.s; + if (s) + s[1]++; + } void close() { - if (s[0] == -1) return; - tosserr(shutdown(s[0], SHUT_RDWR), "shutdown()"); - while (::close(s[0]) < 0) { - if (errno != EINTR) throw errstr("close()", 0); + if (!s || s[0] == -1) + return; + shutdown(s[0], SHUT_RDWR); + while (::close(s[0]) < 0) { + if (errno == EIO) + throw errstr("close failed", errno); + if (errno != EINTR) + break; + } + s[0]=-1; + } + ~sock() + { + if (!s || s[1]--) + return; + try { + close(); + } catch(errstr & e) { + // if you want it to throw errors, call close manually } - s[0]=-1; + delete[] s; + s = 0; } + sock operator=(int ss) + { + if (!s) + s = new int[2]; + s[0]=ss; + } bool read_to(buffer & buf) { + if (!s) + return false; char *p; int n; buf.getwrite(p, n); @@ -222,6 +256,8 @@ } bool write_from(buffer & buf) { + if (!s) + return false; char *p; int n; buf.getread(p, n); @@ -294,13 +330,16 @@ struct channel { + static int counter; + int num; sock client; sock server; bool have_routed; bool no_server; buffer cbuf; buffer sbuf; - channel(sock & c): client(c), server(-1), + channel(sock & c): num(++counter), + client(c), server(-1), have_routed(false), no_server(false) { char * dat; @@ -417,6 +456,7 @@ } } }; +int channel::counter = 0; int main (int argc, char **argv) { @@ -491,9 +531,14 @@ std::list::iterator> finished; for (std::list::iterator i = channels.begin(); i != channels.end(); ++i) { - i->process_selected(rd, wr, er); - if (i->is_finished()) + try { + i->process_selected(rd, wr, er); + if (i->is_finished()) + finished.push_back(i); + } catch (errstr & e) { finished.push_back(i); + std::cerr<<"Error proccessing connection "<num<<": "<::iterator>::iterator i = finished.begin(); i != finished.end(); ++i) ======================================================================== --- database.cc 4a6486b38a02fec9b281ae4a665f209bb9f3440e +++ database.cc 527f6668dd5cd105d42d05e3027ee783e2fdf624 @@ -195,7 +195,7 @@ { require_path_is_file(filename, F("database %s does not exist") % filename, - F("database %s is a directory") % filename); + F("%s is a directory, not a database") % filename); check_sqlite_format_version(filename); } ======================================================================== --- lua.cc fc053070a0c0a106e6f9a3e5678ef2a427ad1fcd +++ lua.cc 7adcfab1864ac11bd60a241a3c607b9ddf031716 @@ -524,7 +524,7 @@ monotone_guess_binary_file_contents_for_lua(lua_State *L) { const char *path = lua_tostring(L, -1); - N(path, F("guess_binary called with an invalid parameter")); + N(path, F("%s called with an invalid parameter") % "guess_binary"); std::ifstream file(path, ios_base::binary); if (!file) @@ -535,10 +535,9 @@ const int bufsize = 8192; char tmpbuf[bufsize]; string buf; - while(file.good()) + while (file.read(tmpbuf, sizeof tmpbuf)) { - file.read(tmpbuf, sizeof(tmpbuf)); - I(file.gcount() <= sizeof(tmpbuf)); + I(file.gcount() <= static_cast(sizeof tmpbuf)); buf.assign(tmpbuf, file.gcount()); if (guess_binary(buf)) { @@ -554,7 +553,7 @@ monotone_include_for_lua(lua_State *L) { const char *path = lua_tostring(L, -1); - N(path, F("Include called with an invalid parameter")); + N(path, F("%s called with an invalid parameter") % "Include"); bool res =Lua(L) .loadfile(std::string(path, lua_strlen(L, -1))) @@ -569,7 +568,7 @@ monotone_includedir_for_lua(lua_State *L) { const char *pathstr = lua_tostring(L, -1); - N(pathstr, F("IncludeDir called with an invalid parameter")); + N(pathstr, F("%s called with an invalid parameter") % "IncludeDir"); fs::path locpath(pathstr, fs::native); N(fs::exists(locpath), F("Directory '%s' does not exists") % pathstr); @@ -609,6 +608,14 @@ lua_pushboolean(L, boost::regex_search(str, what, boost::regex(re))); return 1; } + + static int + monotone_gettext_for_lua(lua_State *L) + { + const char *msgid = lua_tostring(L, -1); + lua_pushstring(L, gettext(msgid)); + return 1; + } } @@ -638,6 +645,7 @@ lua_register(st, "guess_binary_file_contents", monotone_guess_binary_file_contents_for_lua); lua_register(st, "include", monotone_include_for_lua); lua_register(st, "includedir", monotone_includedir_for_lua); + lua_register(st, "gettext", monotone_gettext_for_lua); // add regex functions: lua_newtable(st); ======================================================================== --- monotone.cc 21be582ccd322a35a5d1864ee1251e5773054619 +++ monotone.cc cab8b2b01a23a5e82a37761b90517703c57c241a @@ -79,7 +79,7 @@ {"debug", 0, POPT_ARG_NONE, NULL, OPT_DEBUG, gettext_noop("print debug log to stderr while running"), NULL}, {"dump", 0, POPT_ARG_STRING, &argstr, OPT_DUMP, gettext_noop("file to dump debugging log to, on failure"), NULL}, {"quiet", 0, POPT_ARG_NONE, NULL, OPT_QUIET, gettext_noop("suppress log and progress messages"), NULL}, - {"help", 0, POPT_ARG_NONE, NULL, OPT_HELP, gettext_noop("display help message"), NULL}, + {"help", 'h', POPT_ARG_NONE, NULL, OPT_HELP, gettext_noop("display help message"), NULL}, {"version", 0, POPT_ARG_NONE, NULL, OPT_VERSION, gettext_noop("print version number, then exit"), NULL}, {"full-version", 0, POPT_ARG_NONE, NULL, OPT_FULL_VERSION, gettext_noop("print detailed version number, then exit"), NULL}, {"xargs", '@', POPT_ARG_STRING, &argstr, OPT_ARGFILE, gettext_noop("insert command line arguments taken from the given file"), NULL}, ======================================================================== --- monotone.texi 9b7b9ab00d31aead6a87466ff1a2d843c54084a8 +++ monotone.texi 6d5a231b85631453f85095ac4ce027c3fdc15e38 @@ -998,14 +998,17 @@ (For more information, see @ref{Naming Conventions}.) address@hidden @node Tutorial @chapter Tutorial This chapter illustrates the basic uses of monotone by means of an -example, fictional software project. Before we walk through the -tutorial, there are two minor issues to address: standard options and -revision selectors. +example, fictional software project. address@hidden Issues +Before we walk through the tutorial, there are two minor issues to +address: standard options and revision selectors. + @subsection Standard Options Before operating monotone, two important command-line options should be explained. ======================================================================== --- netsync.cc 5d53bf85b20e88af400ccea87f1233eefdfd5daa +++ netsync.cc 4bdd084e4dd25d0a85c5287e99850c30c4f6cc66 @@ -693,34 +693,34 @@ session::setup_client_tickers() { // xgettext: please use short message and try to avoid multibytes chars - byte_in_ticker.reset(new ticker(N_("bytes in"), ">", 1024, true)); + byte_in_ticker.reset(new ticker(_("bytes in"), ">", 1024, true)); // xgettext: please use short message and try to avoid multibytes chars - byte_out_ticker.reset(new ticker(N_("bytes out"), "<", 1024, true)); + byte_out_ticker.reset(new ticker(_("bytes out"), "<", 1024, true)); if (role == sink_role) { // xgettext: please use short message and try to avoid multibytes chars - revision_checked_ticker.reset(new ticker(N_("revs written"), "w", 1)); + revision_checked_ticker.reset(new ticker(_("revs written"), "w", 1)); // xgettext: please use short message and try to avoid multibytes chars - cert_in_ticker.reset(new ticker(N_("certs in"), "c", 3)); + cert_in_ticker.reset(new ticker(_("certs in"), "c", 3)); // xgettext: please use short message and try to avoid multibytes chars - revision_in_ticker.reset(new ticker(N_("revs in"), "r", 1)); + revision_in_ticker.reset(new ticker(_("revs in"), "r", 1)); } else if (role == source_role) { // xgettext: please use short message and try to avoid multibytes chars - cert_out_ticker.reset(new ticker(N_("certs out"), "C", 3)); + cert_out_ticker.reset(new ticker(_("certs out"), "C", 3)); // xgettext: please use short message and try to avoid multibytes chars - revision_out_ticker.reset(new ticker(N_("revs out"), "R", 1)); + revision_out_ticker.reset(new ticker(_("revs out"), "R", 1)); } else { I(role == source_and_sink_role); // xgettext: please use short message and try to avoid multibytes chars - revision_checked_ticker.reset(new ticker(N_("revs written"), "w", 1)); + revision_checked_ticker.reset(new ticker(_("revs written"), "w", 1)); // xgettext: please use short message and try to avoid multibytes chars - revision_in_ticker.reset(new ticker(N_("revs in"), "r", 1)); + revision_in_ticker.reset(new ticker(_("revs in"), "r", 1)); // xgettext: please use short message and try to avoid multibytes chars - revision_out_ticker.reset(new ticker(N_("revs out"), "R", 1)); + revision_out_ticker.reset(new ticker(_("revs out"), "R", 1)); } } @@ -1832,8 +1832,8 @@ // nb. this->role is our role, the server is in the opposite role L(F("received 'confirm' netcmd from server '%s' for pattern '%s' exclude '%s' in %s mode\n") % their_key_hash % our_include_pattern % our_exclude_pattern - % (this->role == source_and_sink_role ? "source and sink" : - (this->role == source_role ? "sink" : "source"))); + % (this->role == source_and_sink_role ? _("source and sink") : + (this->role == source_role ? _("sink") : _("source")))); // check their signature if (app.db.public_key_exists(their_key_hash)) @@ -2829,8 +2829,8 @@ L(F("received 'anonymous' netcmd from client for pattern '%s' excluding '%s' " "in %s mode\n") % their_include_pattern % their_exclude_pattern - % (role == source_and_sink_role ? "source and sink" : - (role == source_role ? "source " : "sink"))); + % (role == source_and_sink_role ? _("source and sink") : + (role == source_role ? _("source") : _("sink")))); set_session_key(hmac_key_encrypted); if (!process_anonymous_cmd(role, their_include_pattern, their_exclude_pattern)) @@ -2860,8 +2860,8 @@ L(F("received 'auth(hmac)' netcmd from client '%s' for pattern '%s' " "exclude '%s' in %s mode with nonce1 '%s'\n") % their_key_hash % their_include_pattern % their_exclude_pattern - % (role == source_and_sink_role ? "source and sink" : - (role == source_role ? "source " : "sink")) + % (role == source_and_sink_role ? _("source and sink") : + (role == source_role ? _("source") : _("sink"))) % hnonce1); set_session_key(hmac_key_encrypted); @@ -3200,8 +3200,8 @@ map > & sessions, app_state & app) { - L(F("accepting new connection on %s : %d\n") - % addr.get_name() % addr.get_port()); + L(F("accepting new connection on %s : %s\n") + % addr.get_name() % lexical_cast(addr.get_port())); Netxx::Peer client = server.accept_connection(); if (!client) @@ -3344,8 +3344,8 @@ Netxx::Address addr(address().c_str(), default_port, true); - P(F("beginning service on %s : %d\n") - % addr.get_name() % addr.get_port()); + P(F("beginning service on %s : %s\n") + % addr.get_name() % lexical_cast(addr.get_port())); Netxx::StreamServer server(addr, timeout); @@ -3374,8 +3374,8 @@ if (fd == -1) { if (armed_sessions.empty()) - L(F("timed out waiting for I/O (listening on %s : %d)\n") - % addr.get_name() % addr.get_port()); + L(F("timed out waiting for I/O (listening on %s : %s)\n") + % addr.get_name() % lexical_cast(addr.get_port())); } // we either got a new connection ======================================================================== --- po/POTFILES.in bd06ee5116d53df04a0065e56e3a6ef2b7837d8c +++ po/POTFILES.in 4d5f0163f7f56dce90515e2ea15edaca8daf790e @@ -58,6 +58,7 @@ sanity.hh schema_migration.cc schema_migration.hh +std_hooks.lua transforms.cc transforms.hh txt2c.cc ======================================================================== --- po/ja.po a3ec19a708293db5a8a1247f2c1dafaf367e6827 +++ po/ja.po 493e2f3062a07374112f0e7ed64d84a6ae8dc0d2 @@ -5,164 +5,144 @@ # msgid "" msgstr "" -"Project-Id-Version: monotone 0.19\n" -"Report-Msgid-Bugs-To: address@hidden" -"POT-Creation-Date: 2005-08-08 20:24-0700\n" -"PO-Revision-Date: 2005-09-18 14:55+0900\n" +"Project-Id-Version: monotone HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-09-20 00:54+0900\n" +"PO-Revision-Date: 2005-09-21 14:55+0900\n" "Last-Translator: Satoru SATOH \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" -#: app_state.cc:58 +#: app_state.cc:51 #, c-format msgid "initializing from directory %s\n" msgstr "ディレクトリ %s から初期化中\n" -#: app_state.cc:59 +#: app_state.cc:62 #, c-format -msgid "found working copy directory %s\n" -msgstr "作業コピーディレクトリ %s を発見\n" - -#: app_state.cc:61 -#, c-format -msgid "cannot change to directory to %s\n" -msgstr "ディレクトリ %s へ移動できません\n" - -#: app_state.cc:69 -#, c-format msgid "branch name is '%s'\n" msgstr "ブランチ名は '%s' です\n" -#: app_state.cc:75 +#: app_state.cc:69 #, c-format -msgid "relative directory is '%s'\n" -msgstr "相対ディレクトリは '%s' です\n" - -#: app_state.cc:82 -#, c-format msgid "setting dump path to %s\n" -msgstr "ダンプパスを %s に設定しています\n" +msgstr "ダンプパスを %s に設定\n" -#: app_state.cc:93 +#: app_state.cc:83 #, c-format msgid "working copy directory required but not found%s%s" -msgstr "必要な作業コピーディレクトリがみつかりませんでした: %s%s" +msgstr "作業コピーディレクトリが必要ですが、みつかりませんでした: %s%s" -#: app_state.cc:101 +#: app_state.cc:91 +#, c-format msgid "invalid directory ''" msgstr "無効なディレクトリ ''" -#: app_state.cc:105 +#: app_state.cc:93 #, c-format -msgid "cannot change to initial directory %s\n" -msgstr "初期ディレクトリ %s へ移動できません\n" +msgid "creating working copy in %s\n" +msgstr "%s 内に作業コピーを作成\n" -#: app_state.cc:109 +#: app_state.cc:99 #, c-format -msgid "create working copy in %s\n" -msgstr "%s 内に作業コピーを作成\n" +msgid "monotone bookkeeping directory '%s' already exists in '%s'\n" +msgstr "monotone 記録簿用ディレクトリ '%s' は既に '%s' 内に存在しています\n" -#: app_state.cc:120 +#: app_state.cc:102 #, c-format -msgid "could not create directory: %s: %s\n" -msgstr "ディレクトリを作成できませんでした: %s: %s\n" +msgid "creating bookkeeping directory '%s' for working copy in '%s'\n" +msgstr "作業コピーの記録簿用ディレクトリ '%s' を '%s' 内に作成\n" -#: app_state.cc:125 +#: app_state.cc:133 #, c-format -msgid "cannot change to new directory %s\n" -msgstr "新しいディレクトリ %s へ移動できません\n" +msgid "'%s' ignored by restricted path set\n" +msgstr "'%s' は制限パスセットによって無視されました\n" -#: app_state.cc:134 +#: app_state.cc:138 app_state.cc:156 #, c-format -msgid "monotone book-keeping directory '%s' already exists in '%s'\n" -msgstr "monotone book-keeping ディレクトリ '%s' は既に '%s' 内にあります\n" +msgid "unknown path '%s'\n" +msgstr "不明なパス '%s'\n" -#: app_state.cc:137 +#: app_state.cc:140 #, c-format -msgid "creating book-keeping directory '%s' for working copy in '%s'\n" -msgstr "作業コピー用の book-keeping ディレクトリ '%s' を '%s' 内に作成しています\n" +msgid "'%s' added to restricted path set\n" +msgstr "'%s' を制限パスセットに追加しました\n" -#: app_state.cc:159 +#: app_state.cc:151 #, c-format -msgid "'%s' prefixed to '%s'\n" -msgstr "'%s' は '%s' の前に付きます\n" +msgid "'%s' ignored by excluded path set\n" +msgstr "'%s' は除外パスセットによって無視されました\n" -#: app_state.cc:178 +#: app_state.cc:158 #, c-format -msgid "'%s' ignored by restricted path set\n" -msgstr "'%s' は制限パスセットによって無視されました\n" +msgid "'%s' added to excluded path set\n" +msgstr "'%s' を除外パスセットに追加しました\n" -#: app_state.cc:183 +#: app_state.cc:185 #, c-format -msgid "unknown path '%s'\n" -msgstr "不明なパス '%s'\n" +msgid "checking excluded path set for '%s'\n" +msgstr "'%s' について除外パスセットを調べています\n" -#: app_state.cc:185 +#: app_state.cc:192 app_state.cc:225 #, c-format -msgid "'%s' added to restricted path set\n" -msgstr "'%s' を制限パスセットに追加しました\n" +msgid "path '%s' found in excluded path set; '%s' excluded\n" +msgstr "パス '%s' は除外パスセットに含まれています; '%s' は除外されます\n" -#: app_state.cc:226 +#: app_state.cc:211 #, c-format msgid "checking restricted path set for '%s'\n" -msgstr "'%s' について制限パスセットをチェックしています\n" +msgstr "'%s' について制限パスセットを調べています\n" -#: app_state.cc:233 +#: app_state.cc:219 #, c-format msgid "path '%s' found in restricted path set; '%s' included\n" -msgstr "パス '%s' は制限パスセットに入っています; '%s' が含まれています\n" +msgstr "パス '%s' は制限パスセットに含まれています; '%s' は含められます\n" -#: app_state.cc:239 +#: app_state.cc:287 #, c-format -msgid "path '%s' not found in restricted path set; '%s' excluded\n" -msgstr "パス '%s' は制限パスセットに入っていません; '%s' は除外されています\n" +msgid "search root '%s' does not exist" +msgstr "検索ルート '%s' は存在しません" -#: app_state.cc:298 +#: app_state.cc:288 #, c-format -msgid "search root '%s' does not exist\n" -msgstr "検索ルート '%s' は存在しません\n" - -#: app_state.cc:300 -#, c-format msgid "search root '%s' is not a directory\n" msgstr "検索ルート '%s' はディレクトリではありません\n" -#: app_state.cc:301 +#: app_state.cc:290 #, c-format msgid "set search root to %s\n" msgstr "検索ルートを %s に設定\n" -#: app_state.cc:332 +#: app_state.cc:321 +#, c-format msgid "negative depth not allowed\n" msgstr "深さの値を負にすることはできません\n" -#: app_state.cc:340 +#: app_state.cc:329 +#, c-format msgid "negative or zero last not allowed\n" msgstr "最終値を負または零にすることはできません\n" -#: app_state.cc:449 +#: app_state.cc:438 #, c-format msgid "Failed to read options file %s" msgstr "オプションファイル '%s' の解析に失敗" -#: app_state.cc:466 +#: app_state.cc:455 #, c-format msgid "Failed to write options file %s" msgstr "オプションファイル '%s' の書き込みに失敗" -#: basic_io.cc:26 +#: basic_io.cc:26 basic_io.cc:27 #, c-format msgid "error in %s:%d:%d:E: %s" msgstr "エラー %s:%d:%d:E: %s" -#: basic_io.cc:27 +#: cert.cc:49 #, c-format -msgid "%s:%d:%d:E: %s" -msgstr "%s:%d:%d:E: %s" - -#: cert.cc:49 msgid "cert ok\n" msgstr "証明 OK\n" @@ -179,22 +159,22 @@ #: cert.cc:121 #, c-format msgid "trust function liked %d signers of %s cert on manifest %s\n" -msgstr "信頼関数 liked %d, %s 証明の署名, マニフェスト %s\n" +msgstr "trust function liked %d signers of %s cert on manifest %s\n" #: cert.cc:127 #, c-format msgid "trust function disliked %d signers of %s cert on manifest %s\n" -msgstr "信頼関数 disliked %d, %s 証明の署名, マニフェスト %s\n" +msgstr "trust function disliked %d signers of %s cert on manifest %s\n" #: cert.cc:174 #, c-format msgid "trust function liked %d signers of %s cert on revision %s\n" -msgstr "信頼関数 liked %d, %s 証明の署名, リビジョン %s\n" +msgstr "trust function liked %d signers of %s cert on revision %s\n" #: cert.cc:180 #, c-format msgid "trust function disliked %d signers of %s cert on revision %s\n" -msgstr "信頼関数 disliked %d, %s 証明の署名, リビジョン %s\n" +msgstr "trust function disliked %d signers of %s cert on revision %s\n" #: cert.cc:269 #, c-format @@ -211,7 +191,7 @@ msgid "cert: signable text %s\n" msgstr "証明: 署名テキスト %s\n" -#: cert.cc:364 keys.cc:480 +#: cert.cc:364 keys.cc:508 #, c-format msgid "no private key '%s' found in database or get_priv_key hook" msgstr "秘密鍵 '%s' はデータベース内にも get_priv_key フック内にもみつかりません" @@ -219,18 +199,18 @@ #: cert.cc:373 #, c-format msgid "mismatch between private key '%s' in database and get_priv_key hook" -msgstr "秘密鍵 '%s' はデータベース内のものとも get_priv_key フック内のもの" -"とも一致しません" +msgstr "秘密鍵 '%s' はデータベース内のものと get_priv_key フック内のものが" +"一致していません" #: cert.cc:477 +#, c-format msgid "no branch found for empty revision, please provide a branch name" msgstr "リビジョンが空のブランチはありません. ブランチ名を指定して下さい" #: cert.cc:486 #, c-format msgid "no branch certs found for revision %s, please provide a branch name" -msgstr "" -"リビジョン %s のブランチ証明がみつかりません. ブランチ名を指定して下さい" +msgstr "リビジョン %s のブランチ証明がみつかりません. ブランチ名を指定して下さい" #: cert.cc:490 #, c-format @@ -238,38 +218,40 @@ "multiple branch certs found for revision %s, please provide a branch name" msgstr "リビジョン %s のブランチ証明は複数あります. ブランチ名を指定して下さい" -#: cert.cc:507 rcs_import.cc:1234 revision.cc:1586 revision.cc:1618 +#: cert.cc:507 rcs_import.cc:1231 revision.cc:1594 revision.cc:1626 +#, c-format msgid "no unique private key for cert construction" -msgstr "証明構築のための固有の秘密鍵がありません" +msgstr "証明作成のための固有の秘密鍵がありません" #: cert.cc:622 #, c-format msgid "no default author name for branch '%s'" -msgstr "ブランチ '%s' についてデフォルトの作者 (author) 名がありません" +msgstr "ブランチ '%s' についてデフォルトの作成者名がありません" -#: change_set.cc:290 +#: change_set.cc:289 #, c-format msgid "tid %d: parent %d, type %s, name %s\n" msgstr "tid %d: 親 %d、タイプ %s、名前 %s\n" -#: change_set.cc:316 +#: change_set.cc:315 #, c-format msgid "%d -> %d\n" msgstr "%d -> %d\n" #: change_set.cc:1540 +#, c-format msgid "concatenating change sets\n" -msgstr "変更セットを結合しています\n" +msgstr "変更セットを結合中\n" #: change_set.cc:1563 #, c-format msgid "concatenating %d and %d deltas\n" -msgstr "%d と %d の差分を結合しています\n" +msgstr "%d と %d の差分を結合中\n" #: change_set.cc:1573 #, c-format msgid "processing delta on %s\n" -msgstr "%s の差分を処理しています\n" +msgstr "%s の差分を処理中\n" #: change_set.cc:1577 #, c-format @@ -279,7 +261,7 @@ #: change_set.cc:1582 #, c-format msgid "discarding delta [%s]->[%s] for deleted file '%s'\n" -msgstr "差分 [%s]->[%s] (対象は削除されたファイル '%s') を破棄しています\n" +msgstr "差分 [%s]->[%s] (対象は削除されたファイル '%s') を破棄\n" #: change_set.cc:1600 #, c-format @@ -292,6 +274,7 @@ msgstr "第二の変更セット内の %s の差分のコピーを転送しました\n" #: change_set.cc:1628 +#, c-format msgid "finished concatenation\n" msgstr "結合終了\n" @@ -323,23 +306,25 @@ #: change_set.cc:1852 #, c-format msgid "skipping common change on %s (tid %d)\n" -msgstr "%s (tid %d) への共通の変更をスキップします\n" +msgstr "%s (tid %d) への共通の変更をスキップ\n" #: change_set.cc:1857 #, c-format msgid "skipping neutral change of %s -> %s (tid %d)\n" -msgstr "中立の変更 %s -> %s (tid %d) をスキップします\n" +msgstr "中立の変更 %s -> %s (tid %d) をスキップ\n" #: change_set.cc:1864 #, c-format msgid "propagating change on %s -> %s (tid %d)\n" -msgstr "変更を伝播しています: %s -> %s (tid %d)\n" +msgstr "変更を伝播中: %s -> %s (tid %d)\n" #: change_set.cc:1880 +#, c-format msgid "conflict detected, resolved in A's favour\n" msgstr "競合を検出. A フレーバで解決\n" #: change_set.cc:1886 +#, c-format msgid "conflict detected, resolved in B's favour\n" msgstr "競合を検出. B フレーバで解決\n" @@ -366,7 +351,7 @@ #: change_set.cc:2131 #, c-format msgid "skipping delta '%s'->'%s' on deleted file '%s'\n" -msgstr "差分 '%s'->'%s' (対象=削除されたファイル '%s') をスキップしています\n" +msgstr "差分 '%s'->'%s' (対象=削除されたファイル '%s') をスキップ\n" #: change_set.cc:2139 #, c-format @@ -376,32 +361,32 @@ #: change_set.cc:2163 #, c-format msgid "propagating new file addition delta on '%s' : '%s' -> '%s'\n" -msgstr "'%s' の新規ファイル追加差分を伝えています: '%s' -> '%s'\n" +msgstr "'%s' の新規ファイル追加差分を伝播中: '%s' -> '%s'\n" #: change_set.cc:2175 #, c-format msgid "skipping new file addition delta on '%s' : '' -> '%s'\n" -msgstr "'%s' の新規ファイル追加差分をスキップしています: '' -> '%s'\n" +msgstr "'%s' の新規ファイル追加差分をスキップ: '' -> '%s'\n" #: change_set.cc:2183 #, c-format msgid "skipping common delta '%s' : '%s' -> '%s'\n" -msgstr "共通の差分 '%s' をスキップしています: '%s' -> '%s'\n" +msgstr "共通の差分 '%s' をスキップ: '%s' -> '%s'\n" #: change_set.cc:2189 #, c-format msgid "skipping neutral delta on '%s' : %s -> %s\n" -msgstr "中立の差分 '%s' をスキップしています: '%s' -> '%s'\n" +msgstr "中立の差分 '%s' をスキップ: '%s' -> '%s'\n" #: change_set.cc:2197 #, c-format msgid "propagating unperturbed delta on '%s' : '%s' -> '%s'\n" -msgstr "'%s' の摂動を受けない差分を伝えています: '%s' -> '%s'\n" +msgstr "'%s' の摂動を受けない差分を伝播中: '%s' -> '%s'\n" #: change_set.cc:2207 #, c-format msgid "merging delta '%s' : '%s' -> '%s' vs. '%s'\n" -msgstr "差分 '%s' を統合しています: '%s' -> '%s' 対 '%s'\n" +msgstr "差分 '%s' を統合中: '%s' -> '%s' 対 '%s'\n" #: change_set.cc:2220 #, c-format @@ -409,596 +394,903 @@ msgstr "'%s' への統合を解決しました: '%s' -> '%s'\n" #: change_set.cc:2249 +#, c-format msgid "merging change sets\n" msgstr "変更セットを統合中\n" #: change_set.cc:2311 +#, c-format msgid "finished merge\n" msgstr "統合終了\n" #: change_set.cc:2330 +#, c-format msgid "inverting change set\n" -msgstr "変更セットを反転\n" +msgstr "変更セットを反転中\n" #: change_set.cc:2360 #, c-format msgid "converted 'delete %s' to 'add as %s' in inverse\n" -msgstr "'%s の削除' を '%s の追加' (逆向き)に変換しました\n" +msgstr "'%s の削除' を '%s の追加' (逆方向)に変換しました\n" #: change_set.cc:2369 #, c-format msgid "converted add %s to delete in inverse\n" -msgstr "%s の追加を削除(逆向き)に変換しました\n" +msgstr "%s の追加を削除(逆方向)に変換しました\n" #: change_set.cc:2379 #, c-format msgid "converting delta %s -> %s on %s\n" -msgstr "差分 %s -> %s (対象=%s) を変換しています\n" +msgstr "差分 %s -> %s (対象 %s) を変換\n" #: change_set.cc:2381 #, c-format msgid "inverse is delta %s -> %s on %s\n" -msgstr "逆向きの差分は %s -> %s (対象=%s) です\n" +msgstr "逆方向の差分は %s -> %s (対象=%s) です\n" -#: change_set.cc:2443 +#: change_set.cc:2447 change_set.cc:2495 #, c-format -msgid "moving %s -> %s\n" -msgstr "移動中 %s -> %s\n" - -#: change_set.cc:2492 -#, c-format msgid "moving file %s -> %s\n" -msgstr "ファイルを移動中 %s -> %s\n" +msgstr "ファイルを移動 %s -> %s\n" -#: change_set.cc:2500 +#: change_set.cc:2454 change_set.cc:2503 #, c-format msgid "moving dir %s -> %s\n" -msgstr "ディレクトリを移動中 %s -> %s\n" +msgstr "ディレクトリを移動 %s -> %s\n" -#: change_set.cc:2978 +#: commands.cc:136 #, c-format -msgid "[begin changeset %s]\n" -msgstr "[変更セット %s 開始]\n" - -#: change_set.cc:2983 -#, c-format -msgid "%s" -msgstr "%s" - -#: change_set.cc:2984 -#, c-format -msgid "[end changeset %s]\n" -msgstr "[変更セット %s 終了]\n" - -#: change_set.cc:3016 -msgid "beginning disjoint_merge_test\n" -msgstr "disjoint_merge_test 開始\n" - -#: change_set.cc:3034 -msgid "finished disjoint_merge_test\n" -msgstr "disjoint_merge_test 終了\n" - -#: change_set.cc:3106 change_set.cc:3191 change_set.cc:3236 -#, c-format -msgid "informative failure: %s\n" -msgstr "情報の十分な失敗: %s\n" - -#: change_set.cc:3110 change_set.cc:3195 change_set.cc:3240 -#, c-format -msgid "runtime error: %s\n" -msgstr "実行時エラー: %s\n" - -#: change_set.cc:3117 -msgid "STARTING invert_change_test\n" -msgstr "invert_change_test 開始\n" - -#: change_set.cc:3151 -msgid "ENDING invert_change_test\n" -msgstr "invert_change_test 終了中\n" - -#: change_set.cc:3260 -#, c-format -msgid "%s:%d" -msgstr "%s:%d" - -#: change_set.cc:3262 -#, c-format -msgid "BEGINNING concatenation test %s\n" -msgstr "結合テスト %s 開始\n" - -#: change_set.cc:3267 -#, c-format -msgid "FINISHING concatenation test %s\n" -msgstr "結合テスト %s 終了中\n" - -#: change_set.cc:3322 -#, c-format -msgid "RUNNING bad_concatenate_change_test %s\n" -msgstr "bad_concatenate_change_test %s 実行中\n" - -#: change_set.cc:3330 -msgid "skipping change_set printing, one or both are not sane\n" -msgstr "change_set 表示をスキップ. 妥当でないものが一つ以上あります\n" - -#: change_set.cc:3335 -msgid "concat change_set is insane\n" -msgstr "change_set の結合は妥当ではありません\n" - -#: change_set.cc:3338 -msgid "Checking combined change set\n" -msgstr "複合変更セットをチェックしています\n" - -#: change_set.cc:3345 -msgid "combined_concat is insane\n" -msgstr "combined_concat は妥当ではありません\n" - -#: change_set.cc:3351 -#, c-format -msgid "RUNNING bad_concatenate_change_test %s again backwards\n" -msgstr "再度逆行して bad_concatenate_change_test %s を実行中\n" - -#: commands.cc:133 -#, c-format msgid "expanding command '%s'\n" -msgstr "コマンド '%s' を展開中\n" +msgstr "コマンド '%s' を展開\n" -#: commands.cc:150 +#: commands.cc:153 #, c-format msgid "expanded command to '%s'\n" msgstr "コマンドを '%s' に展開\n" -#: commands.cc:155 +#: commands.cc:158 #, c-format -msgid "command '%s' has multiple ambiguous expansions: \n" -msgstr "コマンド '%s' には曖昧な表現が複数含まれています: \n" +msgid "command '%s' has multiple ambiguous expansions:\n" +msgstr "'%s' だけでは曖昧で、展開できるコマンド候補は複数あります:\n" -#: commands.cc:234 +#: commands.cc:201 +msgid "commands:" +msgstr "コマンド:" + +#: commands.cc:245 #, c-format -msgid "executing %s command\n" -msgstr "%s コマンドを実行中\n" +msgid "executing command '%s'\n" +msgstr "コマンド '%s' を実行中\n" -#: commands.cc:240 +#: commands.cc:251 #, c-format msgid "unknown command '%s'\n" msgstr "不明なコマンド '%s'\n" -#: commands.cc:287 +#: commands.cc:298 #, c-format msgid "pid file '%s' already exists" msgstr "PID ファイル '%s' は既に存在しています" -#: commands.cc:362 +#: commands.cc:368 +msgid "" +"Enter a description of this change.\n" +"Lines beginning with `MT:' are removed automatically.\n" +msgstr "この変更の説明を入力して下さい\n" +"'MT:' で始まる行は自動的に削除されます\n" + +#: commands.cc:375 +#, c-format msgid "edit of log message failed" msgstr "ログメッセージの編集に失敗しました" -#: commands.cc:370 +#: commands.cc:384 +msgid "note: " +msgstr "ノート: " + +#: commands.cc:385 #, c-format msgid "" -"note: branch '%s' has multiple heads\n" -"note: perhaps consider 'monotone merge'" -msgstr "" -"注意: ブランチ '%s' には複数のヘッドがあります\n" -"注意: ’monotone merge' を実行した方がよいかもしれません" +"branch '%s' has multiple heads\n" +"perhaps consider 'monotone merge'" +msgstr "ブランチ '%s' には複数の最新版があります\n" +"’monotone merge' を実行した方がよいでしょう" -#: commands.cc:428 commands.cc:3617 +#: commands.cc:445 commands.cc:666 commands.cc:1304 commands.cc:1374 +#: commands.cc:1742 commands.cc:2608 commands.cc:2623 commands.cc:2626 +#: commands.cc:2824 commands.cc:3465 #, c-format msgid "no such revision '%s'" msgstr "リビジョン '%s' は存在しません" -#: commands.cc:435 +#: commands.cc:452 #, c-format msgid "expanding selection '%s'\n" -msgstr "セレクション '%s' を展開中\n" +msgstr "セレクション '%s' を展開\n" -#: commands.cc:443 +#: commands.cc:460 #, c-format msgid "no match for selection '%s'" msgstr "セレクション '%s' に一致するものがありません" -#: commands.cc:446 +#: commands.cc:463 #, c-format msgid "selection '%s' has multiple ambiguous expansions: \n" -msgstr "セレクション '%s' には複数の曖昧な展開がありえます: \n" +msgstr "'%s' だけでは曖昧で、展開できるセレクションの候補は複数あります: \n" -#: commands.cc:453 commands.cc:482 commands.cc:511 +#: commands.cc:470 #, c-format msgid "expanded to '%s'\n" msgstr "'%s' に展開\n" -#: commands.cc:462 commands.cc:491 +#: commands.cc:481 +#, c-format msgid "non-hex digits in id" -msgstr "ID 内に十六進数が含まれていません" +msgstr "ID に十六進数が含まれていません" -#: commands.cc:471 commands.cc:500 +#: commands.cc:490 #, c-format -msgid "partial id '%s' does not have a unique expansion" -msgstr "'%s' を含む ID は複数あり、一つの ID に展開することはできません" +msgid "partial id '%s' does not have an expansion" +msgstr "部分 ID '%s' を一つの ID に展開することはできません" -#: commands.cc:474 commands.cc:503 +#: commands.cc:493 #, c-format -msgid "partial id '%s' has multiple ambiguous expansions: \n" -msgstr "'%s' だけでは曖昧であり、展開できる ID は複数あります: \n" +msgid "partial id '%s' has multiple ambiguous expansions:\n" +msgstr "'%s' だけでは曖昧で、展開できる ID の候補は複数あります:\n" -#: commands.cc:481 commands.cc:510 +#: commands.cc:500 #, c-format -msgid "expanding partial id '%s'\n" -msgstr "部分 ID '%s' を展開しています\n" +msgid "expanded partial id '%s' to '%s'\n" +msgstr "部分 ID '%s' を '%s' に展開\n" +#: commands.cc:527 keys.cc:510 netsync.cc:2197 +#, c-format +msgid "no public key '%s' found in database" +msgstr "データベース内に公開鍵 '%s' はありません" + #: commands.cc:537 #, c-format -msgid "warning: no public key '%s' found in database\n" -msgstr "警告: 公開鍵 '%s' はデータベース内に存在しません\n" +msgid "" +"Key : %s\n" +"Sig : %s\n" +"Name : %s\n" +"Value : %s\n" +msgstr "" +"鍵 : %s\n" +"署名 : %s\n" +"名前 : %s\n" +"値 : %s\n" -#: commands.cc:646 +#: commands.cc:571 +msgid "ok" +msgstr "OK" + +#: commands.cc:574 +msgid "bad" +msgstr "NG" + +#: commands.cc:577 +msgid "unknown" +msgstr "不明" + +#: commands.cc:652 +#, c-format msgid "no keys found\n" msgstr "鍵がみつかりませんでした\n" -#: commands.cc:648 +#: commands.cc:654 #, c-format msgid "no keys found matching '%s'\n" msgstr "'%s' に一致する鍵はみつかりませんでした\n" -#: commands.cc:660 commands.cc:1438 commands.cc:1492 commands.cc:2976 +#: commands.cc:672 #, c-format -msgid "no revision %s found in database" -msgstr "リビジョン %s はデータベース内にみつかりませんでした" - -#: commands.cc:666 -#, c-format msgid "revision %s already has children. We cannot kill it." -msgstr "リビジョン %s は既に子を持っていて、削除できません" +msgstr "リビジョン %s は既に子を持っていて削除できません" -#: commands.cc:806 +#: commands.cc:802 commands.cc:824 commands.cc:856 commands.cc:880 +#: commands.cc:920 +msgid "key and cert" +msgstr "鍵と証明" + +#: commands.cc:802 commands.cc:824 commands.cc:856 +msgid "KEYID" +msgstr "KEYID" + +#: commands.cc:802 +msgid "generate an RSA key-pair" +msgstr "鍵対を生成" + +#: commands.cc:812 #, c-format msgid "key '%s' already exists in database" -msgstr "鍵 '%s' は既にデータベース内にあります" +msgstr "鍵 '%s' は既にデータベース内に存在しています" -#: commands.cc:810 +#: commands.cc:816 #, c-format msgid "generating key-pair '%s'\n" -msgstr "鍵ペア '%s' を生成しています\n" +msgstr "鍵対 '%s' を生成\n" -#: commands.cc:812 +#: commands.cc:818 #, c-format msgid "storing key-pair '%s' in database\n" -msgstr "鍵ペア '%s' をデータベースに保存しています\n" +msgstr "鍵対 '%s' をデータベースに保存\n" -#: commands.cc:829 +#: commands.cc:824 +msgid "drop a public and private key" +msgstr "公開鍵と秘密鍵を破棄" + +#: commands.cc:835 #, c-format msgid "dropping public key '%s' from database\n" -msgstr "公開鍵 '%s' をデータベースから破棄しています\n" +msgstr "公開鍵 '%s' をデータベースから破棄\n" -#: commands.cc:836 +#: commands.cc:842 #, c-format msgid "" "dropping private key '%s' from database\n" "\n" -msgstr "" -"秘密鍵 '%s' をデータベースから破棄しています\n" -"\n" +msgstr "秘密鍵 '%s' をデータベースから破棄\n\n" -#: commands.cc:837 -msgid "the private key data may not have been erased from the" -msgstr "秘密鍵データはデータベースから削除されていないかも" +#: commands.cc:843 +#, c-format +msgid "" +"the private key data may not have been erased from the\n" +"database. it is recommended that you use 'db dump' and\n" +"'db load' to be sure." +msgstr "秘密鍵データはデータベースから削除されていない\n" +"かもしれません。'db dump' と 'db load' で確かめることを\n" +"お勧めします" -#: commands.cc:838 -msgid "database. it is recommended that you use 'db dump' and" -msgstr "しれません. 'db dump' と 'db load' で確認することを" - -#: commands.cc:839 -msgid "'db load' to be sure." -msgstr "お勧めします." - -#: commands.cc:845 +#: commands.cc:851 #, c-format msgid "public or private key '%s' does not exist in database" msgstr "公開または秘密鍵 '%s' はデータベース内に存在しません" -#: commands.cc:861 +#: commands.cc:857 +msgid "change passphrase of a private RSA key" +msgstr "秘密 RSA 鍵のパスフレーズを変更" + +#: commands.cc:868 #, c-format msgid "key '%s' does not exist in database" msgstr "鍵 '%s' はデータベース内にありません" -#: commands.cc:868 +#: commands.cc:875 +#, c-format msgid "passphrase changed\n" msgstr "パスフレーズを変更しました\n" -#: commands.cc:894 +#: commands.cc:880 +msgid "REVISION CERTNAME [CERTVAL]" +msgstr "REVISION CERTNAME [CERTVAL]" + +#: commands.cc:881 +msgid "create a cert for a revision" +msgstr "リビジョンの証明を作成" + +#: commands.cc:901 +#, c-format msgid "no unique private key found, and no key specified" msgstr "固有の秘密鍵がみつからず、かつ鍵が指定されていません" -#: commands.cc:988 +#: commands.cc:920 +msgid "REVISION NAME VALUE SIGNER1 [SIGNER2 [...]]" +msgstr "REVISION NAME VALUE SIGNER1 [SIGNER2 [...]]" + +#: commands.cc:921 +msgid "" +"test whether a hypothetical cert would be trusted\n" +"by current settings" +msgstr "現在の設定で仮想証明が信頼可能かテスト" + +#: commands.cc:954 +#, c-format +msgid "" +"if a cert on: %s\n" +"with key: %s\n" +"and value: %s\n" +"was signed by: %s\n" +"it would be: %s\n" +msgstr "" +"証明 : %s\n" +"鍵 : %s\n" +"値 : %s\n" +"署名者 : %s\n" +"よっておそらく %s でしょう\n" + +#: commands.cc:963 +msgid "trusted" +msgstr "trusted" + +#: commands.cc:963 +msgid "UNtrusted" +msgstr "UNtrusted" + +#: commands.cc:966 commands.cc:979 commands.cc:991 commands.cc:1008 +#: commands.cc:1054 +msgid "review" +msgstr "レビュー" + +#: commands.cc:966 +msgid "REVISION TAGNAME" +msgstr "REVISION TAGNAME" + +#: commands.cc:967 +msgid "put a symbolic tag cert on a revision version" +msgstr "象徴的なタグ証明をリビジョンバージョンに付加" + +#: commands.cc:979 +msgid "ID (pass|fail|true|false|yes|no|1|0)" +msgstr "ID (pass|fail|true|false|yes|no|1|0)" + +#: commands.cc:980 +msgid "note the results of running a test on a revision" +msgstr "リビジョンのテストの実行結果を記録" + +#: commands.cc:991 commands.cc:1008 +msgid "REVISION" +msgstr "REVISION" + +#: commands.cc:992 +msgid "approve of a particular revision" +msgstr "特定のリビジョンを承認" + +#: commands.cc:1003 +#, c-format msgid "need --branch argument for approval" msgstr "承認には --branch 引数が必要です" -#: commands.cc:1007 +#: commands.cc:1009 +msgid "disapprove of a particular revision" +msgstr "特定のリビジョンを非承認" + +#: commands.cc:1022 #, c-format -msgid "revision %s has %d changesets, cannot invert\n" -msgstr "リビジョン %s には %d 個の変更セットがあり、反転できません\n" +msgid "revision '%s' has %d changesets, cannot invert\n" +msgstr "リビジョン '%s' には %d 個の変更セットがあり、反転できません\n" -#: commands.cc:1011 +#: commands.cc:1026 +#, c-format msgid "need --branch argument for disapproval" -msgstr "不可とするには --branch 引数が必要です" +msgstr "非承認とするには --branch 引数が必要です" -#: commands.cc:1034 -#, c-format -msgid "disapproval of revision %s" -msgstr "リビジョン %s を不可とする" +#: commands.cc:1054 +msgid "REVISION [COMMENT]" +msgstr "REVISION [COMMENT]" -#: commands.cc:1050 +#: commands.cc:1055 +msgid "comment on a particular revision" +msgstr "特定のリビジョンにコメント" + +#: commands.cc:1065 +#, c-format msgid "edit comment failed" msgstr "コメント編集に失敗" -#: commands.cc:1053 +#: commands.cc:1068 +#, c-format msgid "empty comment" msgstr "空のコメント" -#: commands.cc:1170 -#, c-format -msgid "cannot find file %s revision %s" -msgstr "ファイル %s リビジョン %s を発見できませんでした" +#: commands.cc:1078 commands.cc:1103 commands.cc:1130 commands.cc:1262 +#: commands.cc:2092 commands.cc:2215 commands.cc:2773 commands.cc:3306 +msgid "working copy" +msgstr "作業コピー" -#: commands.cc:1211 commands.cc:2378 -msgid "empty log message" -msgstr "空のログメッセージ" +#: commands.cc:1078 commands.cc:1103 +msgid "PATH..." +msgstr "PATH..." -#: commands.cc:1246 +#: commands.cc:1079 +msgid "add files to working copy" +msgstr "ファイルを作業コピーに追加" + +#: commands.cc:1104 +msgid "drop files from working copy" +msgstr "ファイルを作業コピーから削除" + +#: commands.cc:1130 +msgid "SRC DST" +msgstr "SRC DST" + +#: commands.cc:1131 +msgid "rename entries in the working copy" +msgstr "作業コピー内のエントリの名称を変更" + +#: commands.cc:1159 commands.cc:1172 commands.cc:2694 commands.cc:2711 +#: commands.cc:3366 +msgid "debug" +msgstr "デバッグ" + +#: commands.cc:1159 +msgid "load file contents into db" +msgstr "ファイルの内容をデータベースに読み込み" + +#: commands.cc:1172 +msgid " " +msgstr "<親> <左> <右>" + +#: commands.cc:1173 +msgid "merge 3 files and output result" +msgstr "三つのファイルを統合し結果を出力" + +#: commands.cc:1183 +#, c-format msgid "ancestor file id does not exist" msgstr "祖先のファイル ID は存在しません" -#: commands.cc:1249 +#: commands.cc:1186 +#, c-format msgid "left file id does not exist" msgstr "左ファイル ID は存在しません" -#: commands.cc:1252 +#: commands.cc:1189 +#, c-format msgid "right file id does not exist" msgstr "右ファイル ID は存在しません" -#: commands.cc:1263 +#: commands.cc:1200 +#, c-format msgid "merge failed" msgstr "統合失敗" -#: commands.cc:1370 -#, c-format -msgid "no file version %s found in database" -msgstr "バージョン %s のファイルはデータベース内にはありませんでした" +#: commands.cc:1205 commands.cc:1285 commands.cc:1631 commands.cc:2561 +#: commands.cc:3249 commands.cc:3446 commands.cc:3483 +msgid "informative" +msgstr "情報" -#: commands.cc:1382 +#: commands.cc:1205 commands.cc:2215 commands.cc:2561 commands.cc:3306 +msgid "[PATH]..." +msgstr "[PATH]..." + +#: commands.cc:1205 +msgid "show status of working copy" +msgstr "作業コピーの状態を表示" + +#: commands.cc:1262 +msgid "[PATH]" +msgstr "[PATH]" + +#: commands.cc:1263 +msgid "calculate identity of PATH or stdin" +msgstr "PATH または標準入力を識別" + +#: commands.cc:1286 +msgid "FILENAME" +msgstr "FILENAME" + +#: commands.cc:1287 +msgid "write file from database to stdout" +msgstr "データベースのファイルを標準出力に書き出し" + +#: commands.cc:1318 #, c-format msgid "no file '%s' found in revision '%s'\n" msgstr "ファイル '%s' はリビジョン '%s' にはありませんでした\n" -#: commands.cc:1387 +#: commands.cc:1322 #, c-format -msgid "dumping file %s\n" -msgstr "ファイル %s をダンプ中\n" +msgid "dumping file '%s'\n" +msgstr "ファイル '%s' をダンプ\n" -#: commands.cc:1411 -#, c-format -msgid "no manifest version %s found in database" -msgstr "マニフェストバージョン %s はデータベース内にはありませんでした" +#: commands.cc:1330 commands.cc:1437 commands.cc:3049 commands.cc:3098 +#: commands.cc:3183 commands.cc:3190 commands.cc:3651 +msgid "tree" +msgstr "ツリー" -#: commands.cc:1415 -#, c-format -msgid "dumping manifest %s\n" -msgstr "マニフェスト %s をダンプ中\n" +#: commands.cc:1330 +msgid "[DIRECTORY]\n" +msgstr "[DIRECTORY]\n" -#: commands.cc:1442 -#, c-format -msgid "dumping revision %s\n" -msgstr "リビジョン %s をダンプ中\n" +#: commands.cc:1331 +msgid "" +"check out a revision from database into directory.\n" +"If a revision is given, that's the one that will be checked out.\n" +"Otherwise, it will be the head of the branch (given or implicit).\n" +"If no directory is given, the branch name will be used as directory" +msgstr "" +"データベースからあるリビジョンを取り出してディレクトリに\n" +"書き出します。リビジョンが指定されていればそれを取り出し、\n" +"未指定なら、明示的または暗黙的に指定されたブランチの最新版を\n" +"取り出します。ディレクトリが未指定ならディレクトリ名として\n" +"ブランチ名を使います" -#: commands.cc:1468 commands.cc:1480 +#: commands.cc:1348 commands.cc:1362 +#, c-format msgid "need --branch argument for branch-based checkout" msgstr "ブランチを基準にしたチェックアウトには --branch 引数が必要です" -#: commands.cc:1483 +#: commands.cc:1365 #, c-format msgid "branch %s is empty" msgstr "ブランチ %s は空です" -#: commands.cc:1484 +#: commands.cc:1366 #, c-format msgid "branch %s has multiple heads" -msgstr "ブランチ %s には複数のヘッド(最新版)が存在しています" +msgstr "ブランチ %s には複数の最新版が存在しています" -#: commands.cc:1505 +#: commands.cc:1387 #, c-format msgid "found %d %s branch certs on revision %s\n" -msgstr "%d %s ブランチ証明をリビジョン %s でみつけました\n" +msgstr "%d %s ブランチ証明がリビジョン %s でみつかりました\n" -#: commands.cc:1510 +#: commands.cc:1392 #, c-format msgid "revision %s is not a member of branch %s\n" msgstr "リビジョン %s はブランチ %s には属していません\n" -#: commands.cc:1526 +#: commands.cc:1398 #, c-format +msgid "checkout directory '%s' already exists" +msgstr "取り出すディレクトリ '%s' は既に存在しています" + +#: commands.cc:1412 +#, c-format msgid "no manifest %s found in database" -msgstr "マニフェスト %s はデータベース内にはありませんでした" +msgstr "マニフェスト %s はデータベース内にはみつかりません" -#: commands.cc:1528 +#: commands.cc:1414 #, c-format msgid "checking out revision %s to directory %s\n" -msgstr "リビジョン %s をディレクトリ %s にチェックアウト中\n" +msgstr "リビジョン %s をディレクトリ %s に取り出し中\n" -#: commands.cc:1534 +#: commands.cc:1420 #, c-format msgid "no file %s found in database for %s" -msgstr "ファイル %s (対象=%s)はデータベース内にはありませんでした" +msgstr "ファイル %s (対象 %s)はデータベース内にはみつかりません" -#: commands.cc:1538 commands.cc:3505 +#: commands.cc:1424 commands.cc:3353 #, c-format msgid "writing file %s to %s\n" msgstr "ファイル %s を %s に書き込み中\n" -#: commands.cc:1559 commands.cc:3210 +#: commands.cc:1437 +msgid "show unmerged head revisions of branch" +msgstr "ブランチの統合されていない最新リビジョンを表示" + +#: commands.cc:1445 commands.cc:3058 +#, c-format msgid "please specify a branch, with --branch=BRANCH" msgstr "--branch=BRANCH というようにブランチを指定して下さい" -#: commands.cc:1564 commands.cc:3214 commands.cc:3284 commands.cc:3287 +#: commands.cc:1450 commands.cc:3062 commands.cc:3132 commands.cc:3135 #, c-format msgid "branch '%s' is empty\n" msgstr "ブランチ '%s' は空です\n" -#: commands.cc:1566 +#: commands.cc:1452 #, c-format msgid "branch '%s' is currently merged:\n" msgstr "ブランチ '%s' は現在統合済みです:\n" -#: commands.cc:1568 +#: commands.cc:1454 #, c-format msgid "branch '%s' is currently unmerged:\n" msgstr "ブランチ '%s' は現在未統合です:\n" -#: commands.cc:1607 +#: commands.cc:1493 #, c-format msgid "no epoch for branch %s\n" msgstr "ブランチ %s は epoch を持ちません\n" -#: commands.cc:1807 commands.cc:1809 commands.cc:1872 +#: commands.cc:1632 +msgid "" +"certs ID\n" +"keys [PATTERN]\n" +"branches\n" +"epochs [BRANCH [...]]\n" +"tags\n" +"vars [DOMAIN]\n" +"known\n" +"unknown\n" +"ignored\n" +"missing" +msgstr "" +"certs ID\n" +"keys [PATTERN]\n" +"branches\n" +"epochs [BRANCH [...]]\n" +"tags\n" +"vars [DOMAIN]\n" +"known\n" +"unknown\n" +"ignored\n" +"missing" + +#: commands.cc:1642 +msgid "" +"show database objects, or the current working copy manifest,\n" +"or unknown, intentionally ignored, or missing state files" +msgstr "" +"データベースオブジェクト、現在の作業コピーのマニフェスト、\n" +"不明な、無視された、または失なわれた状態のファイルを表示" + +#: commands.cc:1679 commands.cc:1705 commands.cc:1729 commands.cc:1747 +#: commands.cc:1766 commands.cc:1785 commands.cc:1803 commands.cc:1819 +#: commands.cc:1839 +msgid "packet i/o" +msgstr "パケット I/O" + +#: commands.cc:1679 commands.cc:1705 +msgid "OLDID NEWID" +msgstr "OLDID NEWID" + +#: commands.cc:1680 +msgid "write manifest delta packet to stdout" +msgstr "マニフェスト差分パケットを標準出力に出力" + +#: commands.cc:1694 commands.cc:1696 commands.cc:1760 #, c-format -msgid "no such manifest %s" -msgstr "マニフェスト %s は存在しません" +msgid "no such manifest '%s'" +msgstr "マニフェスト '%s' は存在しません" -#: commands.cc:1832 commands.cc:1834 commands.cc:1891 +#: commands.cc:1706 +msgid "write file delta packet to stdout" +msgstr "ファイル差分パケットを標準出力に出力" + +#: commands.cc:1720 commands.cc:1722 commands.cc:1779 commands.cc:2113 #, c-format -msgid "no such file %s" -msgstr "ファイル %s は存在しません" +msgid "no such file '%s'" +msgstr "ファイル '%s' は存在しません" -#: commands.cc:1854 -#, c-format -msgid "no such revision %s" -msgstr "リビジョン %s は存在しません" +#: commands.cc:1729 commands.cc:1747 commands.cc:1766 commands.cc:1785 +#: commands.cc:1803 commands.cc:1819 +msgid "ID" +msgstr "ID" -#: commands.cc:1923 +#: commands.cc:1729 +msgid "write revision data packet to stdout" +msgstr "リビジョンデータパケットを標準出力に出力" + +#: commands.cc:1747 +msgid "write manifest data packet to stdout" +msgstr "マニフェストデータパケットを標準出力に出力" + +#: commands.cc:1766 +msgid "write file data packet to stdout" +msgstr "ファイルデータパケットを標準出力に出力" + +#: commands.cc:1785 +msgid "write cert packets to stdout" +msgstr "証明パケットを標準出力に出力" + +#: commands.cc:1803 +msgid "write public key packet to stdout" +msgstr "公開鍵パケットを標準出力に出力" + +#: commands.cc:1811 #, c-format msgid "public key '%s' does not exist in database" msgstr "公開鍵 '%s' はデータベース内に存在しません" -#: commands.cc:1939 +#: commands.cc:1819 +msgid "write private key packet to stdout" +msgstr "秘密鍵パケットを標準出力に出力" + +#: commands.cc:1827 #, c-format msgid "public and private key '%s' do not exist in database" msgstr "公開または秘密鍵 '%s' はデータベース内に存在しません" -#: commands.cc:1956 +#: commands.cc:1840 +msgid "read packets from files or stdin" +msgstr "ファイルまたは標準入力からパケットを読み込み" + +#: commands.cc:1848 +#, c-format msgid "no packets found on stdin" msgstr "標準入力にパケットをみつけることができませんでした" -#: commands.cc:1958 -msgid "read 1 packet\n" -msgstr "1 パケット読み込み\n" +#: commands.cc:1859 +#, c-format +msgid "no packets found in given file" +msgid_plural "no packets found in given files" +msgstr[0] "ファイル内にパケットは含まれていません" +msgstr[1] "ファイル内にパケットは含まれていません" -#: commands.cc:1960 +#: commands.cc:1863 #, c-format -msgid "read %d packets\n" -msgstr "%d パケット読み込み\n" +msgid "read %d packet" +msgid_plural "read %d packets" +msgstr[0] "%d パケット読み込み" +msgstr[1] "%d パケット読み込み" -#: commands.cc:1999 +#: commands.cc:1867 commands.cc:1956 commands.cc:1971 commands.cc:1985 +#: commands.cc:2000 +msgid "network" +msgstr "ネットワーク" + +#: commands.cc:1868 +msgid "rebuild the indices used to sync over the network" +msgstr "ネットワークを介して同期するのに使う索引を再構築" + +#: commands.cc:1902 #, c-format msgid "setting default server to %s\n" -msgstr "デフォルトのサーバーを %s に設定しています\n" +msgstr "デフォルトのサーバーを %s に設定\n" -#: commands.cc:2005 +#: commands.cc:1908 +#, c-format msgid "no hostname given" msgstr "ホスト名を指定して下さい" -#: commands.cc:2007 +#: commands.cc:1910 +#, c-format msgid "no server given and no default server set" msgstr "サーバが未指定であり、デフォルトのサーバーも設定されていません" -#: commands.cc:2011 +#: commands.cc:1914 #, c-format msgid "using default server address: %s\n" msgstr "デフォルトのサーバーアドレスを利用: %s\n" -#: commands.cc:2023 +#: commands.cc:1926 #, c-format msgid "setting default branch include pattern to '%s'\n" -msgstr "ブランチ名に含めるデフォルトパターンを '%s' に設定しています\n" +msgstr "ブランチ名に含めるデフォルトパターンを '%s' に設定\n" -#: commands.cc:2029 +#: commands.cc:1932 #, c-format msgid "setting default branch exclude pattern to '%s'\n" -msgstr "ブランチ名に含めないデフォルトパターンを '%s' に設定しています\n" +msgstr "ブランチ名に含めないデフォルトパターンを '%s' に設定\n" -#: commands.cc:2035 +#: commands.cc:1938 +#, c-format msgid "no branch pattern given" msgstr "ブランチ名を指定して下さい" -#: commands.cc:2037 +#: commands.cc:1940 +#, c-format msgid "no branch pattern given and no default pattern set" msgstr "ブランチパターンが未指定、かつデフォルトパターンも設定されていません" -#: commands.cc:2041 +#: commands.cc:1944 #, c-format msgid "using default branch include pattern: '%s'\n" msgstr "ブランチ名に含めるデフォルトのパターンを利用: '%s'\n" -#: commands.cc:2049 +#: commands.cc:1952 #, c-format msgid "excluding: %s\n" msgstr "除外: %s\n" -#: commands.cc:2061 commands.cc:2090 commands.cc:2107 +#: commands.cc:1956 commands.cc:1971 commands.cc:1985 +msgid "[ADDRESS[:PORTNUMBER] [PATTERN]]" +msgstr "[ADDRESS[:PORTNUMBER] [PATTERN]]" + +#: commands.cc:1957 +msgid "push branches matching PATTERN to netsync server at ADDRESS" +msgstr "PATTERN に合うブランチを netsync サーバー (ADDRESS) にプッシュ" + +#: commands.cc:1964 commands.cc:1993 commands.cc:2010 +#, c-format msgid "could not guess default signing key" msgstr "デフォルトの署名鍵を推測できませんでした" -#: commands.cc:2076 +#: commands.cc:1972 +msgid "pull branches matching PATTERN from netsync server at ADDRESS" +msgstr "PATTERN に合うブランチを netsync サーバー (ADDRESS) から取り込み" + +#: commands.cc:1979 +#, c-format msgid "doing anonymous pull; use -kKEYNAME if you need authentication\n" -msgstr "匿名 pull を実行中. 認証が必要な場合は -kKEYNAME を使って下さい\n" +msgstr "匿名で取り込んでいます; 認証が必要な場合は -kKEYNAME を使って下さい\n" -#: commands.cc:2111 +#: commands.cc:1986 +msgid "sync branches matching PATTERN with netsync server at ADDRESS" +msgstr "PATTERN に合うブランチを netsync サーバー (ADDRESS) と同期" + +#: commands.cc:2000 +msgid "ADDRESS[:PORTNUMBER] PATTERN ..." +msgstr "ADDRESS[:PORTNUMBER] PATTERN ..." + +#: commands.cc:2001 msgid "" +"listen on ADDRESS and serve the specified branches to connecting clients" +msgstr "ADDRESS で待機し、指定ブランチを接続クライアントに提供" + +#: commands.cc:2014 +#, c-format +msgid "" "need permission to store persistent passphrase (see hook persist_phrase_ok())" +msgstr "永続的にパスフレーズを保存しておきたいのなら権限が必要です " +"(フック persist_phrase_ok() を参照して下さい)" + +#: commands.cc:2024 +msgid "database" +msgstr "データベース" + +#: commands.cc:2025 +msgid "" +"init\n" +"info\n" +"version\n" +"dump\n" +"load\n" +"migrate\n" +"execute\n" +"kill_rev_locally ID\n" +"kill_branch_certs_locally BRANCH\n" +"kill_tag_locally TAG\n" +"check\n" +"changesetify\n" +"rebuild\n" +"set_epoch BRANCH EPOCH\n" msgstr "" -"永続的にパスフレーズを保存しておきたいのなら権限が必要です (フック " -"persist_phrase_ok() を参照して下さい)" +"init\n" +"info\n" +"version\n" +"dump\n" +"load\n" +"migrate\n" +"execute\n" +"kill_rev_locally ID\n" +"kill_branch_certs_locally BRANCH\n" +"kill_tag_locally TAG\n" +"check\n" +"changesetify\n" +"rebuild\n" +"set_epoch BRANCH EPOCH\n" -#: commands.cc:2210 -#, c-format -msgid "file '%s' not found" -msgstr "ファイル '%s' がみつかりません" +#: commands.cc:2039 +msgid "manipulate database state" +msgstr "データベースの状態を操作" -#: commands.cc:2278 work.cc:114 +#: commands.cc:2092 +msgid "" +"set FILE ATTR VALUE\n" +"get FILE [ATTR]\n" +"drop FILE" +msgstr "" +"set FILE ATTR VALUE\n" +"get FILE [ATTR]\n" +"drop FILE" + +#: commands.cc:2093 +msgid "set, get or drop file attributes" +msgstr "ファイル属性を設定/取得/削除" + +#: commands.cc:2181 work.cc:113 #, c-format msgid "registering %s file in working copy\n" -msgstr "作業コピー内の %s ファイルを登録中\n" +msgstr "作業コピー内の %s ファイルを登録\n" -#: commands.cc:2307 +#: commands.cc:2210 #, c-format msgid "failed to parse date string '%s': %s" msgstr "データ文字列 '%s' の解析に失敗: %s" -#: commands.cc:2311 -#, c-format -msgid "failed to parse date string '%s'" -msgstr "データ文字列 '%s' の解析に失敗" +#: commands.cc:2216 +msgid "commit working copy to database" +msgstr "作業コピーをデータベースにコミット" -#: commands.cc:2335 +#: commands.cc:2234 +#, c-format msgid "no changes to commit\n" msgstr "コミットすべき変更がありません\n" -#: commands.cc:2346 +#: commands.cc:2245 #, c-format msgid "beginning commit on branch '%s'\n" msgstr "ブランチ '%s' についてコミット開始\n" -#: commands.cc:2347 +#: commands.cc:2246 #, c-format -msgid "new manifest %s\n" -msgstr "新規マニフェスト %s\n" +msgid "" +"new manifest '%s'\n" +"new revision '%s'\n" +msgstr "新規マニフェスト '%s'\n" +"新規リビジョン '%s'\n" -#: commands.cc:2348 +#: commands.cc:2253 #, c-format -msgid "new revision %s\n" -msgstr "新規リビジョン %s\n" - -#: commands.cc:2352 msgid "--message and --message-file are mutually exclusive" msgstr "--message と --message-file を同時に指定することはできません" -#: commands.cc:2355 +#: commands.cc:2256 +#, c-format msgid "" "MT/log is non-empty and --message supplied\n" "perhaps move or delete MT/log,\n" @@ -1008,7 +1300,8 @@ "もしかしたら MT/log を移動/削除したか、コマンド\n" "行から --message を削除したのではありませんか?" -#: commands.cc:2360 +#: commands.cc:2261 +#, c-format msgid "" "MT/log is non-empty and --message-file supplied\n" "perhaps move or delete MT/log,\n" @@ -1018,588 +1311,1072 @@ "もしかしたら MT/log を移動/削除したか、コマンド\n" "行から --message-file を削除したのではありませんか?" -#: commands.cc:2390 +#: commands.cc:2279 #, c-format +msgid "empty log message; commit canceled" +msgstr "空のログメッセージ; コミットは取り消されました" + +#: commands.cc:2291 +#, c-format msgid "revision %s already in database\n" msgstr "リビジョン %s は既にデータベース内に存在しています\n" -#: commands.cc:2395 +#: commands.cc:2296 #, c-format msgid "inserting new revision %s\n" msgstr "新規リビジョン %s を挿入中\n" -#: commands.cc:2404 +#: commands.cc:2305 #, c-format msgid "skipping manifest %s, already in database\n" -msgstr "既にデータベースにあるマニフェスト %s をスキップしています\n" +msgstr "既にデータベースにあるマニフェスト %s をスキップ\n" -#: commands.cc:2408 +#: commands.cc:2309 #, c-format msgid "inserting manifest delta %s -> %s\n" msgstr "マニフェスト差分 %s -> %s を挿入中\n" -#: commands.cc:2419 +#: commands.cc:2320 #, c-format msgid "inserting full manifest %s\n" msgstr "完全マニフェスト %s を挿入中\n" -#: commands.cc:2432 +#: commands.cc:2333 #, c-format msgid "skipping file delta %s, already in database\n" -msgstr "既にデータベースにあるファイル差分 %s をスキップしています\n" +msgstr "既にデータベースにあるファイル差分 %s をスキップ\n" -#: commands.cc:2438 +#: commands.cc:2339 #, c-format msgid "inserting delta %s -> %s\n" msgstr "差分 %s -> %s を挿入中\n" -#: commands.cc:2448 commands.cc:2465 +#: commands.cc:2349 commands.cc:2366 #, c-format msgid "file '%s' modified during commit, aborting" msgstr "ファイル '%s' は commit 前に変更されました. 中止します" -#: commands.cc:2458 +#: commands.cc:2359 #, c-format msgid "inserting full version %s\n" msgstr "完全なバージョン %s を挿入中\n" -#: commands.cc:2492 +#: commands.cc:2393 #, c-format msgid "committed revision %s\n" msgstr "リビジョン %s をコミット\n" -#: commands.cc:2498 +#: commands.cc:2399 +#, c-format msgid "" "note: this revision creates divergence\n" "note: you may (or may not) wish to run 'monotone merge'" -msgstr "" -"注意: このリビジョンによって分岐が生じます\n" +msgstr "注意: このリビジョンによって分岐が生じます\n" "注意: 分岐を望まないなら 'monotone merge' を実行して下さい" -#: commands.cc:2607 -#, c-format -msgid "--- %s\t%s\n" -msgstr "--- %s\t%s\n" +#: commands.cc:2562 +msgid "" +"show current diffs on stdout.\n" +"If one revision is given, the diff between the working directory and\n" +"that revision is shown. If two revisions are given, the diff between\n" +"them is given. If no format is specified, unified is used by default." +msgstr "現在の差分を標準出力に表示\n" +"リビジョンが一つ指定されていれば作業ディレクトリとそのリビジョンの\n" +"差分を、二つ指定されていればそれらリビジョン間の差分を表示します。\n" +"形式が指定されていなければ、デフォルトでは unified 形式が使用されます。" -#: commands.cc:2608 +#: commands.cc:2578 #, c-format -msgid "+++ %s\t%s\n" -msgstr "+++ %s\t%s\n" +msgid "" +"--diff-args requires --external\n" +"try adding --external or removing --diff-args?" +msgstr "" +"--diff-args は --external を必要とします。\n" +"--external を追加するか、--diff-args を省いてみてはどうですか?" -#: commands.cc:2609 +#: commands.cc:2612 #, c-format -msgid "@@ -0,0 +1,%d @@\n" -msgstr "@@ -0,0 +1,%d @@\n" - -#: commands.cc:2695 commands.cc:2711 commands.cc:2715 -#, c-format -msgid "revision %s does not exist" -msgstr "リビジョン %s は存在しません" - -#: commands.cc:2699 msgid "current revision has no ancestor" msgstr "現在のリビジョンには祖先がありません" -#: commands.cc:2742 +#: commands.cc:2651 #, c-format msgid "no common ancestor for %s and %s" msgstr "%s と %s には共通の祖先がありません" -#: commands.cc:2748 +#: commands.cc:2657 +#, c-format msgid "concatenating un-committed changeset to composite\n" -msgstr "合成のためにコミットされていない変更セットを連結しています\n" +msgstr "合成のためにコミットされていない変更セットを連結\n" -#: commands.cc:2774 -msgid "# no changes" -msgstr "# 変更点なし" +#: commands.cc:2694 commands.cc:2711 +msgid "LEFT RIGHT" +msgstr "LEFT RIGHT" -#: commands.cc:2902 +#: commands.cc:2694 +msgid "print least common ancestor" +msgstr "最も近い祖先を表示" + +#: commands.cc:2707 +msgid "no common ancestor found" +msgstr "共通の祖先はありませんでした" + +#: commands.cc:2711 +msgid "print least common ancestor / dominator" +msgstr "最も近い祖先 / 支配者を表示" + +#: commands.cc:2725 +msgid "no common ancestor/dominator found" +msgstr "共通の祖先 / 支配者がみつかりません" + +#: commands.cc:2750 #, c-format msgid "updating %s to %s\n" msgstr "%s を %s に更新中\n" -#: commands.cc:2951 +#: commands.cc:2774 +msgid "" +"update working copy.\n" +"If a revision is given, base the update on that revision. If not,\n" +"base the update on the head of the branch (given or implicit)." +msgstr "" +"作業コピーを更新。\n" +"リビジョンが指定されていればそれに基づいて、指定されていなければ\n" +"明示的または暗黙に指定されたブランチの最新版に基づいて更新します。" + +#: commands.cc:2799 +#, c-format msgid "this working directory is a new project; cannot update" msgstr "この作業ディレクトリは新規のプロジェクトです; 更新できません" -#: commands.cc:2958 +#: commands.cc:2806 +#, c-format msgid "" "your request matches no descendents of the current revision\n" "in fact, it doesn't even match the current revision\n" "maybe you want --revision=" -msgstr "" -"現在のリビジョンにもその子孫にもご希望に沿うものはありません.\n" +msgstr "現在のリビジョンにもその子孫にもご希望に沿うものはありません.\n" "もしかしたら --revision=<他のブランチのリビジョン> としたいのでは\n" "ありませんか?" -#: commands.cc:2963 +#: commands.cc:2811 +#, c-format msgid "multiple update candidates:\n" msgstr "複数の更新候補:\n" -#: commands.cc:2966 +#: commands.cc:2815 #, c-format -msgid " %s\n" -msgstr " %s\n" +msgid "choose one with 'monotone update -r'\n" +msgstr "'monotone update -r' として一つ選択\n" -#: commands.cc:2967 -msgid "choose one with 'monotone update '\n" -msgstr "'monotone update ' として一つ選択\n" - -#: commands.cc:2968 +#: commands.cc:2816 +#, c-format msgid "multiple candidates remain after selection" -msgstr "選択より後ろに複数の候補が残っています" +msgstr "選択したものより後に複数の候補が残っています" -#: commands.cc:2983 +#: commands.cc:2831 #, c-format msgid "already up to date at %s\n" msgstr "%s は既に最新です\n" -#: commands.cc:2987 +#: commands.cc:2835 #, c-format msgid "selected update target %s\n" msgstr "選択された更新ターゲット %s\n" -#: commands.cc:2999 +#: commands.cc:2847 #, c-format msgid "" "revision %s is not a member of branch %s\n" "try again with explicit --branch\n" -msgstr "" -"リビジョン %s はブランチ %s に属していません\n" +msgstr "リビジョン %s はブランチ %s に属していません\n" "明示的に --branch を指定して再試行して下さい\n" -#: commands.cc:3014 +#: commands.cc:2862 #, c-format msgid "updating along chosen edge %s -> %s\n" msgstr "選択した先端 %s -> %s に従って更新中\n" -#: commands.cc:3025 +#: commands.cc:2873 #, c-format msgid "merging working copy with chosen edge %s -> %s\n" msgstr "作業コピーを選択した先端 %s -> %s と統合中\n" -#: commands.cc:3074 +#: commands.cc:2922 #, c-format msgid "updated to base revision %s\n" -msgstr "ベースリビジョン %s に更新\n" +msgstr "基準リビジョン %s に更新\n" -#: commands.cc:3140 +#: commands.cc:2988 #, c-format -msgid "common ancestor %s found\n" +msgid "" +"common ancestor %s found\n" +"trying 3-way merge\n" msgstr "共通の祖先 %s を発見\n" +"3方結合を試みています\n" -#: commands.cc:3141 -msgid "trying 3-way merge\n" -msgstr "3 方向統合を試行中\n" - -#: commands.cc:3151 +#: commands.cc:2999 +#, c-format msgid "no common ancestor found, synthesizing edges\n" msgstr "共通の祖先がありませんでしたので、先端同士を同期中\n" -#: commands.cc:3215 +#: commands.cc:3049 +msgid "merge unmerged heads of branch" +msgstr "統合されていないブランチの複数の最新版を統合" + +#: commands.cc:3063 #, c-format msgid "branch '%s' is merged\n" msgstr "ブランチ '%s' を統合\n" -#: commands.cc:3221 +#: commands.cc:3069 #, c-format msgid "starting with revision 1 / %d\n" msgstr "リビジョン 1 / %d について作業開始\n" -#: commands.cc:3225 +#: commands.cc:3073 #, c-format msgid "merging with revision %d / %d\n" msgstr "リビジョン %d / %d について統合中\n" -#: commands.cc:3226 commands.cc:3227 commands.cc:3294 commands.cc:3378 -#: commands.cc:3379 +#: commands.cc:3074 commands.cc:3075 commands.cc:3142 commands.cc:3226 +#: commands.cc:3227 #, c-format msgid "[source] %s\n" msgstr "[元] %s\n" -#: commands.cc:3239 +#: commands.cc:3092 commands.cc:3179 commands.cc:3246 #, c-format -msgid "" -"merge of %s\n" -" and %s\n" -msgstr "" -"%s と\n" -" %s の統合\n" - -#: commands.cc:3244 commands.cc:3331 commands.cc:3398 -#, c-format msgid "[merged] %s\n" msgstr "[統合済み] %s\n" -#: commands.cc:3247 +#: commands.cc:3095 +#, c-format msgid "note: your working copies have not been updated\n" msgstr "注意: 作業コピーは更新されていません\n" -#: commands.cc:3285 commands.cc:3288 +#: commands.cc:3098 +msgid "SOURCE-BRANCH DEST-BRANCH" +msgstr "SOURCE-BRANCH DEST-BRANCH" + +#: commands.cc:3099 +msgid "merge from one branch to another asymmetrically" +msgstr "一方のブランチを他方に非同期に統合" + +#: commands.cc:3133 commands.cc:3136 #, c-format msgid "branch '%s' is not merged\n" msgstr "ブランチ '%s' は統合されていません\n" -#: commands.cc:3293 +#: commands.cc:3141 #, c-format msgid "propagating %s -> %s\n" msgstr "伝播中 %s -> %s\n" -#: commands.cc:3295 +#: commands.cc:3143 #, c-format msgid "[target] %s\n" msgstr "[先] %s\n" -#: commands.cc:3300 +#: commands.cc:3148 #, c-format msgid "branch '%s' is up-to-date with respect to branch '%s'\n" msgstr "ブランチ '%s' はブランチ '%s' に対して最新です\n" -#: commands.cc:3302 +#: commands.cc:3150 +#, c-format msgid "no action taken\n" msgstr "何もしません\n" -#: commands.cc:3306 +#: commands.cc:3154 #, c-format msgid "no merge necessary; putting %s in branch '%s'\n" msgstr "統合は必要ありません. %s をブランチ '%s' 内に取り込み中\n" -#: commands.cc:3323 -#, c-format +#: commands.cc:3183 +msgid "refresh the inodeprint cache" +msgstr "i-node 表示キャッシュを更新" + +#: commands.cc:3191 msgid "" -"propagate from branch '%s' (head %s)\n" -" to branch '%s' (head %s)\n" +"LEFT-REVISION RIGHT-REVISION DEST-BRANCH\n" +"LEFT-REVISION RIGHT-REVISION COMMON-ANCESTOR DEST-BRANCH" msgstr "" -"ブランチ '%s' (ヘッド %s) から伝播\n" -"ブランチ '%s' (ヘッド %s) へ\n" +"LEFT-REVISION RIGHT-REVISION DEST-BRANCH\n" +"LEFT-REVISION RIGHT-REVISION COMMON-ANCESTOR DEST-BRANCH" -#: commands.cc:3360 commands.cc:3362 +#: commands.cc:3193 +msgid "merge two explicitly given revisions, placing result in given branch" +msgstr "明示的に指定した二つのリビジョンを統合。結果は指定ブランチへ。" + +#: commands.cc:3208 commands.cc:3210 #, c-format msgid "%s is not an ancestor of %s" msgstr "%s は %s の祖先ではありません" -#: commands.cc:3371 +#: commands.cc:3219 #, c-format msgid "%s and %s are the same revision, aborting" msgstr "%s と %s は同じリビジョンです. 中止します" -#: commands.cc:3373 commands.cc:3375 +#: commands.cc:3221 commands.cc:3223 #, c-format msgid "%s is already an ancestor of %s" msgstr "%s は既に %s の祖先となっています" -#: commands.cc:3389 +#: commands.cc:3249 +msgid "(revision|manifest|file|key) PARTIAL-ID" +msgstr "(revision|manifest|file|key) PARTIAL-ID" + +#: commands.cc:3250 +msgid "complete partial id" +msgstr "部分 ID を補完" + +#: commands.cc:3259 #, c-format -msgid "" -"explicit_merge of %s\n" -" and %s\n" -" using ancestor %s\n" -" to branch '%s'\n" -msgstr "" -"%s と %s の explicit_merge\n" -"祖先 %s をブランチ '%s' に使用\n" - -#: commands.cc:3411 msgid "non-hex digits in partial id" msgstr "部分 ID に十六進数が含まれていません" -#: commands.cc:3497 +#: commands.cc:3307 +msgid "revert file(s), dir(s) or entire working copy" +msgstr "ファイル、ディレクトリまたは完全な作業コピーの変更を破棄" + +#: commands.cc:3345 #, c-format msgid "reverting %s from %s to %s\n" msgstr "%s を %s から %s へ戻しています\n" -#: commands.cc:3501 +#: commands.cc:3349 #, c-format msgid "no file version %s found in database for %s" msgstr "バージョン %s のファイルはデータベース内にみつかりません (対象: %s)" -#: commands.cc:3616 +#: commands.cc:3366 +msgid "RCSFILE..." +msgstr "RCSFILE..." + +#: commands.cc:3367 +msgid "" +"parse versions in RCS files\n" +"this command doesn't reconstruct or import revisions.you probably want " +"cvs_import" +msgstr "" +"RCS ファイル内のバージョンを解析\n" +"このコマンドは (CVS の) リビジョンを再構築または取り込みはしません。" +"おそらくあなたの期待しているのは cvs_import でしょう。" + +#: commands.cc:3383 +msgid "rcs" +msgstr "RCS 関連" + +#: commands.cc:3383 +msgid "CVSROOT" +msgstr "CVSROOT" + +#: commands.cc:3383 +msgid "import all versions in CVS repository" +msgstr "CVS リポジトリ内のすべてのバージョンを取り込む" + +#: commands.cc:3446 +msgid "PATH" +msgstr "PATH" + +#: commands.cc:3447 +msgid "print annotated copy of the file from REVISION" +msgstr "REVISION の注釈付きのファイルのコピーを表示" + +#: commands.cc:3464 #, c-format msgid "no revision for file '%s' in database" msgstr "ファイル '%s' に対するリビジョンはデータベース内にみつかりませんでした" -#: commands.cc:3619 +#: commands.cc:3467 #, c-format msgid "annotate file file_path '%s'\n" msgstr "注釈ファイル file_path '%s'\n" -#: commands.cc:3628 +#: commands.cc:3476 #, c-format -msgid "No such file '%s' in revision %s\n" +msgid "no such file '%s' in revision '%s'\n" msgstr "ファイル '%s' はリビジョン %s 内にはありません\n" -#: commands.cc:3630 +#: commands.cc:3478 #, c-format msgid "annotate for file_id %s\n" msgstr "file_id %s に対する注釈\n" -#: commands.cc:3696 +#: commands.cc:3483 +msgid "[FILE]" +msgstr "[FILE]" + +#: commands.cc:3484 +msgid "" +"print history in reverse order (filtering by 'FILE'). If one or more\n" +"revisions are given, use them as a starting point." +msgstr "" +"降順で履歴を表示 ('FILE' でフィルタ)。一つ以上のリビジョンが指定されて\n" +"いればそれを開始点として利用。" + +#: commands.cc:3544 #, c-format msgid "revision %s does not exist in db, skipping\n" msgstr "リビジョン %s は db 内にありません. スキップします\n" -#: commands.cc:3729 +#: commands.cc:3577 #, c-format msgid "revision '%s' in '%s' maps to '%s' in %s\n" msgstr "リビジョン '%s' ('%s' 内) を '%s' (%s 内) にマップ\n" -#: commands.cc:3877 +#: commands.cc:3651 +msgid "DIRECTORY" +msgstr "DIRECTORY" + +#: commands.cc:3651 +msgid "setup a new working copy directory" +msgstr "新規作業コピーディレクトリを作成" + +#: commands.cc:3657 #, c-format +msgid "need --branch argument for setup" +msgstr "作成には --branch 引数が必要です" + +#: commands.cc:3666 +msgid "automation" +msgstr "自動化" + +#: commands.cc:3667 +msgid "" +"interface_version\n" +"heads [BRANCH]\n" +"ancestors REV1 [REV2 [REV3 [...]]]\n" +"attributes [FILE]\n" +"parents REV\n" +"descendents REV1 [REV2 [REV3 [...]]]\n" +"children REV\n" +"graph\n" +"erase_ancestors [REV1 [REV2 [REV3 [...]]]]\n" +"toposort [REV1 [REV2 [REV3 [...]]]]\n" +"ancestry_difference NEW_REV [OLD_REV1 [OLD_REV2 [...]]]\n" +"leaves\n" +"inventory\n" +"stdio\n" +"certs REV\n" +"select SELECTOR\n" +"get_file ID\n" +"get_manifest [ID]\n" +"get_revision [ID]\n" +msgstr "" +"interface_version\n" +"heads [BRANCH]\n" +"ancestors REV1 [REV2 [REV3 [...]]]\n" +"attributes [FILE]\n" +"parents REV\n" +"descendents REV1 [REV2 [REV3 [...]]]\n" +"children REV\n" +"graph\n" +"erase_ancestors [REV1 [REV2 [REV3 [...]]]]\n" +"toposort [REV1 [REV2 [REV3 [...]]]]\n" +"ancestry_difference NEW_REV [OLD_REV1 [OLD_REV2 [...]]]\n" +"leaves\n" +"inventory\n" +"stdio\n" +"certs REV\n" +"select SELECTOR\n" +"get_file ID\n" +"get_manifest [ID]\n" +"get_revision [ID]\n" + +#: commands.cc:3686 +msgid "automation interface" +msgstr "自動化インターフェース" + +#: commands.cc:3700 commands.cc:3716 +msgid "vars" +msgstr "変数" + +#: commands.cc:3700 +msgid "DOMAIN NAME VALUE" +msgstr "DOMAIN NAME VALUE" + +#: commands.cc:3701 +msgid "set the database variable NAME to VALUE, in domain DOMAIN" +msgstr "ドメイン DOMAIN のデータベース変数 NAME を VALUE に設定" + +#: commands.cc:3716 +msgid "DOMAIN NAME" +msgstr "DOMAIN NAME" + +#: commands.cc:3717 +msgid "remove the database variable NAME in domain DOMAIN" +msgstr "ドメイン DOMAIN のデータベース変数 NAME を消去" + +#: commands.cc:3728 +#, c-format msgid "no var with name %s in domain %s" msgstr "%s という変数はドメイン %s 内にはありません" -#: database.cc:82 +#: database_check.cc:109 #, c-format +msgid "checking %d files\n" +msgstr "%d 個のファイルを検証中\n" + +#: database_check.cc:111 +msgid "files" +msgstr "ファイル" + +#: database_check.cc:116 +#, c-format +msgid "checking file %s\n" +msgstr "ファイル %s を検証中\n" + +#: database_check.cc:134 +#, c-format +msgid "checking %d manifests\n" +msgstr "%d 個のマニフェストを検証中\n" + +#: database_check.cc:136 rcs_import.cc:1259 +msgid "manifests" +msgstr "マニフェスト" + +#: database_check.cc:141 +#, c-format +msgid "checking manifest %s\n" +msgstr "マニフェスト %s を検証中\n" + +#: database_check.cc:153 +#, c-format +msgid "error parsing manifest %s: %s" +msgstr "マニフェスト %s: %s を解析中にエラー" + +#: database_check.cc:190 +#, c-format +msgid "checking %d revisions\n" +msgstr "%d 個のリビジョンを検証中\n" + +#: database_check.cc:192 database_check.cc:380 netsync.cc:3718 +#: rcs_import.cc:1258 +msgid "revisions" +msgstr "リビジョン" + +#: database_check.cc:197 +#, c-format +msgid "checking revision %s\n" +msgstr "リビジョン %s を検証中\n" + +#: database_check.cc:209 +#, c-format +msgid "error parsing revision %s: %s" +msgstr "リビジョン %s: %s を解析中にエラー" + +#: database_check.cc:277 +#, c-format +msgid "checked %d revisions after starting with %d\n" +msgstr "%d 個のリビジョンを %d からはじめて検証しました\n" + +#: database_check.cc:289 +#, c-format +msgid "checking %d ancestry edges\n" +msgstr "%d 個の祖先の端を検証中\n" + +#: database_check.cc:291 +msgid "ancestry" +msgstr "祖先" + +#: database_check.cc:322 +#, c-format +msgid "checking %d public keys\n" +msgstr "%d 個の公開鍵を検証中\n" + +#: database_check.cc:324 netsync.cc:3722 +msgid "keys" +msgstr "鍵" + +#: database_check.cc:348 +#, c-format +msgid "checking %d revision certs\n" +msgstr "%d 個のリビジョン証明を検証中\n" + +#: database_check.cc:350 netsync.cc:3720 +msgid "certs" +msgstr "証明" + +#: database_check.cc:378 +#, c-format +msgid "checking local history of %d revisions\n" +msgstr "%d 個のリビジョンのローカルの履歴を検証中\n" + +#: database_check.cc:413 +#, c-format +msgid "file %s missing (%d manifest references)\n" +msgstr "ファイル %s がありません (マニフェスト参照: %d)\n" + +#: database_check.cc:420 +#, c-format +msgid "file %s unreferenced\n" +msgstr "ファイル %s は参照されていません\n" + +#: database_check.cc:442 +#, c-format +msgid "manifest %s missing (%d revision references)\n" +msgstr "マニフェスト %s がありません (リビジョン参照: %d)\n" + +#: database_check.cc:449 +#, c-format +msgid "manifest %s unreferenced\n" +msgstr "マニフェスト %s は参照されていません\n" + +#: database_check.cc:455 +#, c-format +msgid "manifest %s incomplete (%d missing files)\n" +msgstr "マニフェスト %s は不完全です (みつからないファイル: %d)\n" + +#: database_check.cc:462 +#, c-format +msgid "manifest %s is not parseable (perhaps with unnormalized paths?)\n" +msgstr "マニフェスト %s を解析できません (パスが正規化されていないのでは?)\n" + +#: database_check.cc:469 +#, c-format +msgid "manifest %s is not in normalized form\n" +msgstr "マニフェスト %s は正規化された形式になっていません\n" + +#: database_check.cc:493 +#, c-format +msgid "revision %s missing (%d revision references; %d cert references)\n" +msgstr "リビジョン %s がありません (リビジョン参照: %d, 証明参照: %d)\n" + +#: database_check.cc:500 +#, c-format +msgid "revision %s incomplete (%d missing manifests)\n" +msgstr "リビジョン %s は不完全です (みつからないマニフェスト: %d)\n" + +#: database_check.cc:507 +#, c-format +msgid "revision %s incomplete (%d missing revisions)\n" +msgstr "リビジョン %s は不完全です (みつからないリビジョン: %d)\n" + +#: database_check.cc:514 +#, c-format +msgid "revision %s incomplete (%d incomplete manifests)\n" +msgstr "リビジョン %s は不完全です (不完全なマニフェスト: %d)\n" + +#: database_check.cc:521 +#, c-format msgid "" +"revision %s mismatched parents (%d ancestry parents; %d revision refs)\n" +msgstr "リビジョン %s は親と不一致です (親: %d; リビジョン参照: %d)\n" + +#: database_check.cc:530 +#, c-format +msgid "revision %s mismatched children (%d ancestry children; %d parents)\n" +msgstr "リビジョン %s は子と不一致です (子: %d; 親: %d)\n" + +#: database_check.cc:542 +#, c-format +msgid "revision %s has bad history (%s)\n" +msgstr "リビジョン %s は不正な履歴 (%s) を持っています\n" + +#: database_check.cc:549 +#, c-format +msgid "revision %s is not parseable (perhaps with unnormalized paths?)\n" +msgstr "リビジョン %s を解析できません (パスが正規化されていないのでは?)\n" + +#: database_check.cc:556 +#, c-format +msgid "revision %s is not in normalized form\n" +msgstr "リビジョン %s は正規化された形式ではありません\n" + +#: database_check.cc:573 +#, c-format +msgid "key %s signed %d certs\n" +msgstr "鍵 %s は %d 個の証明の署名に使われています\n" + +#: database_check.cc:580 +#, c-format +msgid "key %s missing (signed %d certs)\n" +msgstr "鍵 %s がありません (%d 個の証明を署名)\n" + +#: database_check.cc:613 +#, c-format +msgid "revision %s unchecked signature in %s cert from missing key %s\n" +msgstr "リビジョン %s の %s 証明(失われた鍵 %s) " +"の署名は検証されたものではありません\n" + +#: database_check.cc:621 +#, c-format +msgid "revision %s bad signature in %s cert from key %s\n" +msgstr "リビジョン %s の %s 証明 (鍵 %s) の不正な署名を無視します\n" + +#: database_check.cc:636 +#, c-format +msgid "revision %s missing %s cert\n" +msgstr "リビジョン %s は %s 証明を欠いています\n" + +#: database_check.cc:645 +#, c-format +msgid "revision %s mismatched certs (%d authors %d dates %d changelogs)\n" +msgstr "リビジョン %s は証明に合致しません (%d 作者 %d 日時 %d 変更ログ)\n" + +#: database_check.cc:717 +#, c-format +msgid "%d missing files\n" +msgstr "みつからないファイル: %d\n" + +#: database_check.cc:719 +#, c-format +msgid "%d unreferenced files\n" +msgstr "参照されていないファイル: %d\n" + +#: database_check.cc:722 +#, c-format +msgid "%d missing manifests\n" +msgstr "みつからないマニフェスト: %d\n" + +#: database_check.cc:724 +#, c-format +msgid "%d unreferenced manifests\n" +msgstr "参照されていないマニフェスト: %d\n" + +#: database_check.cc:726 +#, c-format +msgid "%d incomplete manifests\n" +msgstr "不完全なマニフェスト: %d\n" + +#: database_check.cc:728 +#, c-format +msgid "%d manifests not parseable (perhaps with invalid paths)\n" +msgstr "解析できないマニフェスト(不適切なパスを指定していませんか?): %d\n" + +#: database_check.cc:731 +#, c-format +msgid "%d manifests not in normalized form\n" +msgstr "正規化された形式になっていないマニフェスト: %d\n" + +#: database_check.cc:734 +#, c-format +msgid "%d missing revisions\n" +msgstr "みつからないリビジョン: %d\n" + +#: database_check.cc:736 +#, c-format +msgid "%d incomplete revisions\n" +msgstr "不完全なリビジョン: %d\n" + +#: database_check.cc:738 +#, c-format +msgid "%d mismatched parents\n" +msgstr "一致しない親: %d\n" + +#: database_check.cc:740 +#, c-format +msgid "%d mismatched children\n" +msgstr "一致しない子: %d\n" + +#: database_check.cc:742 +#, c-format +msgid "%d revisions with bad history\n" +msgstr "不正な履歴を持つリビジョン: %d\n" + +#: database_check.cc:744 +#, c-format +msgid "%d revisions not parseable (perhaps with invalid paths)\n" +msgstr "解析できないリビジョン (パスが不適切なのでは?): %d\n" + +#: database_check.cc:747 +#, c-format +msgid "%d revisions not in normalized form\n" +msgstr "正規化された形式になっていないリビジョン: %d\n" + +#: database_check.cc:750 +#, c-format +msgid "%d missing keys\n" +msgstr "みつからない鍵: %d\n" + +#: database_check.cc:753 +#, c-format +msgid "%d missing certs\n" +msgstr "みつからない証明: %d\n" + +#: database_check.cc:755 +#, c-format +msgid "%d mismatched certs\n" +msgstr "一致しない証明: %d\n" + +#: database_check.cc:757 +#, c-format +msgid "%d unchecked signatures due to missing keys\n" +msgstr "鍵がみつからないために検証されていない署名: %d\n" + +#: database_check.cc:759 +#, c-format +msgid "%d bad signatures\n" +msgstr "不正な署名: %d\n" + +#: database_check.cc:784 +#, c-format +msgid "" +"check complete: %d files; %d manifests; %d revisions; %d keys; %d certs\n" +msgstr "検証完了: %d ファイル; %d マニフェスト; %d リビジョン; %d 鍵; %d 証明\n" + +#: database_check.cc:790 +#, c-format +msgid "total problems detected: %d (%d serious)\n" +msgstr "検出した障害総計: %d (深刻: %d)\n" + +#: database_check.cc:792 +#, c-format +msgid "serious problems detected" +msgstr "深刻な問題を検出しました" + +#: database_check.cc:794 +#, c-format +msgid "minor problems detected\n" +msgstr "軽微な問題を検出しました\n" + +#: database_check.cc:796 +#, c-format +msgid "database is good\n" +msgstr "データベースは正常です\n" + +#: database.cc:80 +#, c-format +msgid "" "database schemas do not match: wanted %s, got %s. try migrating database" -msgstr "" -"データベーススキーマの不一致: 期待した %s ではなく %s を取得. データベースを" -"統合してみて下さい" +msgstr "データベーススキーマが一致しません: 結果は期待した %s ではなく" +"%s。データベースを統合してみて下さい" -#: database.cc:139 +#: database.cc:135 database.cc:197 #, c-format -msgid "database %s is a directory\n" -msgstr "データベース %s はディレクトリです\n" +msgid "database %s does not exist" +msgstr "データベース %s は存在しません" -#: database.cc:146 +#: database.cc:136 #, c-format +msgid "%s is a directory, not a database" +msgstr "%s はデータベースではなくディレクトリです" + +#: database.cc:143 +#, c-format msgid "unable to probe database version in file %s" msgstr "ファイル %s 内のデータベースバージョンを検出できませんでした" -#: database.cc:153 +#: database.cc:150 #, c-format msgid "database %s is not an sqlite version 3 file, try dump and reload" -msgstr "" -"データベース %s は SQLite バージョン 3 のファイルではありません. ダンプした" -"後、再度読み込んでみて下さい" +msgstr "データベース %s は SQLite ver. 3 のファイルではありません。" +"ダンプした後再度読み込んでみて下さい" -#: database.cc:169 +#: database.cc:172 database.cc:183 #, c-format -msgid "sqlite error [%d]: %s" -msgstr "SQLite エラー [%d]: %s" +msgid "sqlite error: %d: %s" +msgstr "SQLite エラー: %d: %s" #: database.cc:177 -msgid "no database specified" -msgstr "データベース未指定" +msgid "make sure database and containing directory are writeable" +msgstr "データベースとそれを含むディレクトリが書き込み" +"可能であるか確認して下さい" -#: database.cc:182 +#: database.cc:198 #, c-format -msgid "database %s does not exist" -msgstr "データベース %s は存在しません" - -#: database.cc:184 -#, c-format msgid "database %s is a directory" msgstr "データベース %s はディレクトリです" -#: database.cc:213 +#: database.cc:224 #, c-format msgid "could not initialize database: %s: already exists" msgstr "データベースを初期化できませんでした: %s: 既に存在しています" -#: database.cc:218 +#: database.cc:229 #, c-format msgid "" "existing (possibly stale) journal file '%s' has same stem as new database '%" -"s'" -msgstr "" -"既存の (おそらく古い) ジャーナルファイル '%s' は新しいデータベース '%s' と同" -"じ幹を持っています" +"s'\n" +"cancelling database creation" +msgstr "既存の (おそらく古い) ジャーナルファイル '%s' は新しいデータベース " +"'%s' と同じ幹を持っています\nデータベース作成を中止します" -#: database.cc:243 +#: database.cc:348 #, c-format -msgid "INSERT INTO %s VALUES(" -msgstr "INSERT INTO %s VALUES(" +msgid "cannot create %s; it already exists" +msgstr "%s を作成できません; 既に存在しています" -#: database.cc:334 database.cc:435 database.cc:452 -msgid "need database name" -msgstr "データベース名が必要です" +#: database.cc:412 +#, c-format +msgid "" +"schema version : %s\n" +"counts:\n" +" full manifests : %u\n" +" manifest deltas : %u\n" +" full files : %u\n" +" file deltas : %u\n" +" revisions : %u\n" +" ancestry edges : %u\n" +" certs : %u\n" +"bytes:\n" +" full manifests : %u\n" +" manifest deltas : %u\n" +" full files : %u\n" +" file deltas : %u\n" +" revisions : %u\n" +" cached ancestry : %u\n" +" certs : %u\n" +" total : %u\n" +msgstr "スキーマバージョン : %s\n" +"個数:\n" +" 完全なマニフェスト: %u\n" +" マニフェスト差分 : %u\n" +" 完全なファイル : %u\n" +" ファイル差分 : %u\n" +" リビジョン : %u\n" +" 祖先の先端 : %u\n" +" 証明 : %u\n" +"バイト数:\n" +" 完全なマニフェスト: %u\n" +" マニフェスト差分 : %u\n" +" 完全なファイル : %u\n" +" ファイル差分 : %u\n" +" リビジョン : %u\n" +" キャッシュ済の祖先: %u\n" +" 証明 : %u\n" +" 総計 : %u\n" -#: database.cc:336 +#: database.cc:465 #, c-format -msgid "cannot create %s; it already exists\n" -msgstr "%s を作成できません; 既に存在しています\n" +msgid "database schema version: %s" +msgstr "基準スキーマバージョン: %s" -#: database.cc:530 +#: database.cc:483 +msgid "mcerts" +msgstr "mcerts" + +#: database.cc:484 +msgid "pubkeys" +msgstr "公開鍵" + +#: database.cc:485 +msgid "privkeys" +msgstr "秘密鍵" + +#: database.cc:545 +#, c-format msgid "statement cache statistics\n" msgstr "ステートメントキャッシュ統計\n" -#: database.cc:531 +#: database.cc:546 #, c-format msgid "prepared %d statements\n" msgstr "%d 個のプリペアードステートメント\n" -#: database.cc:536 +#: database.cc:551 #, c-format msgid "%d executions of %s\n" msgstr "%d 実行 (%s)\n" -#: database.cc:593 +#: database.cc:608 #, c-format msgid "prepared statement %s\n" msgstr "プリペアードステートメント %s\n" -#: database.cc:597 +#: database.cc:612 #, c-format msgid "multiple statements in query: %s\n" msgstr "クエリ中に複数のステートメント: %s\n" -#: database.cc:603 +#: database.cc:618 #, c-format msgid "wanted %d columns got %d in query: %s\n" -msgstr "%d 列要求しましたが得たのは %d 列です: %s\n" +msgstr "クエリで %d 列要求しましたが得たのは %d 列です: %s\n" -#: database.cc:609 +#: database.cc:624 #, c-format msgid "binding %d parameters for %s\n" msgstr "%d 変数を %s にバインド\n" -#: database.cc:623 +#: database.cc:638 #, c-format msgid "binding %d with value '%s'\n" msgstr "%d を値 '%s' にバインド\n" -#: database.cc:639 +#: database.cc:654 #, c-format msgid "null result in query: %s\n" msgstr "クエリ中に結果 null が含まれています: %s\n" -#: database.cc:657 +#: database.cc:672 #, c-format msgid "wanted %d rows got %s in query: %s\n" -msgstr "%d 行要求しましたが得たのは %s です: %s\n" +msgstr "クエリで %d 行要求しましたが得たのは %s です: %s\n" -#: database.cc:853 +#: database.cc:682 #, c-format -msgid "%08.8x%08.8x%08.8x%08.8x%08.8x" -msgstr "%08.8x%08.8x%08.8x%08.8x%08.8x" +msgid "cannot change filename to %s while db is open" +msgstr "データベースが使用中なのでファイル名を %s に変更することができません" -#: database.cc:865 +#: database.cc:880 #, c-format msgid "version cache expiring %s\n" msgstr "バージョンキャッシュの有効期限が切れています: %s\n" -#: database.cc:887 +#: database.cc:902 #, c-format msgid "version cache hit on %s\n" msgstr "バージョンキャッシュヒット: %s\n" -#: database.cc:932 +#: database.cc:947 #, c-format msgid "reconstructing %s in %s\n" msgstr "%s (%s 内)を再構築中\n" -#: database.cc:986 +#: database.cc:1001 #, c-format msgid "inserting edge: %s <- %s\n" msgstr "先端を挿入: %s <- %s\n" -#: database.cc:990 +#: database.cc:1005 #, c-format msgid "skipping merge edge %s <- %s\n" -msgstr "先端の統合 %s <- %s をスキップしています\n" +msgstr "先端の統合 %s <- %s をスキップ\n" -#: database.cc:1036 +#: database.cc:1051 #, c-format msgid "following delta %s -> %s\n" msgstr "続く差分 %s -> %s\n" -#: database.cc:1400 +#: database.cc:1415 #, c-format msgid "Killing revision %s locally\n" -msgstr "ローカルにリビジョン %s を削除しています\n" +msgstr "ローカルにリビジョン %s を削除\n" -#: database.cc:1412 +#: database.cc:1427 #, c-format msgid "Deleting all references to branch %s\n" -msgstr "ブランチ %s へのすべての参照を削除しています\n" +msgstr "ブランチ %s へのすべての参照を削除\n" -#: database.cc:1425 +#: database.cc:1440 #, c-format msgid "Deleting all references to tag %s\n" -msgstr "タグ %s へのすべてのリファレンスを削除しています\n" +msgstr "タグ %s へのすべてのリファレンスを削除\n" -#: database.cc:1575 database.cc:1587 +#: database.cc:1590 database.cc:1602 #, c-format msgid "another key with name '%s' already exists" msgstr "'%s' という名前の他の鍵が既に存在しています" -#: database.cc:2166 +#: database.cc:2451 #, c-format -msgid "WHERE id GLOB '%s*'" -msgstr "WHERE id GLOB '%s*'" +msgid "no database specified" +msgstr "データベース未指定" -#: database.cc:2184 +#: database.cc:2462 #, c-format -msgid "WHERE name='%s' AND unbase64(value) glob '%s'" -msgstr "WHERE name='%s' AND unbase64(value) glob '%s'" +msgid "could not open database '%s': %s" +msgstr "データベース '%s': %s を開けませんでした" -#: database.cc:2190 -#, c-format -msgid "WHERE name='%s'" -msgstr "WHERE name='%s'" - -#: database.cc:2199 -#, c-format -msgid " WHERE (name='%s' OR name='%s' OR name='%s')" -msgstr " WHERE (name='%s' OR name='%s' OR name='%s')" - -#: database.cc:2203 -#, c-format -msgid " AND unbase64(value) glob '*%s*'" -msgstr " AND unbase64(value) glob '*%s*'" - -#: database.cc:2212 -#, c-format -msgid "SELECT id FROM revision_certs WHERE name='%s' AND " -msgstr "SELECT id FROM revision_certs WHERE name='%s' AND " - -#: database.cc:2216 -#, c-format -msgid "unbase64(value) <= X'%s'" -msgstr "unbase64(value) <= X'%s'" - -#: database.cc:2219 -#, c-format -msgid "unbase64(value) > X'%s'" -msgstr "unbase64(value) > X'%s'" - -#: database.cc:2222 -#, c-format -msgid "unbase64(value) glob '%s%s%s'" -msgstr "unbase64(value) glob '%s%s%s'" - -#: database.cc:2238 -#, c-format -msgid "SELECT id FROM %s" -msgstr "SELECT id FROM %s" - -#: database.cc:2248 -#, c-format -msgid " (name='%s' OR name='%s' OR name='%s')" -msgstr " (name='%s' OR name='%s' OR name='%s')" - -#: database.cc:2258 -#, c-format -msgid " (name='%s')" -msgstr " (name='%s')" - -#: database.cc:2261 -#, c-format -msgid " AND (unbase64(value) GLOB '%s%s%s')" -msgstr " AND (unbase64(value) GLOB '%s%s%s')" - -#: database.cc:2263 -#, c-format -msgid " AND (id IN %s)" -msgstr " AND (id IN %s)" - #: diff_patch.cc:209 #, c-format msgid "exchanging preserved extent [%d+%d] with changed extent [%d+%d]\n" -msgstr "" -"前に確保したエクステント [%d+%d] を変更されたエクステント [%d+%d] に置き換え" -"ています\n" +msgstr "前に確保したエクステント [%d+%d] を変更されたエクステント [%d+%d] " +"に置き換えています\n" #: diff_patch.cc:300 #, c-format @@ -1624,250 +2401,253 @@ #: diff_patch.cc:392 #, c-format msgid "calculating left extents on %d edits\n" -msgstr "%d 編集箇所について左エクステントを計算しています\n" +msgstr "%d 編集箇所について左エクステントを計算中\n" #: diff_patch.cc:397 #, c-format msgid "calculating right extents on %d edits\n" -msgstr "%d 編集箇所について右エクステントを計算しています\n" +msgstr "%d 編集箇所について右エクステントを計算中\n" #: diff_patch.cc:402 #, c-format msgid "normalizing %d right extents\n" -msgstr "%d 右エクステントを正規化しています\n" +msgstr "%d 右エクステントを正規化\n" #: diff_patch.cc:405 #, c-format msgid "normalizing %d left extents\n" -msgstr "%d 左エクステントを正規化しています\n" +msgstr "%d 左エクステントを正規化\n" #: diff_patch.cc:411 +#, c-format msgid "conflicting prefixes\n" msgstr "競合するプレフィクス\n" #: diff_patch.cc:417 +#, c-format msgid "conflicting suffixes\n" msgstr "競合するサフィックス\n" #: diff_patch.cc:421 #, c-format msgid "merging %d left, %d right extents\n" -msgstr "%d 左, %d 右エクステントを統合中\n" +msgstr "%d 左, %d 右エクステントを統合\n" #: diff_patch.cc:452 +#, c-format msgid "conflict detected. no merge.\n" msgstr "競合を検出、統合しません\n" #: diff_patch.cc:472 #, c-format msgid "recording successful merge of %s <-> %s into %s\n" -msgstr "%s <-> %s から %s への成功した統合を記録中\n" +msgstr "%s <-> %s から %s への成功した統合を記録\n" #: diff_patch.cc:528 #, c-format msgid "trying to merge %s <-> %s (ancestor: %s)\n" msgstr "%s <-> %s (祖先: %s) の統合を試しています\n" -#: diff_patch.cc:533 diff_patch.cc:634 +#: diff_patch.cc:533 diff_patch.cc:638 +#, c-format msgid "files are identical\n" msgstr "ファイルは全く同じです\n" #: diff_patch.cc:575 +#, c-format msgid "internal 3-way merged ok\n" -msgstr "内部三方向統合 OK\n" +msgstr "内部三元統合完了\n" #: diff_patch.cc:589 -msgid "help required for 3-way merge\n" -msgstr "内部三方向統合には手助けが必要です\n" - -#: diff_patch.cc:590 #, c-format -msgid "[ancestor] %s\n" -msgstr "[祖先] %s\n" +msgid "" +"help required for 3-way merge\n" +"[ancestor] %s\n" +"[ left] %s\n" +"[ right] %s\n" +"[ merged] %s\n" +msgstr "三元統合には手助けが必要です\n" +"[ 祖先] %s\n" +"[ 左] %s\n" +"[ 右] %s\n" +"[統合済] %s\n" -#: diff_patch.cc:591 diff_patch.cc:646 +#: diff_patch.cc:606 #, c-format -msgid "[ left] %s\n" -msgstr "[ 左] %s\n" - -#: diff_patch.cc:592 diff_patch.cc:647 -#, c-format -msgid "[ right] %s\n" -msgstr "[ 右] %s\n" - -#: diff_patch.cc:593 diff_patch.cc:648 -#, c-format -msgid "[ merged] %s\n" -msgstr "[ 統合済み] %s\n" - -#: diff_patch.cc:602 msgid "lua merge3 hook merged ok\n" -msgstr "lua merge3 フック統合 OK\n" +msgstr "lua merge3 フック統合完了\n" -#: diff_patch.cc:629 +#: diff_patch.cc:633 #, c-format msgid "trying to merge %s <-> %s\n" msgstr "%s <-> %s の統合を試しています\n" -#: diff_patch.cc:645 -msgid "help required for 2-way merge\n" -msgstr "二方向統合には手助けが必要です\n" +#: diff_patch.cc:649 +#, c-format +msgid "" +"help required for 2-way merge\n" +"[ left] %s\n" +"[ right] %s\n" +"[ merged] %s\n" +msgstr "二元統合には手助けが必要です\n" +"[ 左] %s\n" +"[ 右] %s\n" +"[統合済] %s\n" -#: diff_patch.cc:656 +#: diff_patch.cc:663 +#, c-format msgid "lua merge2 hook merged ok\n" -msgstr "lua merge2 フック統合 OK\n" +msgstr "lua merge2 フック統合完了\n" -#: diff_patch.cc:687 +#: diff_patch.cc:694 #, c-format msgid "temporarily recording merge of %s <-> %s into %s\n" -msgstr "一時的に %s <-> %s から %s への統合を記録しています\n" +msgstr "一時的に %s <-> %s から %s への統合を記録\n" -#: diff_patch.cc:704 +#: diff_patch.cc:711 #, c-format -msgid "file %s does not exist in working copy" -msgstr "ファイル %s は作業コピー中にはありません" +msgid "file '%s' does not exist in working copy" +msgstr "ファイル '%s' は作業コピー中にはありません" -#: diff_patch.cc:708 +#: diff_patch.cc:712 #, c-format +msgid "'%s' in working copy is a directory, not a file" +msgstr "作業コピー内の '%s' はファイルではなくディレクトリです" + +#: diff_patch.cc:716 +#, c-format msgid "file %s in working copy has id %s, wanted %s" msgstr "作業コピー内のファイル %s の ID は %s ですが、欲しいのは %s です" -#: file_io.cc:38 +#: file_io.cc:116 #, c-format -msgid "initial path is %s\n" -msgstr "初期パスは %s です\n" +msgid "expected file '%s', but it is a directory." +msgstr "'%s' は期待していたファイルではなく、ディレクトリです" -#: file_io.cc:51 +#: file_io.cc:186 file_io.cc:193 #, c-format -msgid "searching for '%s' directory with root '%s'\n" -msgstr "'%s' ディレクトリを '%s' を起点に検索中\n" +msgid "" +"could not create directory '%s'\n" +"it is a file" +msgstr "ディレクトリ '%s' を作成できませんでした\n" +"ファイルです" -#: file_io.cc:65 +#: file_io.cc:188 #, c-format -msgid "'%s' not found in '%s' with '%s' removed\n" -msgstr "'%s' は '%s' 内('%s' 削除)にはありません\n" +msgid "" +"could not create directory '%s'\n" +"%s" +msgstr "ディレクトリ '%s' を作成できませんでした\n%s" -#: file_io.cc:72 +#: file_io.cc:192 #, c-format -msgid "search for '%s' ended at '%s' with '%s' removed\n" -msgstr "'%s' を検索、'%s' で停止、'%s' を削除\n" +msgid "could not create directory '%s'" +msgstr "ディレクトリ '%s' を作成できませんでした" -#: file_io.cc:77 +#: file_io.cc:205 #, c-format -msgid "'%s' does not exist\n" -msgstr "'%s' は存在しません\n" +msgid "failed to create directory '%s' for '%s'" +msgstr "ディレクトリ '%s' ('%s' のための)の作成に失敗しました" -#: file_io.cc:83 +#: file_io.cc:213 #, c-format -msgid "'%s' is not a directory\n" -msgstr "'%s' はディレクトリではありません\n" +msgid "file to delete '%s' does not exist" +msgstr "削除するファイル '%s' は存在しません" -#: file_io.cc:90 +#: file_io.cc:214 #, c-format -msgid "problems with '%s' (missing '.' or '..')\n" -msgstr "'%s' について問題があります ('.' または '..' がありません)\n" +msgid "file to delete, '%s', is not a file but a directory" +msgstr "削除するファイル '%s' はファイルでなく、ディレクトリです" -#: file_io.cc:116 -msgid "Searching for home directory\n" -msgstr "ホームディレクトリを検索中\n" +#: file_io.cc:222 +#, c-format +msgid "directory to delete, '%s', does not exist" +msgstr "削除するディレクトリ '%s' は存在しません" -#: file_io.cc:122 -msgid "Home directory from MONOTONE_HOME\n" -msgstr "MONOTONE_HOME をホームディレクトリとして使います\n" +#: file_io.cc:223 +#, c-format +msgid "directory to delete, '%s', is a file" +msgstr "削除するディレクトリ '%s' はファイルです" -#: file_io.cc:132 -msgid "Home directory from HOME\n" -msgstr "HOME をホームディレクトリとして使います\n" +#: file_io.cc:232 +#, c-format +msgid "rename source file '%s' does not exist" +msgstr "名称変更する元のファイル '%s' は存在しません" -#: file_io.cc:139 -msgid "Home directory from USERPROFILE\n" -msgstr "USERPROFILE をホームディレクトリとして使います\n" - -#: file_io.cc:148 -msgid "Home directory from HOMEDRIVE+HOMEPATH\n" -msgstr "HOMEDRIVE+HOMEPATH をホームディレクトリとして使います\n" - -#: file_io.cc:152 -msgid "" -"could not find home directory (tried MONOTONE_HOME, HOME (if cygwin/mingw), " -"USERPROFILE, HOMEDRIVE/HOMEPATH" -msgstr "" -"ホームディレクトリをみつけることができませんでした (MONOTONE_HOME, HOME " -"cygwin/mingw の場合), USERPROFILE, HOMEDRIVE/HOMEPATH について試しました" - -#: file_io.cc:160 +#: file_io.cc:233 #, c-format -msgid "could not find home directory for uid %d" -msgstr "UID %d のホームディレクトリをみつけることができませんでした" +msgid "rename source file '%s' is a directory -- bug in monotone?" +msgstr "名称変更元のファイル '%s' はディレクトリです -- monotone のバグ?" -#: file_io.cc:205 +#: file_io.cc:236 file_io.cc:249 #, c-format -msgid "could not find home directory for user %s" -msgstr "ユーザー %s のホームディレクトリをみつけることができませんでした" +msgid "rename target '%s' already exists" +msgstr "名称変更ターゲット '%s' は既に存在しています" -#: file_io.cc:268 +#: file_io.cc:245 #, c-format -msgid "expected file '%s', but it is a directory." -msgstr "'%s' は期待していたファイルではなく、ディレクトリです" +msgid "rename source dir '%s' does not exist" +msgstr "名称変更元のディレクトリ '%s' は存在しません" -#: file_io.cc:295 file_io.cc:303 +#: file_io.cc:246 #, c-format -msgid "file to delete '%s' does not exist" -msgstr "削除するファイル '%s' は存在しません" +msgid "rename source dir '%s' is a file -- bug in monotone?" +msgstr "名称変更元のディレクトリ '%s' はファイルです -- monotone のバグ?" -#: file_io.cc:311 file_io.cc:319 +#: file_io.cc:260 #, c-format -msgid "directory to delete '%s' does not exist" -msgstr "削除するディレクトリ '%s' は存在しません" +msgid "rename source path '%s' does not exist" +msgstr "名称変更元のパス '%s' は存在しません" -#: file_io.cc:328 file_io.cc:340 +#: file_io.cc:275 #, c-format -msgid "rename source file '%s' does not exist" -msgstr "名称変更する元のファイル '%s' は存在しません" +msgid "file %s does not exist" +msgstr "ファイル %s は存在しません" -#: file_io.cc:330 file_io.cc:342 +#: file_io.cc:276 #, c-format -msgid "rename target file '%s' already exists" -msgstr "名称変更する予定のファイル '%s' は既に存在しています" +msgid "file %s cannot be read as data; it is a directory" +msgstr "'%s' は期待していたファイルではなく、ディレクトリです" -#: file_io.cc:352 file_io.cc:364 +#: file_io.cc:280 #, c-format -msgid "rename source dir '%s' does not exist" -msgstr "名称変更する元のディレクトリ '%s' は存在しません" +msgid "cannot open file %s for reading" +msgstr "ファイル %s を読み込みのために開くことができません" -#: file_io.cc:354 file_io.cc:366 +#: file_io.cc:324 #, c-format -msgid "rename target dir '%s' already exists" -msgstr "名称変更する予定のディレクトリ '%s' は既に存在しています" - -#: file_io.cc:419 msgid "Cannot read standard input multiple times" msgstr "標準入力を何度も読み込むことはできません" -#: file_io.cc:510 +#: file_io.cc:354 #, c-format -msgid "file '%s' does not exist" -msgstr "ファイル '%s' は存在しません" +msgid "file '%s' cannot be overwritten as data; it is a directory" +msgstr "'%s' にデータを上書きできません。ディレクトリです" -#: file_io.cc:551 +#: file_io.cc:368 #, c-format +msgid "cannot open file %s for writing" +msgstr "ファイル %s を書き込みのために開くことができません" + +#: file_io.cc:375 +#, c-format msgid "removing %s failed" msgstr "%s の削除に失敗" -#: file_io.cc:642 +#: file_io.cc:437 #, c-format msgid "ignoring book keeping entry %s\n" -msgstr "ブックキープエントリ %s を無視します\n" +msgstr "記録簿用エントリ %s を無視します\n" -#: file_io.cc:661 +#: file_io.cc:457 #, c-format msgid "caught runtime error %s constructing file path for %s\n" msgstr "%s についてファイルパス作成中に実行時エラー %s 発生\n" -#: file_io.cc:693 +#: file_io.cc:481 #, c-format -msgid "no such file or directory: %s" -msgstr "そのようなファイルまたはディレクトリはありません: %s" +msgid "no such file or directory: '%s'" +msgstr "そのようなファイルまたはディレクトリはありません: '%s'" #: keys.cc:42 #, c-format @@ -1875,187 +2655,192 @@ msgstr "データ %d バイト目について arc4 プロセスを実行中\n" #: keys.cc:80 +#, c-format msgid "got empty passphrase from get_passphrase() hook" msgstr "get_passphrase() フックは空のパスフレーズを返しました" #: keys.cc:96 +#, c-format msgid "empty passphrase not allowed" msgstr "パスフレーズは空にできません" +#: keys.cc:103 +#, c-format +msgid "confirm passphrase for key ID [%s]: " +msgstr "鍵 ID [%s] のパスフレーズを確認: " + #: keys.cc:108 +#, c-format msgid "empty passphrases not allowed, try again\n" msgstr "パスフレーズは空にできません. 再度試して下さい\n" #: keys.cc:109 keys.cc:116 +#, c-format msgid "too many failed passphrases\n" -msgstr "パスフレーズについて失敗が多すぎます\n" +msgstr "パスフレーズの入力ミスが多すぎます\n" #: keys.cc:115 +#, c-format msgid "passphrases do not match, try again\n" -msgstr "パスフレーズが不一致. 再度試して下さい\n" +msgstr "パスフレーズが一致しません。再度試して下さい\n" #: keys.cc:122 +#, c-format msgid "no passphrase given" msgstr "パスフレーズを指定して下さい" #: keys.cc:184 #, c-format -msgid "generated %d-byte public key\n" -msgstr "%d バイトの公開鍵を生成\n" +msgid "" +"generated %d-byte public key\n" +"generated %d-byte (encrypted) private key\n" +msgstr "%d バイトの公開鍵を生成\n%d バイトの(暗号化された)秘密鍵を生成\n" -#: keys.cc:185 +#: keys.cc:207 keys.cc:263 #, c-format -msgid "generated %d-byte (encrypted) private key\n" -msgstr "%d バイトの暗号化された秘密鍵を生成しました\n" - -#: keys.cc:205 keys.cc:261 -#, c-format msgid "building signer from %d-byte decrypted private key\n" msgstr "%d バイトの復号化された秘密鍵から署名を作成中\n" -#: keys.cc:254 +#: keys.cc:256 #, c-format msgid "base64-decoding %d-byte private key\n" msgstr "%d バイト秘密鍵の base64 デコード\n" -#: keys.cc:298 +#: keys.cc:300 #, c-format msgid "produced %d-byte signature\n" msgstr "%d バイトの署名を作成\n" -#: keys.cc:326 +#: keys.cc:328 #, c-format msgid "building verifier for %d-byte pub key\n" msgstr "%d バイトの公開鍵について識別子を構築中\n" -#: keys.cc:348 +#: keys.cc:350 #, c-format msgid "checking %d-byte (%d decoded) signature\n" msgstr "%d バイト (%d デコード)の署名を検証中\n" -#: keys.cc:482 +#: keys.cc:521 #, c-format -msgid "no public key '%s' found in database" -msgstr "データベース内に公開鍵 '%s' はありません" - -#: keys.cc:493 -#, c-format msgid "passphrase for '%s' is incorrect" msgstr "'%s' に対するパスフレーズが間違っています" -#: lua.cc:79 +#: lua.cc:109 #, c-format -msgid "%s\n" -msgstr "%s\n" +msgid "lua failure: %s; stack = %s\n" +msgstr "lua 失敗: %s; スタック = %s\n" -#: lua.cc:91 -msgid "lua istable() failed\n" -msgstr "lua istable() 失敗\n" +#: lua.cc:115 +#, c-format +msgid "Lua::ok(): failed = %i" +msgstr "Lua::ok(): 失敗 = %i" -#: lua.cc:97 -msgid "lua stack top > 0 failed\n" -msgstr "lua スタック top > 0 失敗\n" +#: lua.cc:124 +#, c-format +msgid "lua stack: %s" +msgstr "lua スタック: %s" -#: lua.cc:111 -msgid "lua isfunction() failed in get_fn\n" -msgstr "lua get_fn 内で isfunction() 失敗\n" +#: lua.cc:204 +#, c-format +msgid "lua: extracted string = %s" +msgstr "lua: 抽出文字列 = %s" -#: lua.cc:123 -msgid "lua istable() failed in get_tab\n" -msgstr "lua get_tab 内で isfunction() 失敗\n" +#: lua.cc:217 +#, c-format +msgid "lua: extracted int = %i" +msgstr "lua: 抽出 int = %i" -#: lua.cc:135 -msgid "lua isstring() failed in get_str\n" -msgstr "lua get_str 内で isstring() 失敗\n" +#: lua.cc:230 +#, c-format +msgid "lua: extracted double = %i" +msgstr "lua: 抽出 double = %i" -#: lua.cc:147 -msgid "lua isnumber() failed in get_num\n" -msgstr "lua get_num 内で isnumber() 失敗\n" +#: lua.cc:244 +#, c-format +msgid "lua: extracted bool = %i" +msgstr "lua: 抽出 bool = %i" -#: lua.cc:159 -msgid "lua isboolean() failed in get_bool\n" -msgstr "lua get_bool 内で isboolean() 失敗\n" +#: lua.cc:364 +#, c-format +msgid "loading lua hook %s" +msgstr "lua フック %s を読み込み中" -#: lua.cc:172 -msgid "lua isstring() failed in extract_str\n" -msgstr "lua extract_str 内で isstring() 失敗\n" - -#: lua.cc:185 -msgid "lua isnumber() failed in extract_int\n" -msgstr "lua extract_int 内で isnumber() 失敗\n" - -#: lua.cc:198 -msgid "lua isnumber() failed in extract_double\n" -msgstr "lua extract_double 内で isnumber() 失敗\n" - -#: lua.cc:212 -msgid "lua isboolean() failed in extract_bool\n" -msgstr "lua extract_bool 内で isboolean() 失敗\n" - -#: lua.cc:228 -msgid "lua istable() failed in begin\n" -msgstr "lua begin のところで istable() 失敗\n" - -#: lua.cc:242 -msgid "lua istable() failed in next\n" -msgstr "lua next のところで istable() 失敗\n" - -#: lua.cc:329 -msgid "lua stack top >= count failed\n" -msgstr "lua スタック top >= count に失敗\n" - -#: lua.cc:501 +#: lua.cc:527 +#, c-format msgid "guess_binary called with an invalid parameter" msgstr "guess_binary 呼出し時の変数が不適切です" -#: lua.cc:510 +#: lua.cc:557 +#, c-format msgid "Include called with an invalid parameter" msgstr "Include 呼出し時の変数が不適切です" -#: lua.cc:525 +#: lua.cc:572 +#, c-format msgid "IncludeDir called with an invalid parameter" msgstr "IncludeDir 呼出し時の変数が不適切です" -#: lua.cc:528 +#: lua.cc:575 #, c-format msgid "Directory '%s' does not exists" msgstr "ディレクトリ '%s' は存在しません" -#: lua.cc:529 +#: lua.cc:576 #, c-format msgid "'%s' is not a directory" msgstr "'%s' はディレクトリではありません" -#: lua.cc:548 lua.cc:675 +#: lua.cc:595 lua.cc:744 #, c-format msgid "lua error while loading rcfile '%s'" msgstr "初期化ファイル '%s' を読み込み中に lua のエラー" -#: lua.cc:672 lua.cc:685 +#: lua.cc:741 lua.cc:754 #, c-format msgid "opening rcfile '%s' ...\n" msgstr "初期化ファイル '%s' を開いています...\n" -#: lua.cc:676 lua.cc:688 +#: lua.cc:745 lua.cc:757 #, c-format msgid "'%s' is ok\n" msgstr "'%s' OK\n" -#: lua.cc:687 +#: lua.cc:756 #, c-format msgid "lua error while loading '%s'" msgstr "lua '%s' を読み込み中にエラー" -#: lua.cc:692 +#: lua.cc:761 #, c-format msgid "rcfile '%s' does not exist" msgstr "初期化ファイル '%s' は存在しません" -#: lua.cc:693 +#: lua.cc:762 #, c-format msgid "skipping nonexistent rcfile '%s'\n" -msgstr "存在しない初期化ファイル '%s' をスキップしています\n" +msgstr "存在しない初期化ファイル '%s' をスキップ\n" +#: lua.cc:1203 +#, c-format +msgid "calling attr_init_function for %s" +msgstr "%s について attr_init_function を呼出し" + +#: lua.cc:1207 +#, c-format +msgid " calling an attr_init_function for %s" +msgstr " %s について attr_init_function を呼出し" + +#: lua.cc:1220 +#, c-format +msgid " added attr %s = %s" +msgstr " 属性 %s = %s を追加" + +#: lua.cc:1224 +#, c-format +msgid " no attr added" +msgstr " 属性追加なし" + #: manifest.cc:55 #, c-format msgid "scanning file %s\n" @@ -2073,8 +2858,7 @@ "to restore consistency, on each missing file run either\n" "'monotone drop FILE' to remove it permanently, or\n" "'monotone revert FILE' to restore it\n" -msgstr "" -"一貫性を保つために必要な\n" +msgstr "一貫性を保つために必要な\n" "ファイルが %d 個みつかりません。各々のファイルについて\n" "'monotone drop FILE' として恒久的にファイルを削除するか、\n" "'monotone revert FILE' として復活させて下さい。\n" @@ -2089,1511 +2873,1538 @@ msgid "mismatched node hash value %s, expected %s" msgstr "一致しないノードハッシュ値 %s、期待されるのは %s です" -#: monotone.cc:197 +#: monotone.cc:51 +msgid "select branch cert for operation" +msgstr "操作のためのブランチ証明を選択" + +#: monotone.cc:52 +msgid "select revision id for operation" +msgstr "操作のためのリビジョン ID を選択" + +#: monotone.cc:53 +msgid "set commit changelog message" +msgstr "コミット変更記録メッセージを設定" + +#: monotone.cc:54 +msgid "set filename containing commit changelog message" +msgstr "コミット変更記録メッセージを含むファイルを設定" + +#: monotone.cc:55 +msgid "override date/time for commit" +msgstr "コミット時の日時を上書き指定" + +#: monotone.cc:56 +msgid "override author for commit" +msgstr "コミット時の作成者を上書き指定" + +#: monotone.cc:57 +msgid "limit the number of levels of directories to descend" +msgstr "降下するディレクトリの深さを制限" + +#: monotone.cc:58 +msgid "limit the log output to the given number of entries" +msgstr "ログ出力のエントリの数を制限" + +#: monotone.cc:59 +msgid "record process id of server" +msgstr "サーバーのプロセス ID を記録" + +#: monotone.cc:60 +msgid "print a brief version of the normal output" +msgstr "通常出力の簡単なバージョンを表示" + +#: monotone.cc:61 +msgid "print diffs along with logs" +msgstr "ログと共に差分を表示" + +#: monotone.cc:62 +msgid "skip merges when printing logs" +msgstr "ログを表示する際に統合については省略" + +#: monotone.cc:63 +msgid "use the current arguments as the future default" +msgstr "現在の引数を将来のデフォルトとして使用" + +#: monotone.cc:64 +msgid "leave out anything described by its argument" +msgstr "引数によって説明されるすべてを省く" + +#: monotone.cc:65 +msgid "use unified diff format" +msgstr "unified diff 形式を使用" + +#: monotone.cc:66 +msgid "use context diff format" +msgstr "context diff 形式を使用" + +#: monotone.cc:67 +msgid "use external diff hook for generating diffs" +msgstr "差分の生成に外部 diff フックを使用" + +#: monotone.cc:68 +msgid "argument to pass external diff hook" +msgstr "外部 diff フックに渡す引数" + +#: monotone.cc:69 +msgid "use least common ancestor as ancestor for merge" +msgstr "最も近い共通の祖先を統合の祖先として使用" + +#: monotone.cc:70 +msgid "perform the associated file operation" +msgstr "関連付けられたファイル操作を実行" + +#: monotone.cc:79 +msgid "print debug log to stderr while running" +msgstr "実行時、標準エラー出力にデバッグログを表示" + +#: monotone.cc:80 +msgid "file to dump debugging log to, on failure" +msgstr "失敗時にデバッグログを出力するファイル" + +#: monotone.cc:81 +msgid "suppress log and progress messages" +msgstr "ログおよび進捗を示すメッセージを表示しない" + +#: monotone.cc:82 +msgid "display help message" +msgstr "ヘルプメッセージを表示" + +#: monotone.cc:83 +msgid "print version number, then exit" +msgstr "バージョン番号を表示し、終了" + +#: monotone.cc:84 +msgid "print detailed version number, then exit" +msgstr "詳細なバージョン番号を表示し、終了" + +#: monotone.cc:85 +msgid "insert command line arguments taken from the given file" +msgstr "指定のファイルの内容をコマンド行引数に挿入" + +#: monotone.cc:86 +msgid "set ticker style (count|dot|none)" +msgstr "ティッカーのスタイルを設定 (count|dot|none)" + +#: monotone.cc:87 +msgid "do not load standard lua hooks" +msgstr "標準 lua フックを読み込まない" + +#: monotone.cc:88 +msgid "do not load ~/.monotone/monotonerc or MT/monotonerc lua files" +msgstr "$HOME/.monotone/monotonerc または MT/monotonerc lua ファイルを読み込まない" + +#: monotone.cc:89 +msgid "load extra rc file" +msgstr "別の初期化ファイルを読み込む" + +#: monotone.cc:90 +msgid "set key for signatures" +msgstr "署名の鍵を設定" + +#: monotone.cc:91 +msgid "set name of database" +msgstr "データベース名を設定" + +#: monotone.cc:92 +msgid "limit search for working copy to specified root" +msgstr "作業コピーの検索を指定のルート下に制限" + +#: monotone.cc:93 +msgid "verbose completion output" +msgstr "冗長な完了メッセージ" + +#: monotone.cc:199 #, c-format msgid "problem parsing arguments from file %s: %s" msgstr "ファイル %s からの引数を解析中に問題発生: %s" -#: monotone.cc:206 +#: monotone.cc:208 #, c-format msgid "weird error when stuffing arguments read from %s: %s\n" -msgstr "%s から引数群を読み取り中に予期せぬエラー発生: %s\n" +msgstr "%s から引数を読み取り中に予期せぬエラー発生: %s\n" -#: monotone.cc:257 +#: monotone.cc:258 #, c-format msgid "command line: %s\n" msgstr "コマンド行: %s\n" -#: monotone.cc:260 +#: monotone.cc:261 #, c-format -msgid "set locale: LC_CTYPE=%s, LC_MESSAGES=%s\n" -msgstr "ロカール設定: LC_CTYPE=%s, LC_MESSAGES=%s\n" +msgid "set locale: LC_ALL=%s\n" +msgstr "ロカール設定: LC_ALL=%s\n" -#: monotone.cc:452 +#: monotone.cc:289 +msgid "[OPTION...] command [ARGS...]\n" +msgstr "[OPTION...] command [ARGS...]\n" + +#: monotone.cc:457 #, c-format msgid "syntax error near the \"%s\" option: %s" -msgstr "\"%s\" オプションの側に構文エラー: %s" +msgstr "\"%s\" オプションの近くに構文エラー: %s" -#: monotone.cc:491 +#: monotone.cc:496 #, c-format msgid "monotone %s doesn't use the option %s" -msgstr "monotone %s: オプション %s は指定できません" +msgstr "monotone %s にはオプション %s は使えません" -#: monotone.cc:513 +#: monotone.cc:518 #, c-format msgid "Removed 'hidden' from option # %d\n" msgstr "オプション # %d から 'hidden' を削除\n" -#: monotone.cc:519 monotone.cc:530 +#: monotone.cc:524 monotone.cc:535 #, c-format msgid "Added 'hidden' to option # %d\n" msgstr "オプション # %d に 'hidden' を追加\n" +#: monotone.cc:531 +#, c-format +msgid "Options specific to 'monotone %s':" +msgstr "'monotone %s' に特化したオプション:" + +#: mt_version.cc:23 +#, c-format +msgid "%s (base revision: %s)" +msgstr "%s (基準リビジョン %s)" + +#: mt_version.cc:34 +#, c-format +msgid "" +"Running on: %s\n" +"Changes since base revision: %s\n" +msgstr "%s 上で実行\n基準リビジョン %s からの変更\n" + #: netcmd.cc:42 #, c-format msgid "unknown item type 0x%x for '%s'" -msgstr "不明な項目タイプ 0x%x ('%s' に対して)" +msgstr "不明なアイテムタイプ 0x%x (対象 '%s')" -#: netcmd.cc:89 +#: netcmd.cc:94 #, c-format msgid "protocol version mismatch: wanted '%d' got '%d'" -msgstr "" -"プロトコルバージョンの不一致: 期待したのは '%d' ですが得たのは '%d' です" +msgstr "プロトコルバージョンが一致しません: " +"期待したのは '%d' ですが得たのは '%d' です" -#: netcmd.cc:113 +#: netcmd.cc:119 #, c-format msgid "unknown netcmd code 0x%x" msgstr "不明な netcmd コード 0x%x" -#: netcmd.cc:124 +#: netcmd.cc:130 #, c-format msgid "oversized payload of '%d' bytes" msgstr "'%d' バイトの長さ超過のペイロード" -#: netcmd.cc:153 +#: netcmd.cc:159 #, c-format msgid "" "bad HMAC checksum (got %s, wanted %s)\n" "this suggests data was corrupted in transit\n" -msgstr "" -"不正な HMAC チェックサム (計算値 %s / 期待値 %s)\n" +msgstr "不正な HMAC チェックサム (計算値 %s / 期待値 %s)\n" "これは転送中にデータが壊れたことを示唆しています\n" -#: netcmd.cc:230 netcmd.cc:276 +#: netcmd.cc:235 netcmd.cc:281 #, c-format msgid "unknown role specifier %d" -msgstr "不明なロール指定子 %d" +msgstr "不明な役割指定子 %d" -#: netcmd.cc:632 -msgid "checking i/o round trip on error_cmd\n" -msgstr "error_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:640 +#: netio.hh:38 netio.hh:56 #, c-format -msgid "errmsg_cmd test done, buffer was %d bytes\n" -msgstr "errmsg_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:645 -msgid "checking i/o round trip on bye_cmd\n" -msgstr "bye_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:649 -#, c-format -msgid "bye_cmd test done, buffer was %d bytes\n" -msgstr "bye_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:654 -msgid "checking i/o round trip on hello_cmd\n" -msgstr "hello_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:666 -#, c-format -msgid "hello_cmd test done, buffer was %d bytes\n" -msgstr "hello_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:671 -msgid "checking i/o round trip on anonymous_cmd\n" -msgstr "anonymous_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:688 -#, c-format -msgid "anonymous_cmd test done, buffer was %d bytes\n" -msgstr "anonymous_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:693 -msgid "checking i/o round trip on auth_cmd\n" -msgstr "auth_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:718 -#, c-format -msgid "auth_cmd test done, buffer was %d bytes\n" -msgstr "auth_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:723 -msgid "checking i/o round trip on confirm_cmd\n" -msgstr "confirm_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:729 -#, c-format -msgid "confirm_cmd test done, buffer was %d bytes\n" -msgstr "confirm_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:734 -msgid "checking i/o round trip on refine_cmd\n" -msgstr "refine_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:752 -#, c-format -msgid "refine_cmd test done, buffer was %d bytes\n" -msgstr "refine_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:757 -msgid "checking i/o round trip on done_cmd\n" -msgstr "done_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:768 -#, c-format -msgid "done_cmd test done, buffer was %d bytes\n" -msgstr "done_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:773 -msgid "checking i/o round trip on send_data_cmd\n" -msgstr "send_data_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:784 -#, c-format -msgid "send_data_cmd test done, buffer was %d bytes\n" -msgstr "send_data_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:789 -msgid "checking i/o round trip on send_delta_cmd\n" -msgstr "send_delta_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:802 -#, c-format -msgid "send_delta_cmd test done, buffer was %d bytes\n" -msgstr "send_delta_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:807 -msgid "checking i/o round trip on data_cmd\n" -msgstr "data_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:818 -#, c-format -msgid "data_cmd test done, buffer was %d bytes\n" -msgstr "data_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:823 -msgid "checking i/o round trip on delta_cmd\n" -msgstr "delta_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:838 -#, c-format -msgid "delta_cmd test done, buffer was %d bytes\n" -msgstr "delta_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:843 -msgid "checking i/o round trip on nonexistant_cmd\n" -msgstr "nonexistant_cmd の I/O ラウンドトリップをチェック中\n" - -#: netcmd.cc:854 -#, c-format -msgid "nonexistant_cmd test done, buffer was %d bytes\n" -msgstr "nonexistant_cmd テスト完了 (バッファ %d バイト)\n" - -#: netcmd.cc:860 -#, c-format -msgid "bad decode exception: '%s'\n" -msgstr "不正なデコードの例外: '%s'\n" - -#: netio.hh:37 -#, c-format msgid "need %d bytes to decode %s at %d, only have %d" msgstr "%d バイト必要 (%s のデコード、位置 %d) ですが %d しかありません" -#: netio.hh:65 +#: netio.hh:84 netio.hh:119 #, c-format msgid "uleb128 decode for '%s' into %d-byte datum overflowed" msgstr "'%s' について uleb128 デコード; %d バイトオーバーフロー" -#: netio.hh:85 +#: netio.hh:139 #, c-format msgid "ran out of bytes reading uleb128 value for '%s' at pos %d" msgstr "'%s' について uleb128 値を読み込み中にポジション %d でデータ欠損" -#: netio.hh:161 +#: netio.hh:275 #, c-format msgid "decoding variable length string of %d bytes for '%s', maximum is %d" -msgstr "%d バイトの可変長文字列 ('%s' について; 最大長 %d) をデコード中" +msgstr "%d バイトの可変長文字列 (対象 '%s'、最大長 %d) をデコード中" -#: netio.hh:196 +#: netio.hh:330 #, c-format msgid "expected %s to end at %d, have %d bytes" -msgstr "予想 %s、終端 %d、読み込み %d バイト" +msgstr "%s について終端 %d、容量 %d バイトであることを期待" -#: netsync.cc:211 +#: netsync.cc:244 #, c-format msgid "check of '%s' failed" -msgstr "'%s' のチェックに失敗しました" +msgstr "'%s' の検証に失敗" -#: netsync.cc:703 +#: netsync.cc:664 +msgid "bytes in" +msgstr "バイト (入)" + +#: netsync.cc:666 +msgid "bytes out" +msgstr "バイト (出)" + +#: netsync.cc:670 netsync.cc:687 +msgid "revs written" +msgstr "書き込んだリビジョン" + +#: netsync.cc:672 +msgid "certs in" +msgstr "証明 (入)" + +#: netsync.cc:674 netsync.cc:689 +msgid "revs in" +msgstr "リビジョン (入)" + +#: netsync.cc:679 +msgid "certs out" +msgstr "証明 (出)" + +#: netsync.cc:681 netsync.cc:691 +msgid "revs out" +msgstr "リビジョン (出)" + +#: netsync.cc:749 +#, c-format msgid "all epochs processed, opening database valve\n" -msgstr "すべての epoch を処理しました. データベースバルブを開いています\n" +msgstr "すべての epoch を処理しました。データベースバルブを開いています\n" -#: netsync.cc:791 +#: netsync.cc:837 +#, c-format msgid "dropping outgoing netcmd (because we're in error unwind mode)\n" -msgstr "外向きの netcmd を破棄しています (エラーから回避不能なため)\n" +msgstr "エラー回復が可能なモードですので、外向きの netcmd を破棄します\n" -#: netsync.cc:815 +#: netsync.cc:861 #, c-format msgid "error: %s\n" msgstr "エラー: %s\n" -#: netsync.cc:823 +#: netsync.cc:869 #, c-format msgid "analyzing %d entries in manifest\n" msgstr "マニフェスト内の %d エントリを解析中\n" -#: netsync.cc:867 +#: netsync.cc:913 #, c-format msgid "revision %s is attached via database\n" msgstr "リビジョン %s はデータベースを介して添付されています\n" -#: netsync.cc:872 +#: netsync.cc:918 #, c-format msgid "checking attachment of %s in ancestry\n" msgstr "系統内の %s の添付を検証中\n" -#: netsync.cc:879 +#: netsync.cc:925 #, c-format msgid "checking attachment of %s in parent %s\n" msgstr "%s の添付(親 %s 内)を検証中\n" -#: netsync.cc:883 +#: netsync.cc:929 #, c-format msgid "revision %s is attached via parent %s\n" msgstr "リビジョン %s は親 %s を介して添付されています\n" -#: netsync.cc:889 +#: netsync.cc:936 #, c-format -msgid "decided that revision %s %s attached\n" -msgstr "添付のリビジョン %s %s を決定\n" +msgid "decided that revision '%s' is attached\n" +msgstr "リビジョン '%s' は添付されるものと決定\n" -#: netsync.cc:956 +#: netsync.cc:938 #, c-format +msgid "decided that revision '%s' is not attached\n" +msgstr "リビジョン '%s' は添付されないものと決定\n" + +#: netsync.cc:1006 +#, c-format msgid "not requesting (in reverse) initial manifest %s as we already have it\n" -msgstr "" -"既に持っている初期マニフェスト %s については(逆向きに)リクエストしません\n" +msgstr "初期マニフェスト %s は既にあるので (逆方向に) 要求しません\n" -#: netsync.cc:959 +#: netsync.cc:1009 #, c-format msgid "requesting (in reverse) initial manifest data %s\n" -msgstr "初期マニフェストデータ %s を(逆向きに)リクエストしています\n" +msgstr "初期マニフェストデータ %s を (逆方向に) 要求しています\n" -#: netsync.cc:969 +#: netsync.cc:1019 #, c-format msgid "" "not requesting (in reverse) manifest delta to %s as we already have it\n" -msgstr "" -"既に持っている %s のマニフェスト差分については(逆向きに)リクエストしません\n" +msgstr "%s のマニフェスト差分は既にあるので(逆方向に)要求しません\n" -#: netsync.cc:972 +#: netsync.cc:1022 #, c-format msgid "requesting (in reverse) manifest delta %s -> %s\n" -msgstr "マニフェスト差分 %s -> %s を(逆向きに)リクエストしています\n" +msgstr "マニフェスト差分 %s -> %s を(逆方向に)要求しています\n" -#: netsync.cc:999 +#: netsync.cc:1049 #, c-format msgid "not requesting (in reverse) initial file %s as we already have it\n" -msgstr "" -"既に持っている初期化ファイル %s については(逆向きに)リクエストしません\n" +msgstr "初期化ファイル %s は既にあるので (逆方向に)要求しません\n" -#: netsync.cc:1002 +#: netsync.cc:1052 #, c-format msgid "requesting (in reverse) initial file data %s\n" -msgstr "初期化ファイルデータ %s を(逆向きに)リクエストしています\n" +msgstr "初期化ファイルデータ %s を(逆方向に)要求しています\n" -#: netsync.cc:1012 +#: netsync.cc:1062 #, c-format msgid "not requesting (in reverse) file delta to %s as we already have it\n" -msgstr "既に持っている %s へのファイル差分は(逆向きに)リクエストしません\n" +msgstr "%s へのファイル差分は既にあるので (逆方向に)要求しません\n" -#: netsync.cc:1015 +#: netsync.cc:1065 #, c-format msgid "requesting (in reverse) file delta %s -> %s on %s\n" -msgstr "ファイル差分 %s -> %s (対象: %s)を(逆向きに)リクエストしています\n" +msgstr "ファイル差分 %s -> %s (対象: %s)を(逆方向に)要求しています\n" -#: netsync.cc:1047 +#: netsync.cc:1097 #, c-format msgid "visiting revision '%s' for forward deltas\n" -msgstr "前向きの差分についてリビジョン '%s' を見ています\n" +msgstr "順方向の差分についてリビジョン '%s' を見ています\n" -#: netsync.cc:1075 +#: netsync.cc:1125 #, c-format msgid "not requesting forward manifest delta to '%s' as we already have it\n" -msgstr "" -"既に持っている '%s' への前向きのマニフェスト差分についてはリクエストしませ" -"ん\n" +msgstr "'%s' への順方向のマニフェスト差分は既にあるので要求しません\n" -#: netsync.cc:1081 +#: netsync.cc:1131 #, c-format msgid "requesting full manifest data %s\n" -msgstr "完全なマニフェストデータ %s をリクエストしています\n" +msgstr "完全なマニフェストデータ %s を要求しています\n" -#: netsync.cc:1086 +#: netsync.cc:1136 #, c-format msgid "requesting forward manifest delta %s -> %s\n" -msgstr "前向きのマニフェスト差分 %s -> %s をリクエストしています\n" +msgstr "順方向のマニフェスト差分 %s -> %s を要求しています\n" -#: netsync.cc:1100 +#: netsync.cc:1150 #, c-format msgid "" "not requesting forward delta %s -> %s on file %s as we already have it\n" -msgstr "" -"既に持っている前向きの差分 %s -> %s (対象ファイル %s) についてはリクエストし" -"ません\n" +msgstr "順方向の差分 %s -> %s (対象ファイル %s) は既にあるので要求しません\n" -#: netsync.cc:1106 +#: netsync.cc:1156 #, c-format msgid "requesting full file data %s\n" -msgstr "完全なファイルデータ %s をリクエストしています\n" +msgstr "完全なファイルデータ %s を要求しています\n" -#: netsync.cc:1112 +#: netsync.cc:1162 #, c-format msgid "requesting forward delta %s -> %s on file %s\n" -msgstr "前方向の差分 %s -> %s (対象ファイル %s) をリクエストしています\n" +msgstr "前方向の差分 %s -> %s (対象ファイル %s) を要求しています\n" -#: netsync.cc:1142 +#: netsync.cc:1192 #, c-format msgid "analyzing %d ancestry edges\n" -msgstr "%d ancestry の端を解析中\n" +msgstr "%d 個の系の端を解析中\n" -#: netsync.cc:1198 +#: netsync.cc:1248 #, c-format msgid "Dropping branch certs for unwanted branch %s" -msgstr "希望しないブランチ %s のブランチ証明を削除中" +msgstr "希望しないブランチ %s のブランチ証明を削除" -#: netsync.cc:1253 +#: netsync.cc:1303 #, c-format msgid "isolated %d heads\n" -msgstr "孤立した %d ヘッド\n" +msgstr "孤立した %d 個の最新版\n" -#: netsync.cc:1280 +#: netsync.cc:1330 #, c-format msgid "requesting attached ancestry of revision '%s'\n" -msgstr "リビジョン '%s' に付随する系統をリクエスト中\n" +msgstr "リビジョン '%s' に付随する系統を要求しています\n" -#: netsync.cc:1285 +#: netsync.cc:1335 #, c-format msgid "requesting detached ancestry of revision '%s'\n" -msgstr "リビジョン '%s' から遊離した系統をリクエスト中\n" +msgstr "リビジョン '%s' から遊離した系統を要求しています\n" -#: netsync.cc:1319 +#: netsync.cc:1369 #, c-format msgid "read %d bytes from fd %d (peer %s)\n" -msgstr "%d バイト読み込み: fd %d (ピーア %s)\n" +msgstr "%d バイト fd %d (ピーア %s) から読み込み\n" -#: netsync.cc:1322 +#: netsync.cc:1372 +#, c-format msgid "in error unwind mode, so throwing them into the bit bucket\n" -msgstr "エラー復帰モードなので、これらをビットバケット中に捨てます\n" +msgstr "エラー回復可能モードですので、これらをビットバケット中に捨てます\n" -#: netsync.cc:1354 +#: netsync.cc:1404 #, c-format msgid "wrote %d bytes to fd %d (peer %s)\n" -msgstr "%d バイト書き込み: fd %d (ピーア %s)\n" +msgstr "%d バイト fd %d (ピーア %s) へ書き込み\n" -#: netsync.cc:1362 +#: netsync.cc:1412 +#, c-format msgid "finished flushing output queue in error unwind mode, disconnecting\n" -msgstr "エラー復帰モードで出力キューフラッシュ完了、切断中\n" +msgstr "エラー回復可能モードで出力キューをフラッシュ完了、切断中\n" -#: netsync.cc:1376 +#: netsync.cc:1426 +#, c-format msgid "queueing 'bye' command\n" -msgstr "'bye' コマンドをキューに追加しています\n" +msgstr "'bye' コマンドをキューに追加\n" -#: netsync.cc:1386 +#: netsync.cc:1436 +#, c-format msgid "queueing 'error' command\n" -msgstr "'error' コマンドをキューに追加しています\n" +msgstr "'error' コマンドをキューに追加\n" -#: netsync.cc:1399 +#: netsync.cc:1449 #, c-format msgid "queueing 'done' command for %s level %s\n" -msgstr "'%s' (レベル %s) について 'done' コマンドをキューに追加しています\n" +msgstr "'%s' (レベル %s) について 'done' コマンドをキューに追加\n" -#: netsync.cc:1475 +#: netsync.cc:1525 #, c-format msgid "queueing request for refinement of %s node '%s', level %d\n" -msgstr "%s ノード '%s', レベル %d の微調整リクエストをキューに追加しています\n" +msgstr "%s ノード '%s', レベル %d の微調整要求をキューに追加\n" -#: netsync.cc:1493 +#: netsync.cc:1543 #, c-format msgid "not queueing request for %s '%s' as we are in pure source role\n" -msgstr "" -"純粋なソースの役割を果しているので %s '%s' のリクエストはキューに追加しませ" -"ん\n" +msgstr "純粋なソースの役割を果しているので %s '%s' の要求はキューに追加しません\n" -#: netsync.cc:1500 +#: netsync.cc:1550 #, c-format msgid "not queueing request for %s '%s' as we already requested it\n" -msgstr "既にリクエスト済みの %s '%s' はキューに追加しません\n" +msgstr "既に要求済みの %s '%s' はキューに追加しません\n" -#: netsync.cc:1505 +#: netsync.cc:1555 #, c-format msgid "queueing request for data of %s item '%s'\n" -msgstr "%s 項目 '%s' のデータについてリクエストをキューに追加しています\n" +msgstr "%s アイテム '%s' のデータ要求をキューに追加\n" -#: netsync.cc:1529 +#: netsync.cc:1579 #, c-format msgid "" "not queueing request for %s delta '%s' -> '%s' as we are in pure source " "role\n" -msgstr "" -"純粋なソースの役割を果しているので %s 差分 '%s' -> '%s' についてリクエストを" -"キューに追加しません\n" +msgstr "純粋なソースの役割を果しているので %s 差分 '%s' -> '%s' の" +"要求をキューに追加しません\n" -#: netsync.cc:1536 +#: netsync.cc:1586 #, c-format msgid "" "not queueing request for %s delta '%s' -> '%s' as we already requested the " "target\n" -msgstr "" -"既にリクエスト済みなので %s 差分 '%s' -> '%s' についてリクエストをキューに追" -"加しません\n" +msgstr "既に要求済みなので %s 差分 '%s' -> '%s' の要求を" +"キューに追加しません\n" -#: netsync.cc:1541 +#: netsync.cc:1591 #, c-format msgid "queueing request for contents of %s delta '%s' -> '%s'\n" -msgstr "" -"%s 差分 '%s' -> '%s' の内容についてリクエストをキューに追加しています\n" +msgstr "%s 差分 '%s' -> '%s' の内容について要求をキューに追加\n" -#: netsync.cc:1561 +#: netsync.cc:1611 #, c-format msgid "not queueing %s data for '%s' as we are in pure sink role\n" -msgstr "" -"純粋なシンクの役割を果しているので %s データ (対象: '%s' )をキューに追加しま" -"せん\n" +msgstr "純粋なシンクの役割を果しているので %s データ (対象: '%s' )" +"をキューに追加しません\n" -#: netsync.cc:1566 +#: netsync.cc:1616 #, c-format msgid "queueing %d bytes of data for %s item '%s'\n" -msgstr "%d バイト (%s 項目 '%s' のデータ)をキューに追加しています\n" +msgstr "%d バイト (%s アイテム '%s' のデータ)をキューに追加\n" -#: netsync.cc:1591 +#: netsync.cc:1650 #, c-format msgid "not queueing %s delta '%s' -> '%s' as we are in pure sink role\n" -msgstr "" -"純粋なシンクの役割を果しているので %s 差分 '%s' -> '%s' をキューに追加しませ" -"ん\n" +msgstr "純粋なシンクの役割を果しているので %s 差分 '%s' -> '%s' を" +"キューに追加しません\n" -#: netsync.cc:1596 +#: netsync.cc:1655 #, c-format msgid "queueing %s delta '%s' -> '%s'\n" -msgstr "%s 差分 '%s' -> '%s' をキューに追加しています\n" +msgstr "%s 差分 '%s' -> '%s' をキューに追加\n" -#: netsync.cc:1614 +#: netsync.cc:1673 #, c-format msgid "" "not queueing note of nonexistence of %s item '%s' as we are in pure sink " "role\n" -msgstr "" -"純粋なシンクの役割を果しているので %s 項目 '%s' がないことについてノートを" -"キューに追加しません\n" +msgstr "純粋なシンクの役割を果しているので %s アイテム '%s' がないことについて" +"ノートをキューに追加しません\n" -#: netsync.cc:1619 +#: netsync.cc:1678 #, c-format msgid "queueing note of nonexistance of %s item '%s'\n" -msgstr "%s 項目 '%s' がないことについてノートをキューに追加しています\n" +msgstr "%s アイテム '%s' がないことについてノートをキューに追加\n" -#: netsync.cc:1631 +#: netsync.cc:1690 +#, c-format msgid "received 'bye' netcmd\n" msgstr "'bye' netcmd を受信\n" -#: netsync.cc:1639 +#: netsync.cc:1698 #, c-format -msgid "received network error: %s\n" -msgstr "ネットワークエラーを受信: %s\n" +msgid "received network error: %s" +msgstr "ネットワークエラーを受信: %s" -#: netsync.cc:1656 +#: netsync.cc:1715 #, c-format msgid "received 'done' for empty %s level %d, marking as complete\n" msgstr "空の %s レベル %d について 'done' 受信, 完了としてマーク\n" -#: netsync.cc:1678 +#: netsync.cc:1737 #, c-format msgid "" "received 'done' for %s level %d, which had refinements; sending echo of done " "for level %d\n" -msgstr "" -"微調整を含んでいた %s レベル %d について 'done' 受信;レベル %d の各 'done' に" -"ついて送信\n" +msgstr "微調整を含む %s レベル %d について 'done' 受信;レベル %d の" +"各 'done' について送信\n" -#: netsync.cc:1711 +#: netsync.cc:1770 #, c-format msgid "server key has name %s, hash %s\n" msgstr "サーバー鍵の名前 %s、ハッシュ %s\n" -#: netsync.cc:1719 netsync.cc:1721 -msgid "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" -msgstr "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" - -#: netsync.cc:1720 -msgid "@ WARNING: SERVER IDENTIFICATION HAS CHANGED @\n" -msgstr "@ 警告: サーバー ID が変更されました @\n" - -#: netsync.cc:1722 -msgid "IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY\n" -msgstr "誰か何か悪いことをしている可能性があります\n" - -#: netsync.cc:1723 -msgid "it is also possible that the server key has just been changed\n" -msgstr "または単にサーバーの鍵が変更されたのかもしれません\n" - -#: netsync.cc:1724 +#: netsync.cc:1778 #, c-format -msgid "remote host sent key %s\n" -msgstr "リモートホストは鍵 %s を送信\n" +msgid "" +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" +"@ WARNING: SERVER IDENTIFICATION HAS CHANGED @\n" +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" +"IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY\n" +"it is also possible that the server key has just been changed\n" +"remote host sent key %s\n" +"I expected %s\n" +"'monotone unset %s %s' overrides this check\n" +msgstr "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" +"@ 警告: サーバーの識別 ID が変更されています @\n" +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" +"これは誰かが何か悪事を働いている可能性があるということです。\n" +"またただサーバーの鍵が変更されただけの可能性もあります。\n" +"リモートホスト鍵 %s\n" +"期待値 %s\n" +"'monotone unset %s %s' とすると検証結果を無視するようになります\n" -#: netsync.cc:1725 +#: netsync.cc:1788 #, c-format -msgid "I expected %s\n" -msgstr "期待値 %s\n" - -#: netsync.cc:1726 -#, c-format -msgid "'monotone unset %s %s' overrides this check\n" -msgstr "'monotone unset %s %s' とするとこのチェックは上書きされます\n" - -#: netsync.cc:1728 msgid "server key changed" msgstr "サーバー鍵が変更されました" -#: netsync.cc:1733 +#: netsync.cc:1793 #, c-format -msgid "first time connecting to server %s\n" -msgstr "サーバー %s への初めての接続\n" +msgid "" +"first time connecting to server %s\n" +"I'll assume it's really them, but you might want to double-check\n" +"their key's fingerprint: %s\n" +msgstr "サーバー %s に接続するのは初めてです\n" +"偽物でないとは思いますが、鍵の指紋を二重チェックしてみるといいでしょう: %s\n" -#: netsync.cc:1734 -msgid "I'll assume it's really them, but you might want to double-check\n" -msgstr "偽物でないとは思いますが、鍵の指紋を二重チェックして\n" - -#: netsync.cc:1735 +#: netsync.cc:1800 #, c-format -msgid "their key's fingerprint: %s\n" -msgstr "確かめることができます: %s\n" - -#: netsync.cc:1740 -#, c-format msgid "saving public key for %s to database\n" msgstr "%s の公開鍵をデータベースに保存中\n" -#: netsync.cc:1747 +#: netsync.cc:1807 #, c-format msgid "received 'hello' netcmd from server '%s' with nonce '%s'\n" msgstr "サーバー '%s' から nonce '%s' と一緒に 'hello' netcmd を受信\n" -#: netsync.cc:1828 +#: netsync.cc:1888 +#, c-format msgid "rejected attempt at anonymous connection for write\n" -msgstr "匿名接続からの書き込みを拒否\n" +msgstr "匿名での接続からの書き込みを拒否\n" -#: netsync.cc:1835 +#: netsync.cc:1895 +#, c-format msgid "rejected attempt at anonymous connection while running as sink\n" -msgstr "シンクとして実行中の匿名接続からの書き込みを拒否\n" +msgstr "シンクとして実行中の匿名での接続からの書き込みを拒否\n" -#: netsync.cc:1852 +#: netsync.cc:1912 #, c-format msgid "anonymous access to branch '%s' denied by server" msgstr "ブランチ '%s' への匿名アクセスはサーバーによって拒否されました" -#: netsync.cc:1857 +#: netsync.cc:1917 #, c-format msgid "allowed anonymous read permission for '%s' excluding '%s'\n" -msgstr "'%s' ('%s' を除く)への匿名読み込みを許可しました\n" +msgstr "匿名での '%s' ('%s' を除く)の読み込みを許可しました\n" -#: netsync.cc:1889 +#: netsync.cc:1949 +#, c-format msgid "detected replay attack in auth netcmd\n" msgstr "auth netcmd 中に繰り返し攻撃を検出\n" -#: netsync.cc:1910 +#: netsync.cc:1970 #, c-format msgid "remote public key hash '%s' is unknown\n" msgstr "リモートの公開鍵ハッシュ '%s' は不明なものです\n" -#: netsync.cc:1926 +#: netsync.cc:1986 #, c-format msgid "" "denied '%s' read permission for '%s' excluding '%s' while running as pure " "sink\n" -msgstr "" -"純粋シンクとして実行中の '%s' の読み込み権限 ('%s' について; '%s' を除く) を拒否しました\n" +msgstr "純粋シンクとして実行中の '%s' の '%s' ('%s' を除く) の読み込みを" +"拒否しました\n" -#: netsync.cc:1942 +#: netsync.cc:2002 #, c-format msgid "" "denied '%s' read permission for '%s' excluding '%s' because of branch '%s'\n" -msgstr "" -"'%s' の読み込み権限 ('%s' について; '%s' を除く)をブランチ '%s' のために拒否しました\n" +msgstr "'%s' の '%s' ('%s' を除く)の読み込みをブランチ '%s' のために" +"拒否しました\n" -#: netsync.cc:1944 +#: netsync.cc:2004 #, c-format msgid "access to branch '%s' denied by server" msgstr "ブランチ '%s' へのアクセスはサーバーによって拒否されました" -#: netsync.cc:1952 +#: netsync.cc:2012 #, c-format msgid "allowed '%s' read permission for '%s' excluding '%s'\n" -msgstr "'%s' の '%s' ('%s' を除く)への匿名での読み込みを許可しました\n" +msgstr "'%s' の匿名での '%s' ('%s' を除く)の読み込みを許可しました\n" -#: netsync.cc:1961 +#: netsync.cc:2021 #, c-format msgid "" "denied '%s' write permission for '%s' excluding '%s' while running as pure " "source\n" -msgstr "" -"純粋ソースとして実行中の '%s' の書き込み権限 ('%s' について; '%s' を除く) を拒否しました\n" +msgstr "純粋ソースとして実行中の '%s' の '%s' ('%s' を除く) への書き込みを" +"拒否しました\n" -#: netsync.cc:1969 +#: netsync.cc:2029 #, c-format msgid "denied '%s' write permission for '%s' excluding '%s'\n" msgstr "'%s' の '%s' ('%s' を除く)への書き込みを拒否しました\n" -#: netsync.cc:1975 +#: netsync.cc:2035 #, c-format msgid "allowed '%s' write permission for '%s' excluding '%s'\n" -msgstr "'%s' の書き込み権限 ('%s' について; '%s' を除く) を許可\n" +msgstr "'%s' の '%s' ('%s' を除く)への書き込みを許可しました\n" -#: netsync.cc:1990 +#: netsync.cc:2050 +#, c-format msgid "client signature OK, accepting authentication\n" msgstr "クライアント署名 OK、認証完了\n" -#: netsync.cc:2012 +#: netsync.cc:2072 +#, c-format msgid "bad client signature\n" msgstr "不正なクライアント署名\n" -#: netsync.cc:2027 +#: netsync.cc:2087 #, c-format msgid "" "received 'confirm' netcmd from server '%s' for pattern '%s' exclude '%s' in %" "s mode\n" -msgstr "" -"サーバー '%s' からパターン '%s' ('%s' を除く; %s モード)への 'confirm' netcmd を受信\n" +msgstr "サーバー '%s' からパターン '%s' ('%s' を除く; %s モード)への " +"'confirm' netcmd を受信しました\n" -#: netsync.cc:2043 +#: netsync.cc:2103 +#, c-format msgid "server signature OK, accepting authentication\n" msgstr "サーバー署名 OK、認証完了\n" -#: netsync.cc:2048 +#: netsync.cc:2108 +#, c-format msgid "bad server signature\n" msgstr "不正なサーバー署名\n" -#: netsync.cc:2053 +#: netsync.cc:2113 +#, c-format msgid "unknown server key\n" msgstr "不明なサーバー鍵\n" -#: netsync.cc:2122 +#: netsync.cc:2182 #, c-format msgid "epoch with hash '%s' does not exist in our database" msgstr "こちらのデータベースにはハッシュ '%s' の epoch は含まれていません" -#: netsync.cc:2132 +#: netsync.cc:2192 #, c-format msgid "public key '%s' is also called '%s'\n" msgstr "公開鍵 '%s' の別名は '%s' です\n" -#: netsync.cc:2137 +#: netsync.cc:2211 #, c-format -msgid "public key '%s' does not exist in our database" -msgstr "こちらのデータベースには公開鍵 '%s' は含まれていません" - -#: netsync.cc:2151 -#, c-format msgid "revision '%s' does not exist in our database" msgstr "こちらのデータベースにはリビジョン '%s' は含まれていません" -#: netsync.cc:2165 +#: netsync.cc:2225 #, c-format msgid "manifest '%s' does not exist in our database" msgstr "こちらのデータベースにはマニフェスト '%s' は含まれていません" -#: netsync.cc:2179 +#: netsync.cc:2239 #, c-format msgid "file '%s' does not exist in our database" msgstr "こちらのデータベースにはファイル '%s' は含まれていません" -#: netsync.cc:2193 +#: netsync.cc:2253 #, c-format msgid "cert '%s' does not exist in our database" msgstr "こちらのデータベースには証明 '%s' は含まれていません" -#: netsync.cc:2212 +#: netsync.cc:2272 #, c-format msgid "received 'refine' netcmd on %s node '%s', level %d\n" msgstr "%s ノード '%s'、レベル %d で 'refine' netcmd を受信\n" -# CHECKED1 -#: netsync.cc:2217 +#: netsync.cc:2277 #, c-format msgid "no corresponding %s merkle node for prefix '%s', level %d\n" -msgstr "" -"相当する %s merkle ノード(対象: プレフィクス '%s'、レベル %d)を持っています\n" +msgstr "相当する %s merkle ノード(対象: プレフィクス '%s'、レベル %d)" +" を持っていません\n" -#: netsync.cc:2227 +#: netsync.cc:2287 #, c-format msgid "" "(#0) they have an empty slot %d (in a %s node '%s', level %d, we do not " "have)\n" -msgstr "" -"(#0) こちらにはない空のスロット %d (%s ノード '%s' 内, レベル %d) を持ってい" -"ます\n" +msgstr "(#0) こちらにはない空のスロット %d (%s ノード '%s' 内, レベル %d) " +"を持っています\n" -#: netsync.cc:2239 +#: netsync.cc:2299 #, c-format msgid "" "(#0) they have a live leaf at slot %d (in a %s node '%s', level %d, we do " "not have)\n" -msgstr "" -"(#0) こちらにはないスロット %d (%s ノード '%s' 内, レベル %d) に生きたリーフ" -"を持っています\n" +msgstr "(#0) こちらにはないスロット %d (%s ノード '%s' 内, レベル %d) " +"に生きたリーフを持っています\n" -#: netsync.cc:2241 +#: netsync.cc:2301 #, c-format msgid "(#0) requesting their %s leaf %s\n" -msgstr "(#0) %s リーフ %s をリクエストしています\n" +msgstr "(#0) %s リーフ %s を要求しています\n" -#: netsync.cc:2248 +#: netsync.cc:2308 #, c-format msgid "" "(#0) they have a dead leaf at slot %d (in a %s node '%s', level %d, we do " "not have)\n" -msgstr "" -"(#0) こちらにはないスロット %d (%s ノード '%s 内, レベル %d) に死んだリーフが" -"あります\n" +msgstr "(#0) こちらにはないスロット %d (%s ノード '%s 内, レベル %d) " +"に死んだリーフがあります\n" -#: netsync.cc:2256 +#: netsync.cc:2316 #, c-format msgid "" "(#0) they have a subtree at slot %d (in a %s node '%s', level %d, we do not " "have)\n" -msgstr "" -"(#0) こちらにはないスロット %d (%s ノード '%s' 内, レベル %d) にサブツリーを" -"持っています\n" +msgstr "(#0) こちらにはないスロット %d (%s ノード '%s' 内, レベル %d) " +"にサブツリーを持っています\n" -#: netsync.cc:2272 +#: netsync.cc:2332 #, c-format msgid "found corresponding %s merkle node for prefix '%s', level %d\n" -msgstr "" -"相当する %s merkle ノード (対象: プレフィクス '%s', レベル %d)をみつけまし" -"た\n" +msgstr "相当する %s merkle ノード (対象: プレフィクス '%s', レベル %d) " +"をみつけました\n" -#: netsync.cc:2286 +#: netsync.cc:2346 #, c-format msgid "" "(#1) they have an empty slot %d in %s node '%s', level %d, and so do we\n" -msgstr "" -"(#1) こちらにもある空のスロット %d (%s ノード '%s' 内, レベル %d)を持っていま" -"す\n" +msgstr "(#1) こちらにもある空のスロット %d (%s ノード '%s' 内, レベル %d) " +"を持っています\n" -#: netsync.cc:2293 +#: netsync.cc:2353 #, c-format msgid "" "(#2) they have an empty slot %d in %s node '%s', level %d, we have a live " "leaf\n" -msgstr "" -"(#2) こちら側では生きたリーフのある空のスロット %d (%s ノード '%s' 内, レベ" -"ル %d) を持っています\n" +msgstr "(#2) こちら側では生きたリーフのある空のスロット %d (%s ノード '%s' 内," +"レベル %d) を持っています\n" -#: netsync.cc:2307 +#: netsync.cc:2367 #, c-format msgid "" "(#3) they have an empty slot %d in %s node '%s', level %d, we have a dead " "leaf\n" -msgstr "" -"(#3) こちら側では死んだリーフのある空のスロット %d (%s ノード '%s' 内, レベ" -"ル %d) を持っています\n" +msgstr "(#3) こちら側では死んだリーフのある空のスロット %d (%s ノード '%s' 内, " +"レベル %d) を持っています\n" -#: netsync.cc:2314 +#: netsync.cc:2374 #, c-format msgid "" "(#4) they have an empty slot %d in %s node '%s', level %d, we have a " "subtree\n" -msgstr "" -"(#4) こちらではサブツリーのある空のスロット %d (%s ノード '%s' 内, レベル %" -"d) を持っています\n" +msgstr "(#4) こちらではサブツリーのある空のスロット %d (%s ノード '%s' 内、" +"レベル %d) を持っています\n" -#: netsync.cc:2341 +#: netsync.cc:2401 #, c-format msgid "" "(#5) they have a live leaf at slot %d in %s node '%s', level %d, we have " "nothing\n" -msgstr "" -"(#5) こちらにはないスロット %d (%s ノード '%s' 内, レベル %d) に生きたリーフ" -"を持っています\n" +msgstr "(#5) こちらにはないスロット %d (%s ノード '%s' 内, レベル %d) " +"に生きたリーフを持っています\n" -#: netsync.cc:2352 +#: netsync.cc:2412 #, c-format msgid "(#6) they have a live leaf at slot %d in %s node '%s', and so do we\n" -msgstr "" -"(#6) こちらにもあるスロット %d (%s ノード '%s' 内) に生きたリーフを持っていま" -"す\n" +msgstr "(#6) こちらにもあるスロット %d (%s ノード '%s' 内) に生きたリーフを" +"持っています\n" -#: netsync.cc:2362 +#: netsync.cc:2422 #, c-format msgid "(#6) we both have live %s leaf '%s'\n" msgstr "(#6) 両方とも生きた %s リーフ '%s' を持っています\n" -#: netsync.cc:2378 +#: netsync.cc:2438 #, c-format msgid "" "(#7) they have a live leaf at slot %d in %s node %s, level %d, we have a " "dead one\n" -msgstr "" -"(#7) こちら側では生きていない、生きたリーフをスロット %d (%s ノード %s、レベ" -"ル %d) に持っています\n" +msgstr "(#7) こちら側では生きていない、生きたリーフをスロット %d " +"(%s ノード %s、レベル %d) に持っています\n" -#: netsync.cc:2388 +#: netsync.cc:2448 #, c-format msgid "(#7) it's the same %s leaf '%s', but ours is dead\n" msgstr "(#7) 同じ %s リーフ '%s' ですがこちらのものは死んでいます\n" -#: netsync.cc:2401 +#: netsync.cc:2461 #, c-format msgid "" "(#8) they have a live leaf in slot %d of %s node '%s', level %d, we have a " "subtree\n" -msgstr "" -"(#8) こちらではサブツリーを持つ、生きたリーフをスロット %d (%s ノード %s、レ" -"ベル %d) に持っています\n" +msgstr "(#8) こちらではサブツリーを持つ、生きたリーフをスロット %d " +"(%s ノード %s、レベル %d) に持っています\n" -#: netsync.cc:2410 +#: netsync.cc:2470 #, c-format msgid "" "(#8) we have a copy of their live leaf '%s' in slot %d of %s node '%s', " "level %d\n" -msgstr "" -"(#8) 生きたリーフ '%s' (スロット %d, %s ノード '%s'、レベル %d) のコピーを" -"持っています\n" +msgstr "(#8) 生きたリーフ '%s' (スロット %d, %s ノード '%s'、レベル %d) " +"のコピーを持っています\n" -#: netsync.cc:2414 +#: netsync.cc:2474 #, c-format msgid "" "(#8) requesting a copy of their live leaf '%s' in slot %d of %s node '%s', " "level %d\n" -msgstr "" -"(#8) 生きたリーフ '%s' (スロット %d, %s ノード '%s'、レベル %d) のコピーをリ" -"クエストしています\n" +msgstr "(#8) 生きたリーフ '%s' (スロット %d, %s ノード '%s'、レベル %d) " +"のコピーをリクエストしています\n" -#: netsync.cc:2419 +#: netsync.cc:2479 #, c-format msgid "" "(#8) sending our subtree for refinement, in slot %d of %s node '%s', level %" "d\n" -msgstr "" -"(#8) 再調整のためにスロット %d (%s ノード '%s', レベル %d)のサブツリーを送信" -"しています\n" +msgstr "(#8) 再調整のためにスロット %d (%s ノード '%s', レベル %d) " +"のサブツリーを送信しています\n" -#: netsync.cc:2442 +#: netsync.cc:2502 #, c-format msgid "" "(#9) they have a dead leaf at slot %d in %s node '%s', level %d, we have " "nothing\n" -msgstr "" -"(#9) こちらにはない、死んだリーフをスロット %d (%s ノード '%s' 内、レベル %" -"d) に持っています\n" +msgstr "(#9) こちらにはない、死んだリーフをスロット %d (%s ノード '%s' 内、" +"レベル %d) に持っています\n" -#: netsync.cc:2449 +#: netsync.cc:2509 #, c-format msgid "" "(#10) they have a dead leaf at slot %d in %s node '%s', level %d, we have a " "live one\n" -msgstr "" -"(#10) こちらでは生きている、死んだリーフをスロット %d (%s ノード '%s' 内、レ" -"ベル %d)に持っています\n" +msgstr "(#10) こちらでは生きている、死んだリーフをスロット %d " +"(%s ノード '%s' 内、レベル %d)に持っています\n" -#: netsync.cc:2459 +#: netsync.cc:2519 #, c-format msgid "(#10) we both have %s leaf %s, theirs is dead\n" -msgstr "" -"(#10) 双方とも %s リーフ %s を持っていますが、彼らのものは死んでいます\n" +msgstr "(#10) 双方とも %s リーフ %s を持っていますが、彼らのものは死んでいます\n" -#: netsync.cc:2475 +#: netsync.cc:2535 #, c-format msgid "" "(#11) they have a dead leaf at slot %d in %s node '%s', level %d, so do we\n" -msgstr "" -"(#11) こちらにもある、死んだリーフをスロット %d (%s ノード '%s' 内、レベル %" -"d)に持っています\n" +msgstr "(#11) こちらにもある、死んだリーフをスロット %d " +"(%s ノード '%s' 内、レベル %d)に持っています\n" -#: netsync.cc:2482 +#: netsync.cc:2542 #, c-format msgid "" "(#12) they have a dead leaf in slot %d of %s node '%s', we have a subtree\n" -msgstr "" -"(#12) サブツリーを持っている、死んだリーフをスロット %d (%s ノード '%s' 内)に" -"持っています\n" +msgstr "(#12) サブツリーを持っている、死んだリーフをスロット %d " +"(%s ノード '%s' 内)に持っています\n" -#: netsync.cc:2505 +#: netsync.cc:2565 #, c-format msgid "" "(#13) they have a subtree at slot %d in %s node '%s', level %d, we have " "nothing\n" -msgstr "" -"(#13) こちらにはないサブツリーをスロット %d (%s ノード '%s' 内、レベル %d)に" -"持っています\n" +msgstr "(#13) こちらにはないサブツリーをスロット %d " +"(%s ノード '%s' 内、レベル %d)に持っています\n" -#: netsync.cc:2518 +#: netsync.cc:2578 #, c-format msgid "" "(#14) they have a subtree at slot %d in %s node '%s', level %d, we have a " "live leaf\n" -msgstr "" -"(#14) こちらには生きたリーフのあるサブツリーをスロット %d, (%s ノード '%s' " -"内、レベル %d)に持っています\n" +msgstr "(#14) こちらには生きたリーフのあるサブツリーをスロット %d " +"(%s ノード '%s' 内、レベル %d) に持っています\n" -#: netsync.cc:2530 +#: netsync.cc:2590 #, c-format msgid "(#14) pushed our leaf '%s' into fake subtree slot %d, level %d\n" -msgstr "" -"(#14) こちらのリーフ '%s' を仮のサブツリースロット %d, レベル %d に挿入\n" +msgstr "(#14) こちらのリーフ '%s' を仮のサブツリースロット %d、レベル %d に挿入\n" -#: netsync.cc:2542 +#: netsync.cc:2602 #, c-format msgid "" "(#15) they have a subtree at slot %d in %s node '%s', level %d, we have a " "dead leaf\n" -msgstr "" -"(#15) こちらには死んだリーフのあるサブツリーを、スロット %d (%s ノード '%s'、" -"レベル %d)に持っています\n" +msgstr "(#15) こちらには死んだリーフのあるサブツリーを、スロット %d " +"(%s ノード '%s'、レベル %d) に持っています\n" -#: netsync.cc:2561 +#: netsync.cc:2621 #, c-format msgid "" "(#16) they have a subtree at slot %d in %s node '%s', level %d, and so do " "we\n" -msgstr "" -"(#16) こちらにもあるサブツリーをスロット %d (%s ノード '%s', レベル %d)に持っ" -"ています\n" +msgstr "(#16) こちらにもあるサブツリーをスロット %d (%s ノード '%s'、" +"レベル %d)に持っています\n" -#: netsync.cc:2571 +#: netsync.cc:2631 #, c-format msgid "(#16) we both have %s subtree '%s'\n" msgstr "(#16) 双方とも %s サブツリー '%s' を持っています\n" -#: netsync.cc:2576 +#: netsync.cc:2636 #, c-format msgid "(#16) %s subtrees at slot %d differ, refining ours\n" -msgstr "" -"(#16) %s サブツリー (スロット %d) は違っています. こちら側のものを調整しま" -"す\n" +msgstr "(#16) %s サブツリー (スロット %d) は違っています。" +"こちら側のものを調整します\n" -#: netsync.cc:2603 +#: netsync.cc:2663 #, c-format msgid "received 'send_data' netcmd requesting %s '%s'\n" -msgstr "%s '%s' をリクエストする 'send_data' netcmd を受信\n" +msgstr "%s '%s' を要求する 'send_data' netcmd を受信\n" -#: netsync.cc:2631 +#: netsync.cc:2691 #, c-format msgid "received 'send_delta' netcmd requesting %s edge '%s' -> '%s'\n" -msgstr "%s 先端 '%s' -> '%s' をリクエストする 'send_delta' netcmd を受信\n" +msgstr "%s 先端 '%s' -> '%s' を要求する 'send_delta' netcmd を受信\n" -#: netsync.cc:2685 +#: netsync.cc:2745 #, c-format msgid "delta requested for item type %s\n" -msgstr "項目タイプ %s についてリクエストされた差分\n" +msgstr "アイテムタイプ %s について要求された差分\n" -#: netsync.cc:2708 +#: netsync.cc:2768 #, c-format msgid "epoch '%s' already exists in our database\n" msgstr "epoch '%s' は既にデータベースにあります\n" -#: netsync.cc:2715 +#: netsync.cc:2775 #, c-format msgid "received epoch %s for branch %s\n" msgstr "epoch %s (ブランチ %s) を受信\n" -#: netsync.cc:2722 +#: netsync.cc:2782 #, c-format msgid "branch %s has no epoch; setting epoch to %s\n" -msgstr "ブランチ %s には epoch はありません; epoch を %s に設定します\n" +msgstr "ブランチ %s には epoch はありませんので、epoch を %s に設定します\n" -#: netsync.cc:2728 +#: netsync.cc:2788 #, c-format msgid "branch %s already has an epoch; checking\n" -msgstr "ブランチ %s には既に epoch があります; チェック中\n" +msgstr "ブランチ %s には既に epoch があります。検証中\n" -#: netsync.cc:2739 +#: netsync.cc:2799 #, c-format -msgid "Mismatched epoch on branch %s. Server has '%s', client has '%s'." -msgstr "" -"ブランチ %s について epoch が一致しません: サーバー側 '%s', クライアント側 '%" -"s'" +msgid "Mismatched epoch on branch %s. Server has '%s', client has '%s'." +msgstr "ブランチ %s について epoch が一致しません。サーバー側 '%s', クライアント側 '%s'" -#: netsync.cc:2750 +#: netsync.cc:2810 #, c-format msgid "public key '%s' already exists in our database\n" msgstr "公開鍵 '%s' は既にデータベースにあります\n" -#: netsync.cc:2759 +#: netsync.cc:2819 #, c-format msgid "hash check failed for public key '%s' (%s); wanted '%s' got '%s'" -msgstr "公開鍵 '%s' (%s) についてハッシュ検証に失敗; 期待値 '%s'、計算値 '%s'" +msgstr "公開鍵 '%s' (%s) についてハッシュ検証に失敗。期待値 '%s'、計算値 '%s'" -#: netsync.cc:2768 +#: netsync.cc:2828 #, c-format msgid "cert '%s' already exists in our database\n" msgstr "証明 '%s' は既にデータベースにあります\n" -#: netsync.cc:2776 +#: netsync.cc:2836 #, c-format msgid "hash check failed for revision cert '%s'" msgstr "リビジョン証明 '%s' についてハッシュ検証に失敗" -#: netsync.cc:2792 +#: netsync.cc:2852 #, c-format msgid "revision '%s' already exists in our database\n" msgstr "リビジョン '%s' は既にデータベースにあります\n" -#: netsync.cc:2795 +#: netsync.cc:2855 #, c-format -msgid "received revision '%s' \n" +msgid "received revision '%s'\n" msgstr "リビジョン '%s' を受信\n" -#: netsync.cc:2814 +#: netsync.cc:2874 #, c-format msgid "manifest version '%s' already exists in our database\n" msgstr "バージョン '%s' のマニフェストは既にデータベースにあります\n" -#: netsync.cc:2829 +#: netsync.cc:2889 #, c-format msgid "file version '%s' already exists in our database\n" msgstr "バージョン '%s' のファイルは既にデータベースにあります\n" -#: netsync.cc:2899 +#: netsync.cc:2959 #, c-format msgid "ignoring delta received for item type %s\n" -msgstr "項目タイプ %s について受信した差分を無視しています\n" +msgstr "アイテムタイプ %s について受信した差分を無視\n" -#: netsync.cc:2913 +#: netsync.cc:2973 #, c-format msgid "received 'nonexistant' netcmd for %s '%s'\n" msgstr "%s '%s' について 'nonexistant' netcmd を受信\n" -#: netsync.cc:2990 +#: netsync.cc:2985 #, c-format +msgid "Received warning from usher: %s" +msgstr "門番から警告を受信: %s" + +#: netsync.cc:2987 +#, c-format +msgid "Received greeting from usher: %s" +msgstr "門番から受け入れ挨拶を受信: %s" + +#: netsync.cc:2992 +#, c-format +msgid "Sent reply." +msgstr "応答を送信" + +#: netsync.cc:3067 +#, c-format msgid "" "received 'anonymous' netcmd from client for pattern '%s' excluding '%s' in %" "s mode\n" -msgstr "" -"クライアントからパターン '%s' ('%s' を除く; %s モード)への 'anonymous' netcmd を受信\n" +msgstr "クライアントからパターン '%s' ('%s' を除く; %s モード)への " +"'anonymous' netcmd を受信\n" -#: netsync.cc:3021 +#: netsync.cc:3098 #, c-format msgid "" "received 'auth(hmac)' netcmd from client '%s' for pattern '%s' exclude '%s' " "in %s mode with nonce1 '%s'\n" -msgstr "" -"クライアント '%s' からパターン '%s' ('%s' を除く; モード %s) について" +msgstr "クライアント '%s' からパターン '%s' ('%s' を除く; モード %s) について " "nonce1 '%s' とともに 'auth(hmac)' netcmd を受信\n" -#: netsync.cc:3187 +#: netsync.cc:3274 #, c-format msgid "processing %d byte input buffer from peer %s\n" msgstr "%d バイトの入力バッファ (送信元: ピーア %s) を処理中\n" -#: netsync.cc:3190 +#: netsync.cc:3277 #, c-format msgid "input buffer for peer %s is overfull after netcmd dispatch\n" msgstr "netcmd dispatch の後でピーア %s の入力バッファがあふれました\n" -#: netsync.cc:3197 netsync.cc:3231 netsync.cc:3258 +#: netsync.cc:3284 netsync.cc:3318 netsync.cc:3345 #, c-format msgid "protocol error while processing peer %s: '%s'\n" msgstr "ピーア %s: '%s' を処理中にプロトコルエラー発生\n" -#: netsync.cc:3217 +#: netsync.cc:3304 #, c-format msgid "connecting to %s\n" msgstr "%s に接続中\n" -#: netsync.cc:3244 +#: netsync.cc:3331 #, c-format msgid "timed out waiting for I/O with peer %s, disconnecting\n" msgstr "ピーア %s の I/O を待っている間にタイムアウト, 切断中\n" -#: netsync.cc:3266 +#: netsync.cc:3353 #, c-format msgid "read from fd %d (peer %s) closed OK after goodbye\n" msgstr "fd %d (ピーア %s) からの読み込みは goodbye の後で問題なく閉じました\n" -#: netsync.cc:3268 +#: netsync.cc:3355 #, c-format msgid "read from fd %d (peer %s) failed, disconnecting\n" msgstr "fd %d (ピーア %s) からの読み込みに失敗, 切断中\n" -#: netsync.cc:3278 +#: netsync.cc:3365 #, c-format msgid "write on fd %d (peer %s) closed OK after goodbye\n" msgstr "fd %d (ピーア %s) への書き込みは goodbye の後で問題なく閉じました\n" -#: netsync.cc:3280 +#: netsync.cc:3367 #, c-format msgid "write on fd %d (peer %s) failed, disconnecting\n" -msgstr "fd %d (ピーア %s) からの書き込みに失敗, 切断中\n" +msgstr "fd %d (ピーア %s) からの書き込みに失敗、切断中\n" -#: netsync.cc:3287 +#: netsync.cc:3374 #, c-format msgid "got OOB data on fd %d (peer %s), disconnecting\n" msgstr "fd %d (ピーア %s) で OOB データを受信、切断中\n" -#: netsync.cc:3296 +#: netsync.cc:3383 #, c-format msgid "terminated exchange with %s\n" msgstr "%s との交換を切断\n" -#: netsync.cc:3304 +#: netsync.cc:3391 #, c-format msgid "successful exchange with %s\n" msgstr "%s との交換に成功\n" -#: netsync.cc:3325 +#: netsync.cc:3412 #, c-format msgid "fd %d is armed\n" msgstr "fd %d: armed\n" -#: netsync.cc:3332 +#: netsync.cc:3419 #, c-format msgid "protocol error while processing peer %s: '%s', marking as bad\n" -msgstr "ピーア %s: '%s' を処理中にプロトコルエラー発生, 間違いとして印付け\n" +msgstr "ピーア %s: '%s' を処理中にプロトコルエラー発生、誤りとして印付け\n" -#: netsync.cc:3354 +#: netsync.cc:3441 #, c-format msgid "accepting new connection on %s : %d\n" -msgstr "%s での新しい接続を受理しています: %d\n" +msgstr "%s : %d での新しい接続を受理\n" -#: netsync.cc:3360 +#: netsync.cc:3447 +#, c-format msgid "accept() returned a dead client\n" msgstr "accept() は死んだクライアントを返しました\n" -#: netsync.cc:3364 +#: netsync.cc:3451 #, c-format msgid "accepted new client connection from %s\n" -msgstr "%s からの新しいクライアント接続を受理しました\n" +msgstr "%s からの新しいクライアント接続を受理\n" -#: netsync.cc:3391 +#: netsync.cc:3478 #, c-format msgid "protocol error while processing peer %s: '%s', disconnecting\n" -msgstr "ピーア %s: '%s' からを処理中にプロトコルエラー発生, 切断中\n" +msgstr "ピーア %s: '%s' からを処理中にプロトコルエラー発生、切断中\n" -#: netsync.cc:3399 +#: netsync.cc:3486 #, c-format msgid "fd %d (peer %s) read failed, disconnecting\n" -msgstr "fd %d (ピーア %s) 読み込み失敗, 切断中\n" +msgstr "fd %d (ピーア %s) 読み込み失敗、切断中\n" -#: netsync.cc:3415 +#: netsync.cc:3502 #, c-format msgid "fd %d (peer %s) write failed, disconnecting\n" -msgstr "fd %d (ピーア %s) 書き込み失敗, 切断中\n" +msgstr "fd %d (ピーア %s) 書き込み失敗、切断中\n" -#: netsync.cc:3439 +#: netsync.cc:3526 #, c-format msgid "fd %d (peer %s) processing finished, disconnecting\n" -msgstr "fd %d (ピーア %s) 処理終了, 切断中\n" +msgstr "fd %d (ピーア %s) 処理終了、切断中\n" -#: netsync.cc:3461 +#: netsync.cc:3548 #, c-format msgid "fd %d (peer %s) has been idle too long, disconnecting\n" -msgstr "fd %d (ピーア %s) はアイドル時間が長すぎます. 切断中\n" +msgstr "fd %d (ピーア %s) はアイドル時間が長すぎます。切断中\n" -#: netsync.cc:3467 +#: netsync.cc:3554 #, c-format msgid "fd %d (peer %s) exchanged goodbyes and flushed output, disconnecting\n" -msgstr "fd %d (ピーア %s) は goodbye を交し出力をフラッシュしました. 切断中\n" +msgstr "fd %d (ピーア %s) は goodbye を交し出力をフラッシュしました。切断中\n" -#: netsync.cc:3498 +#: netsync.cc:3585 #, c-format msgid "beginning service on %s : %d\n" -msgstr "%s : %d でサービスを開始しています\n" +msgstr "%s : %d でサービスを開始\n" -#: netsync.cc:3512 +#: netsync.cc:3599 #, c-format msgid "session limit %d reached, some connections will be refused\n" -msgstr "" -"セッション制限 %d に達っしました. いくつかの接続については拒否されます\n" +msgstr "セッション制限 %d に達っしました。いくつかの接続は拒否されます\n" -#: netsync.cc:3518 +#: netsync.cc:3605 #, c-format msgid "i/o probe with %d armed\n" -msgstr "%d armed で i/o プローブ\n" +msgstr "%d armed で I/O プローブ\n" -#: netsync.cc:3528 +#: netsync.cc:3615 #, c-format msgid "timed out waiting for I/O (listening on %s : %d)\n" msgstr "I/O (%s : %d でリスン中) 待機中にタイムアウト\n" -#: netsync.cc:3544 +#: netsync.cc:3631 #, c-format msgid "got woken up for action on unknown fd %d\n" msgstr "不明な fd %d はアクションのために起こされました\n" -#: netsync.cc:3559 +#: netsync.cc:3646 #, c-format msgid "got some OOB data on fd %d (peer %s), disconnecting\n" -msgstr "fd %d (ピーア %s) で OOB データを受信. 切断中\n" +msgstr "fd %d (ピーア %s) で OOB データを受信し、切断中\n" -#: netsync.cc:3621 +#: netsync.cc:3708 +#, c-format msgid "finding items to synchronize:\n" -msgstr "同期するアイテムを検索中:\n" +msgstr "同期アイテムを検索中:\n" -#: netsync.cc:3624 +#: netsync.cc:3711 #, c-format msgid "including branch %s" msgstr "ブランチ %s を含めます" -#: netsync.cc:3675 +#: netsync.cc:3765 #, c-format msgid "setting epoch on %s to zero\n" msgstr "%s の epoch を零に設定\n" -#: netsync.cc:3766 +#: netsync.cc:3856 netsync.cc:3861 #, c-format msgid "network error: %s" msgstr "ネットワークエラー: %s" -#: netsync.cc:3771 +#: packet.cc:325 #, c-format -msgid "network error: %s\n" -msgstr "ネットワークエラー: %s\n" - -#: packet.cc:324 -#, c-format msgid "writing delayed revision data packet for %s\n" msgstr "%s について遅延したリビジョンデータパケットを書き込み中\n" -#: packet.cc:331 +#: packet.cc:332 #, c-format msgid "discarding revision data packet %s with unmet dependencies\n" -msgstr "依存関係を満たさないリビジョンデータパケット %s を破棄しています\n" +msgstr "依存関係を満たさないリビジョンデータパケット %s を破棄\n" -#: packet.cc:337 +#: packet.cc:338 #, c-format msgid "writing delayed manifest data packet for %s\n" msgstr "%s について遅延したマニフェストデータパケットを書き込み中\n" -#: packet.cc:344 +#: packet.cc:345 #, c-format msgid "discarding manifest data packet %s with unmet dependencies\n" -msgstr "依存関係を満たさないマニフェストデータパケット %s を破棄しています\n" +msgstr "依存関係を満たさないマニフェストデータパケット %s を破棄\n" -#: packet.cc:350 +#: packet.cc:351 #, c-format msgid "writing delayed file data packet for %s\n" msgstr "%s について遅延ファイルデータパケットを書き込み中\n" -#: packet.cc:363 +#: packet.cc:364 #, c-format msgid "writing delayed manifest %s packet for %s -> %s\n" msgstr "遅延マニフェスト %s パケット(%s -> %s)を書き込み中\n" -#: packet.cc:376 +#: packet.cc:377 #, c-format msgid "discarding manifest delta packet %s -> %s with unmet dependencies\n" -msgstr "依存関係を満たさないマニフェスト差分パケット %s -> %s を破棄しています\n" +msgstr "依存関係を満たさないマニフェスト差分パケット %s -> %s を破棄\n" -#: packet.cc:383 +#: packet.cc:384 #, c-format msgid "writing delayed file %s packet for %s -> %s\n" msgstr "遅延したファイル %s パケット(%s -> %s)を書き込み中\n" -#: packet.cc:396 +#: packet.cc:397 #, c-format msgid "discarding file delta packet %s -> %s with unmet dependencies\n" -msgstr "依存関係を満たさないファイル差分パケット %s -> %s を破棄しています\n" +msgstr "依存関係を満たさないファイル差分パケット %s -> %s を破棄\n" -#: packet.cc:403 +#: packet.cc:404 #, c-format msgid "writing delayed revision cert on %s\n" msgstr "%s の遅延リビジョン証明を書き込み中\n" -#: packet.cc:410 +#: packet.cc:411 #, c-format msgid "discarding revision cert packet %s with unmet dependencies\n" -msgstr "依存関係を満たさないリビジョン証明パケット %s を破棄しています\n" +msgstr "依存関係を満たさないリビジョン証明パケット %s を破棄\n" -#: packet.cc:417 +#: packet.cc:418 #, c-format msgid "writing delayed public key %s\n" msgstr "遅延公開鍵 %s を書き込み中\n" -#: packet.cc:430 +#: packet.cc:431 #, c-format msgid "writing delayed private key %s\n" msgstr "遅延秘密鍵 %s を書き込み中\n" -#: packet.cc:600 +#: packet.cc:601 #, c-format msgid "noting acceptence of revision %s\n" msgstr "リビジョン %s について受理したものはありません\n" -#: packet.cc:613 +#: packet.cc:614 #, c-format msgid "noting acceptence of manifest %s\n" msgstr "マニフェスト %s について受理したものはありません\n" -#: packet.cc:626 +#: packet.cc:627 #, c-format msgid "noting acceptence of file %s\n" msgstr "ファイル %s について受理したものはありません\n" -#: packet.cc:648 +#: packet.cc:649 #, c-format msgid "skipping existing file version %s\n" -msgstr "既存のファイル、バージョン %s をスキップしています\n" +msgstr "既存のファイル、バージョン %s をスキップ\n" -#: packet.cc:676 +#: packet.cc:677 #, c-format msgid "reconstructed file from delta '%s' -> '%s' has wrong id '%s'\n" -msgstr "" -"差分 '%s' -> '%s' から再構築されたファイルは不正な ID '%s' を持っています\n" +msgstr "差分 '%s' -> '%s' から再構築されたファイルの ID '%s' は不正なものです\n" -#: packet.cc:682 +#: packet.cc:683 #, c-format msgid "delaying file delta %s -> %s for preimage\n" -msgstr "事前イメージのためのファイル差分 %s -> %s を遅延中\n" +msgstr "事前イメージのためのファイル差分 %s -> %s を遅延\n" -#: packet.cc:692 +#: packet.cc:693 #, c-format msgid "skipping delta to existing file version %s\n" -msgstr "既存のファイル、バージョン %s への差分をスキップしています\n" +msgstr "既存のファイル、バージョン %s への差分をスキップ\n" -#: packet.cc:720 +#: packet.cc:721 #, c-format msgid "reconstructed file from reverse delta '%s' -> '%s' has wrong id '%s'\n" -msgstr "" -"逆向きの差分 '%s' -> '%s' から再構築されたファイルは不正な ID '%s' を持ってい" -"ます\n" +msgstr "逆方向の差分 '%s' -> '%s' から再構築されたファイルの ID '%s' は不正なものです\n" -#: packet.cc:726 +#: packet.cc:727 #, c-format msgid "delaying reverse file delta %s -> %s for preimage\n" -msgstr "事前イメージのための逆向きのファイル差分 %s -> %s を遅延中\n" +msgstr "事前イメージのための逆方向のファイル差分 %s -> %s を遅延\n" -#: packet.cc:736 +#: packet.cc:737 #, c-format msgid "skipping reverse delta to existing file version %s\n" -msgstr "既存のファイル、バージョン %s への逆向きの差分をスキップしています\n" +msgstr "既存のファイル、バージョン %s への逆方向の差分をスキップ\n" -#: packet.cc:753 +#: packet.cc:754 #, c-format msgid "skipping existing manifest version %s\n" -msgstr "既存のマニフェスト、バージョン %s をスキップしています\n" +msgstr "既存のマニフェスト、バージョン %s をスキップ\n" -#: packet.cc:781 +#: packet.cc:782 #, c-format msgid "reconstructed manifest from delta '%s' -> '%s' has wrong id '%s'\n" -msgstr "" -"差分 '%s' -> '%s' から再構築されたマニフェストは不正な ID '%s' を持っていま" -"す\n" +msgstr "差分 '%s' -> '%s' から再構築されたマニフェストの ID '%s' は不正なものです\n" -#: packet.cc:787 +#: packet.cc:788 #, c-format msgid "delaying manifest delta %s -> %s for preimage\n" -msgstr "事前イメージのための逆向きのファイル差分 %s -> %s を遅延中\n" +msgstr "事前イメージのための逆方向のファイル差分 %s -> %s を遅延\n" -#: packet.cc:797 +#: packet.cc:798 #, c-format msgid "skipping delta to existing manifest version %s\n" -msgstr "既存のマニフェストバージョン %s への差分をスキップしています\n" +msgstr "既存のマニフェストバージョン %s への差分をスキップ\n" -#: packet.cc:825 +#: packet.cc:826 #, c-format msgid "" "reconstructed manifest from reverse delta '%s' -> '%s' has wrong id '%s'\n" -msgstr "" -"逆向きの差分 '%s' -> '%s' から再構築されたマニフェストは不正な ID '%s' を持っ" -"ています\n" +msgstr "逆方向の差分 '%s' -> '%s' から再構築されたマニフェストの ID '%s' は不正なものです\n" -#: packet.cc:831 +#: packet.cc:832 #, c-format msgid "delaying manifest reverse delta %s -> %s for preimage\n" -msgstr "事前イメージのためのマニフェストの逆向きの差分 %s -> %s を遅延中\n" +msgstr "事前イメージのためのマニフェストの逆方向の差分 %s -> %s を遅延\n" -#: packet.cc:841 +#: packet.cc:842 #, c-format msgid "skipping reverse delta to existing manifest version %s\n" -msgstr "" -"既存のマニフェスト、バージョン %s への逆向きの差分をスキップしています\n" +msgstr "既存のマニフェスト、バージョン %s への逆方向の差分をスキップ\n" -#: packet.cc:863 +#: packet.cc:864 #, c-format msgid "delaying revision %s for new manifest %s\n" -msgstr "リビジョン %s (新しいマニフェスト %s) を遅延しています\n" +msgstr "リビジョン %s (新しいマニフェスト %s) を遅延\n" -#: packet.cc:877 +#: packet.cc:878 #, c-format msgid "delaying revision %s for old manifest %s\n" -msgstr "リビジョン %s (古いマニフェスト %s) を遅延しています\n" +msgstr "リビジョン %s (古いマニフェスト %s) を遅延\n" -#: packet.cc:887 +#: packet.cc:888 #, c-format msgid "delaying revision %s for old revision %s\n" -msgstr "リビジョン %s (古いリビジョン %s) を遅延しています\n" +msgstr "リビジョン %s (古いリビジョン %s) を遅延\n" -#: packet.cc:900 +#: packet.cc:901 #, c-format msgid "delaying revision %s for old file %s\n" -msgstr "リビジョン %s (古いファイル %s) を遅延しています\n" +msgstr "リビジョン %s (古いファイル %s) を遅延\n" -#: packet.cc:910 +#: packet.cc:911 #, c-format msgid "delaying revision %s for new file %s\n" -msgstr "リビジョン %s (新しいファイル %s) を遅延しています\n" +msgstr "リビジョン %s (新しいファイル %s) を遅延\n" -#: packet.cc:928 +#: packet.cc:929 #, c-format msgid "skipping existing revision %s\n" -msgstr "既存のリビジョン %s をスキップしています\n" +msgstr "既存のリビジョン %s をスキップ\n" -#: packet.cc:946 +#: packet.cc:947 #, c-format msgid "delaying revision cert on %s\n" -msgstr "%s のリビジョン証明を遅延しています\n" +msgstr "%s のリビジョン証明を遅延\n" -#: packet.cc:959 +#: packet.cc:960 #, c-format msgid "skipping existing revision cert %s\n" -msgstr "既存のリビジョン証明 %s をスキップしています\n" +msgstr "既存のリビジョン証明 %s をスキップ\n" -#: packet.cc:973 +#: packet.cc:974 #, c-format msgid "skipping prohibited public key %s\n" -msgstr "禁止された公開鍵 %s をスキップしています\n" +msgstr "禁止された公開鍵 %s をスキップ\n" -#: packet.cc:986 +#: packet.cc:987 #, c-format msgid "key '%s' is not equal to key '%s' in database\n" msgstr "鍵 '%s' はデータベース内の鍵 '%s' と一致しません\n" -#: packet.cc:987 +#: packet.cc:988 #, c-format msgid "skipping existing public key %s\n" -msgstr "既存の公開鍵 %s をスキップしています\n" +msgstr "既存の公開鍵 %s をスキップ\n" -#: packet.cc:1000 +#: packet.cc:1001 #, c-format msgid "skipping prohibited private key %s\n" -msgstr "禁止された秘密鍵 %s をスキップしています\n" +msgstr "禁止された秘密鍵 %s をスキップ\n" -#: packet.cc:1009 +#: packet.cc:1010 #, c-format msgid "skipping existing private key %s\n" -msgstr "既存の秘密鍵 %s をスキップしています\n" +msgstr "既存の秘密鍵 %s をスキップ\n" -#: packet.cc:1045 +#: packet.cc:1046 +#, c-format msgid "packet valve opened\n" msgstr "パケットバルブ: 開\n" -#: packet.cc:1057 +#: packet.cc:1058 #, c-format msgid "wrote %i queued packets\n" msgstr "%i キューパケット書き込み\n" -#: packet.cc:1306 +#: packet.cc:1307 +#, c-format msgid "read data packet\n" msgstr "データパケット読み込み\n" -#: packet.cc:1328 +#: packet.cc:1329 +#, c-format msgid "read delta packet\n" msgstr "差分パケット読み込み\n" -#: packet.cc:1359 +#: packet.cc:1360 +#, c-format msgid "read cert packet\n" msgstr "証明パケット読み込み\n" -#: packet.cc:1385 +#: packet.cc:1386 +#, c-format msgid "read key data packet\n" msgstr "鍵データパケット読み込み\n" #: rcs_file.cc:343 #, c-format msgid "parse failure %d:%d: expecting %s, got %s with value '%s'\n" -msgstr "解析失敗 %d:%d: 期待値 %s, 取得 %s (値 '%s')\n" +msgstr "解析失敗 %d:%d: 期待値 %s、取得 %s (値 '%s')\n" #: rcs_file.cc:362 #, c-format @@ -3605,479 +4416,485 @@ msgid "parse failure %d:%d: expecting word\n" msgstr "解析失敗 %d:%d: 期待される語句\n" -#: rcs_import.cc:249 +#: rcs_import.cc:247 #, c-format msgid "Calculating time of %s\n" -msgstr "%s の時間を計算中\n" +msgstr "%s の時間を計算しています\n" -#: rcs_import.cc:263 +#: rcs_import.cc:281 #, c-format -msgid "= %i\n" -msgstr "= %i\n" - -#: rcs_import.cc:283 -#, c-format msgid "version %s -> tag %s\n" msgstr "バージョン %s - タグ %s\n" -#: rcs_import.cc:450 +#: rcs_import.cc:448 +#, c-format msgid "skipping identity file edge\n" -msgstr "識別ファイルの先端をスキップしています\n" +msgstr "識別ファイルの先端をスキップ\n" -#: rcs_import.cc:458 rcs_import.cc:484 +#: rcs_import.cc:456 rcs_import.cc:482 #, c-format msgid "existing path to %s found, skipping\n" -msgstr "%s への既存のパスを発見、スキップしています\n" +msgstr "%s への既存のパスを発見、スキップ\n" -#: rcs_import.cc:476 +#: rcs_import.cc:474 +#, c-format msgid "skipping identity manifest edge\n" -msgstr "識別マニフェストの先端をスキップしています\n" +msgstr "識別マニフェストの先端をスキップ\n" -#: rcs_import.cc:594 +#: rcs_import.cc:592 #, c-format msgid "version %s has %d lines\n" msgstr "バージョン %s には %d 行あります\n" -#: rcs_import.cc:607 +#: rcs_import.cc:605 #, c-format msgid "following RCS edge %s -> %s\n" msgstr "次の RCS 先端 %s -> %s\n" -#: rcs_import.cc:610 +#: rcs_import.cc:608 #, c-format msgid "constructed RCS version %s, inserting into database\n" msgstr "構築された RCS バージョン %s をデータベースに挿入\n" -#: rcs_import.cc:653 +#: rcs_import.cc:651 #, c-format msgid "following RCS branch %s = '%s'\n" -msgstr "次の RCS ブランチ %s = '%s' を追跡中\n" +msgstr "次の RCS ブランチ %s = '%s' を追跡\n" -#: rcs_import.cc:663 +#: rcs_import.cc:661 #, c-format msgid "finished RCS branch %s = '%s'\n" msgstr "RCS ブランチ %s ='%s' を終了\n" -#: rcs_import.cc:684 rcs_import.cc:733 +#: rcs_import.cc:682 rcs_import.cc:730 #, c-format msgid "parsing RCS file %s\n" msgstr "RCS ファイル %s を解析中\n" -#: rcs_import.cc:686 rcs_import.cc:736 +#: rcs_import.cc:684 rcs_import.cc:733 #, c-format msgid "parsed RCS file %s OK\n" msgstr "解析した RCS ファイル %s: OK\n" -#: rcs_import.cc:776 +#: rcs_import.cc:773 #, c-format msgid "importing file '%s'\n" msgstr "ファイル '%s' を取り込み中\n" -#: rcs_import.cc:848 +#: rcs_import.cc:845 #, c-format msgid "first version in branch %s would be %s\n" msgstr "ブランチ %s 内の最初のバージョンは %s でしょう\n" -#: rcs_import.cc:855 +#: rcs_import.cc:852 #, c-format msgid "file branchpoint for %s at %s\n" msgstr "%s のファイルブランチ点 %s\n" -#: rcs_import.cc:925 +#: rcs_import.cc:922 #, c-format msgid "error reading RCS file %s: %s\n" msgstr "RCS ファイル %s を読み込み中にエラー: %s\n" -#: rcs_import.cc:929 +#: rcs_import.cc:926 #, c-format msgid "skipping non-RCS file %s\n" -msgstr "非 RCS ファイル %s をスキップしています\n" +msgstr "非 RCS ファイル %s をスキップ\n" -#: rcs_import.cc:1108 +#: rcs_import.cc:1105 #, c-format msgid "examining next commit [t:%d] [p:%s] [a:%s] [c:%s]\n" msgstr "次のコミット [t:%d] [p:%s] [a:%s] [c:%s] を検査中\n" -#: rcs_import.cc:1121 +#: rcs_import.cc:1118 +#, c-format msgid "expiring cluster\n" msgstr "クラスタを終了中\n" -#: rcs_import.cc:1137 +#: rcs_import.cc:1134 #, c-format msgid "examining cluster %d to see if it touched %d\n" msgstr "クラスタ %d が %d にふれているか調べています\n" -#: rcs_import.cc:1145 +#: rcs_import.cc:1142 #, c-format msgid "found cluster touching %d: [t:%d] [a:%d] [c:%d]\n" msgstr "%d: [t:%d] [a:%d] [c:%d] にふれているクラスタをみつけました\n" -#: rcs_import.cc:1153 +#: rcs_import.cc:1150 #, c-format msgid "last modification time is %d\n" msgstr "最終更新日時は %d です\n" -#: rcs_import.cc:1169 +#: rcs_import.cc:1166 #, c-format msgid "picked existing cluster [t:%d] [a:%d] [c:%d]\n" msgstr "既存のクラスタ [t:%d] [a:%d] [c:%d] を選択\n" -#: rcs_import.cc:1183 +#: rcs_import.cc:1180 #, c-format msgid "building new cluster [t:%d] [a:%d] [c:%d]\n" msgstr "新しいクラスタ [t:%d] [a:%d] [c:%d] を作成中\n" -#: rcs_import.cc:1208 +#: rcs_import.cc:1205 +#, c-format msgid "finished branch commits, writing all pending clusters\n" msgstr "ブランチコミットを終了し、すべての待機中のクラスタを書き込んでいます\n" -#: rcs_import.cc:1214 +#: rcs_import.cc:1211 +#, c-format msgid "finished writing pending clusters\n" -msgstr "待機中のクラスタを書き込んでいます\n" +msgstr "待機中のクラスタへの書き込みを完了\n" -#: rcs_import.cc:1226 +#: rcs_import.cc:1223 #, c-format msgid "" "%s appears to be a CVS repository root directory\n" "try importing a module instead, with 'cvs_import %s/" -msgstr "" -"%s は CVS リポジトリのルートディレクトリのようです.\n" +msgstr "%s は CVS リポジトリのルートディレクトリのようです。\n" "代りに 'cvs_import %s/<モジュール名>' で取り込んでみて下さい" -#: rcs_import.cc:1239 +#: rcs_import.cc:1236 +#, c-format msgid "need base --branch argument for importing" -msgstr "取り込みにはベース --branch 引数が必要です" +msgstr "取り込みには基準 --branch 引数が必要です" -#: rcs_import.cc:1251 +#: rcs_import.cc:1248 #, c-format msgid "path %s does not exist" msgstr "パス %s は存在しません" -#: rcs_import.cc:1253 +#: rcs_import.cc:1249 #, c-format msgid "path %s is not a directory" msgstr "パス %s はディレクトリではありません" -#: rcs_import.cc:1256 +#: rcs_import.cc:1267 #, c-format -msgid "could not change directory to %s" -msgstr "ディレクトリ %s に移動できません" - -#: rcs_import.cc:1272 -#, c-format msgid "branch %s has %d entries\n" -msgstr "ブランチ %s は %d 個のエントリを持っています\n" +msgstr "ブランチ %s には %d 個のエントリがあります\n" -#: rcs_import.cc:1282 +#: rcs_import.cc:1277 #, c-format msgid "trunk has %d entries\n" -msgstr "trunk は %d 個のエントリを持っています\n" +msgstr "trunk には %d 個のエントリがあります\n" -#: rcs_import.cc:1335 +#: rcs_import.cc:1284 +msgid "tags" +msgstr "タグ" + +#: rcs_import.cc:1330 #, c-format msgid "initial cluster on branch %s has %d live entries\n" -msgstr "ブランチ %s の初期クラスタは %d 個の生きたエントリを持っています\n" +msgstr "ブランチ %s の初期クラスタには %d 個の生きたエントリがあります\n" -#: rcs_import.cc:1342 +#: rcs_import.cc:1337 #, c-format msgid "initial cluster contains %s at %s\n" msgstr "初期クラスタは %s を %s に含んでいます\n" -#: rcs_import.cc:1388 +#: rcs_import.cc:1383 #, c-format msgid "storing manifest '%s' (base %s)\n" -msgstr "マニフェスト '%s' (ベース %s) を保存しています\n" +msgstr "マニフェスト '%s' (基準 %s) を保存しています\n" -#: rcs_import.cc:1393 +#: rcs_import.cc:1388 #, c-format msgid "storing head %s\n" -msgstr "ヘッド %s を保存しています\n" +msgstr "最新版 %s を保存しています\n" -#: rcs_import.cc:1408 +#: rcs_import.cc:1403 +#, c-format msgid "skipping delta to null manifest\n" -msgstr "空マニフェストについての差分をスキップしています\n" +msgstr "空マニフェストについての差分をスキップ\n" -#: rcs_import.cc:1420 +#: rcs_import.cc:1415 #, c-format msgid "skipping cyclical manifest delta %s -> %s\n" -msgstr "マニフェストの循環差分 %s -> %s をスキップしています\n" +msgstr "マニフェストの循環差分 %s -> %s をスキップ\n" -#: rcs_import.cc:1426 +#: rcs_import.cc:1421 #, c-format msgid "writing full manifest %s\n" msgstr "完全なマニフェスト %s を書き込み中\n" -#: rcs_import.cc:1436 +#: rcs_import.cc:1431 #, c-format msgid "storing manifest delta %s -> %s\n" msgstr "マニフェスト差分 %s -> %s を保存中\n" -#: rcs_import.cc:1498 +#: rcs_import.cc:1493 #, c-format msgid "adding entry state '%s' on '%s'\n" -msgstr "エントリ状態 '%s' ('%s') を追加しています\n" +msgstr "エントリ状態 '%s' ('%s') を追加\n" -#: rcs_import.cc:1505 +#: rcs_import.cc:1500 #, c-format msgid "applying state delta on '%s' : '%s' -> '%s'\n" msgstr "'%s' : '%s' -> '%s' の状態差分を適用中\n" -#: rcs_import.cc:1516 +#: rcs_import.cc:1511 #, c-format msgid "deleting entry state '%s' on '%s'\n" msgstr "エントリ状態 '%s' ('%s') を削除しています\n" -#: rcs_import.cc:1535 +#: rcs_import.cc:1530 +#, c-format msgid "BEGIN consume_cluster()\n" msgstr "BEGIN consume_cluster()\n" -#: rcs_import.cc:1555 +#: rcs_import.cc:1550 #, c-format msgid "END consume_cluster('%s') (parent '%s')\n" msgstr "END consume_cluster('%s') (親 '%s')\n" -#: revision.cc:124 +#: revision.cc:126 +#, c-format msgid "verifying new revisions (this may take a while)\n" msgstr "新しいリビジョンを検証中 (しばらく御待ち下さい)\n" -#: revision.cc:126 +#: revision.cc:128 #, c-format msgid "Verifying revision %s has sane history (to depth %i)\n" -msgstr "リビジョン %s が正しい履歴を持っているか検証しています(深さ %i)\n" +msgstr "リビジョン %s の履歴が正しいか検証しています (深さ %i)\n" -#: revision.cc:164 +#: revision.cc:166 #, c-format msgid "Examining %s -> %s\n" msgstr "%s -> %s を検討中\n" -#: revision.cc:241 +#: revision.cc:243 #, c-format msgid "%s and %s have no common ancestor, so done\n" -msgstr "%s と %s には共通の祖先はありません. 完了\n" +msgstr "%s と %s には共通の祖先はありません。完了\n" -#: revision.cc:247 +#: revision.cc:249 +#, c-format msgid "already checked common ancestor, so done\n" -msgstr "既にチェック済の共通の祖先. 完了\n" +msgstr "既にチェック済の共通の祖先。完了\n" -#: revision.cc:250 +#: revision.cc:252 #, c-format msgid "%s is a merge; verifying paths to common ancestor %s are sane\n" -msgstr "%s は統合です; 共通の祖先 %s へのパスが適切なものか検証しています\n" +msgstr "%s は統合です。共通の祖先 %s へのパスが適切なものか検証しています\n" -#: revision.cc:304 +#: revision.cc:310 #, c-format msgid "loading parents for node %d\n" msgstr "ノード %d の親を読み込み中\n" -#: revision.cc:324 +#: revision.cc:332 #, c-format msgid "parent %s -> node %d\n" msgstr "親 %s -> ノード %d\n" -#: revision.cc:474 +#: revision.cc:482 #, c-format msgid "found %d intersecting nodes\n" -msgstr "交差ノードが %d みつかりました\n" +msgstr "%d 個の交差ノードがみつかりました\n" -#: revision.cc:527 +#: revision.cc:535 #, c-format msgid "searching for common ancestor, left=%s right=%s\n" msgstr "左=%s 右=%s の共通の祖先を検索中\n" -#: revision.cc:532 +#: revision.cc:540 #, c-format msgid "common ancestor scan [par=%d,anc=%d,dom=%d]\n" msgstr "共通の祖先を走査 [親=%d,祖先=%d,支配=%d]\n" -#: revision.cc:537 +#: revision.cc:545 #, c-format msgid "found node %d, ancestor of left %s and dominating right %s\n" msgstr "みつかったノード %d は左 %s と支配している右 %s の祖先です\n" -#: revision.cc:544 +#: revision.cc:552 #, c-format msgid "found node %d, ancestor of right %s and dominating left %s\n" msgstr "みつかったノード %d は右 %s と支配している左 %s の祖先です\n" -#: revision.cc:581 +#: revision.cc:589 #, c-format msgid "searching for least common ancestor, left=%s right=%s\n" msgstr "最小公倍の祖先を検索中, 左=%s 右=%s\n" -#: revision.cc:585 +#: revision.cc:593 #, c-format msgid "least common ancestor scan [par=%d,anc=%d]\n" -msgstr "最小公倍の祖先を走査 [親=%d,祖先=%d]\n" +msgstr "最も近い祖先を走査 [親=%d,祖先=%d]\n" -#: revision.cc:590 +#: revision.cc:598 #, c-format msgid "found node %d, ancestor of left %s and right %s\n" msgstr "みつかったノード %d は左 %s、右 %s の祖先です\n" -#: revision.cc:644 +#: revision.cc:652 #, c-format msgid "checking whether %s is an ancestor of %s\n" -msgstr "%s が %s の祖先かどうかチェックしています\n" +msgstr "%s が %s の祖先かどうか検証しています\n" -#: revision.cc:756 +#: revision.cc:764 #, c-format msgid "new root: %s\n" msgstr "新規ルート: %s\n" -#: revision.cc:771 +#: revision.cc:779 #, c-format msgid "new leaf: %s\n" msgstr "新規リーフ: %s\n" -#: revision.cc:913 +#: revision.cc:921 #, c-format msgid "exploring changesets from parents of %s, seeking towards %s\n" msgstr "%s の親から %s に向って変更セットを調査中\n" -#: revision.cc:926 +#: revision.cc:934 #, c-format msgid "considering parent %s of %s\n" msgstr "親 %s (%s) について検討中\n" -#: revision.cc:952 +#: revision.cc:960 #, c-format msgid "revision %s is relevant, composing with edge to %s\n" msgstr "リビジョン %s は %s への先端と関連し複合しています\n" -#: revision.cc:959 +#: revision.cc:967 #, c-format msgid "parent %s of %s is not relevant\n" msgstr "親 %s (%s) は関連していません\n" -#: revision.cc:995 +#: revision.cc:1003 #, c-format msgid "adding parents of %s to subgraph\n" -msgstr "%s の親をサブグラフに追加しています\n" +msgstr "%s の親をサブグラフに追加\n" -#: revision.cc:1005 +#: revision.cc:1013 #, c-format msgid "found parent %s of %s\n" msgstr "親 %s (%s) を発見\n" -#: revision.cc:1009 +#: revision.cc:1017 #, c-format msgid "adding parent %s to next frontier\n" -msgstr "親 %s を次の先端に追加中\n" +msgstr "親 %s を次の先端に追加\n" -#: revision.cc:1024 +#: revision.cc:1032 #, c-format msgid "calculating composite changeset between %s and %s\n" msgstr "%s と %s の間の複合変更セットを見積っています\n" -#: revision.cc:1042 +#: revision.cc:1050 #, c-format msgid "calculating changeset from %s to %s\n" msgstr "%s から %s への変更セットを見積っています\n" -#: revision.cc:1046 +#: revision.cc:1054 #, c-format msgid "no common ancestor for %s and %s\n" msgstr "%s と %s の共通の祖先はありません\n" -#: revision.cc:1047 +#: revision.cc:1055 #, c-format msgid "common ancestor is %s\n" msgstr "共通の祖先は %s です\n" -#: revision.cc:1078 +#: revision.cc:1086 #, c-format msgid "analyzing manifest changes from '%s' -> '%s'\n" -msgstr "'%s' -> '%s' からマニフェストの変更を解析しています\n" +msgstr "'%s' -> '%s' からマニフェストの変更を解析中\n" -#: revision.cc:1091 +#: revision.cc:1099 #, c-format msgid "splitting ancestry for file %s\n" msgstr "ファイル %s の系統を分離中\n" -#: revision.cc:1158 +#: revision.cc:1166 #, c-format msgid "noting ancestry from child %d -> parent %d\n" msgstr "子 %d -> 親 %d の系統はありません\n" -#: revision.cc:1191 +#: revision.cc:1199 #, c-format msgid "setting epoch for %s to %s\n" msgstr "%s の epoch を %s に設定\n" -#: revision.cc:1247 +#: revision.cc:1255 +#, c-format msgid "scanning for nodes with 3+ parents\n" -msgstr "3 個以上の親を持つノードを走査しています\n" +msgstr "3 個以上の親を持つノードを走査中\n" -#: revision.cc:1288 +#: revision.cc:1296 #, c-format msgid "optimizing out redundant edge %i -> %i\n" -msgstr "冗長な先端 %i -> %i を最適化しています\n" +msgstr "冗長な先端 %i -> %i を最適化中\n" -#: revision.cc:1315 +#: revision.cc:1323 #, c-format msgid "rebuilding %d nodes\n" msgstr "再構築中: %d ノード\n" -#: revision.cc:1352 +#: revision.cc:1360 #, c-format msgid "node %d = manifest %s\n" msgstr "ノード %d = マニフェスト %s\n" -#: revision.cc:1363 +#: revision.cc:1371 #, c-format msgid "loaded '%s' manifest cert for node %s\n" -msgstr "'%s' マニフェスト証明 (ノード %s) を読み込み\n" +msgstr "'%s' マニフェスト証明 (ノード %s) を読み込みました\n" -#: revision.cc:1391 +#: revision.cc:1399 #, c-format msgid "node %d = revision %s = manifest %s\n" msgstr "ノード %d = リビジョン %s = マニフェスト %s\n" -#: revision.cc:1403 +#: revision.cc:1411 #, c-format msgid "loaded '%s' revision cert for node %s\n" -msgstr "'%s' リビジョン証明 (ノード %s) を読み込み\n" +msgstr "'%s' リビジョン証明 (ノード %s) を読み込みました\n" -#: revision.cc:1427 +#: revision.cc:1435 #, c-format msgid "processing node %d\n" msgstr "ノード %d を処理中\n" -#: revision.cc:1431 +#: revision.cc:1439 #, c-format msgid "node %d already processed, skipping\n" -msgstr "ノード %d は既に処理されています. スキップします\n" +msgstr "ノード %d をスキップ (既に処理済み)\n" -#: revision.cc:1445 +#: revision.cc:1453 #, c-format msgid "node %d is a root node\n" msgstr "ノード %d はルートノードです\n" -#: revision.cc:1461 revision.cc:1544 +#: revision.cc:1469 revision.cc:1552 #, c-format msgid "parent node %d = revision %s\n" msgstr "親ノード %d = リビジョン %s\n" -#: revision.cc:1523 +#: revision.cc:1531 #, c-format msgid "processing edge from child %d -> parent %d\n" msgstr "子 %d -> 親 %d から先端を処理中\n" -#: revision.cc:1561 +#: revision.cc:1569 #, c-format msgid "mapped node %d to revision %s\n" msgstr "ノード %d をリビジョン %s へ割り当てました\n" -#: revision.cc:1567 +#: revision.cc:1575 #, c-format msgid "skipping already existing revision %s\n" -msgstr "既存のリビジョン %s をスキップしています\n" +msgstr "既存のリビジョン %s をスキップ\n" -#: revision.cc:1579 +#: revision.cc:1587 +#, c-format msgid "rebuilding revision graph from existing graph\n" msgstr "既存のグラフからリビジョングラフを再度構成中\n" -#: revision.cc:1612 +#: revision.cc:1620 +#, c-format msgid "rebuilding revision graph from manifest certs\n" msgstr "マニフェスト証明からリビジョングラフを再度構成中\n" @@ -4086,102 +4903,134 @@ msgid "started up on %s\n" msgstr "%s で開始\n" -#: sanity.cc:246 +#: sanity.cc:53 +#, c-format +msgid "wrote debugging log to %s" +msgstr "%s にデバッグログを書き込み" + +#: sanity.cc:56 +#, c-format +msgid "failed to write debugging log to %s" +msgstr "%s へのデバッグログの書き込みに失敗しました" + +#: sanity.cc:107 +#, c-format +msgid "fatal: formatter failed on %s:%d: %s" +msgstr "致命的: フォーマッタ失敗 %s:%d: %s" + +#: sanity.cc:181 +msgid "misuse: " +msgstr "誤り: " + +#: sanity.cc:192 +msgid "error: " +msgstr "エラー: " + +#: sanity.cc:230 +#, c-format msgid "ignoring request to give last gasp; already in process of dumping\n" -msgstr "最後の変更要請を無視します; 既にダンプ中です\n" +msgstr "最後の変更要請を無視します。既にダンプ処理中です\n" -#: sanity.cc:250 +#: sanity.cc:234 #, c-format msgid "saving current work set: %i items" msgstr "現在の作業セットを保存中: %i アイテム" -#: sanity.cc:252 +#: sanity.cc:236 #, c-format msgid "Current work set: %i items\n" msgstr "現在の作業セット: %i アイテム\n" -#: sanity.cc:265 sanity.cc:270 +#: sanity.cc:250 sanity.cc:256 +#, c-format msgid "ignoring error trigged by saving work set to debug log" msgstr "作業セットの保存によって引き起されたデバッグログへのエラーを無視します" -#: sanity.cc:274 +#: sanity.cc:260 +#, c-format msgid "finished saving work set" msgstr "作業セットの保存終了" -#: sanity.hh:231 +#: schema_migration.cc:262 #, c-format -msgid "----- begin '%s' (in %s, at %s:%d)\n" -msgstr "----- '%s' 開始 (%s 内、箇所 %s:%d)\n" - -#: sanity.hh:235 -#, c-format -msgid "----- end '%s' (in %s, at %s:%d)\n" -msgstr "----- 終了 '%s' (%s 内、箇所 %s:%d)\n" - -#: schema_migration.cc:260 -#, c-format msgid "database schema %s is unknown; cannot perform migration" msgstr "不明なデータベーススキーマ %s; 統合できません" -#: schema_migration.cc:265 +#: schema_migration.cc:267 #, c-format msgid "no migration performed; database schema already up-to-date at %s\n" msgstr "統合しません; データベーススキーマは既に最新になっています: %s\n" -#: transforms.cc:523 +#: transforms.cc:520 #, c-format msgid "converting %d bytes from %s to %s\n" msgstr "%d バイト: %s から %s へ変換中\n" -#: transforms.cc:529 +#: transforms.cc:526 #, c-format msgid "failed to convert string from %s to %s: '%s'" -msgstr "文字列の変換 (%s から %s へ) に失敗: '%s'" +msgstr "文字列の変換 (%s から %s: '%s' へ) に失敗しました" -#: transforms.cc:577 +#: transforms.cc:651 #, c-format msgid "converting %d bytes from IDNA ACE to UTF-8\n" msgstr "IDNA ACE から UTF-8 へ変換中 (%d バイト)\n" -#: transforms.cc:580 transforms.cc:594 +#: transforms.cc:654 transforms.cc:668 #, c-format msgid "error converting %d UTF-8 bytes to IDNA ACE: %s" msgstr "UTF-8 から IDNA ACE へ変換中にエラー(%d バイト): %s" -#: transforms.cc:591 +#: transforms.cc:665 #, c-format msgid "converting %d bytes from UTF-8 to IDNA ACE\n" msgstr "UTF-8 から IDNA ACE へ変換中 (%d バイト)\n" -#: transforms.cc:845 +#: transforms.cc:813 #, c-format msgid "doing linesep conversion to %s\n" msgstr "%s について行末を変換中\n" -#: transforms.cc:1121 +#: ui.cc:119 #, c-format -msgid "ACE-encoded %s: '%s'\n" -msgstr "ACE エンコード %s: '%s'\n" +msgid "%.1f M" +msgstr "%.1f M" -#: ui.cc:126 +#: ui.cc:124 #, c-format -msgid "%.1f%s" -msgstr "%.1f%s" +msgid "%.1f k" +msgstr "%.1f k" -#: ui.cc:130 +#: ui.cc:133 #, c-format msgid "%d" msgstr "%d" +#: ui.cc:326 +#, c-format +msgid "" +"fatal: %s\n" +"this is almost certainly a bug in monotone.\n" +"please send this error message, the output of 'monotone --full-version',\n" +"and a description of what you were doing to %s.\n" +msgstr "深刻: %s\n" +"これはほぼ確実に monotone のバグでしょう。\n" +"このエラーメッセージと 'monotone --full-version' の結果、さらに %s について\n" +"何をしたか説明を添えて報告して下さい\n" + +#: ui.cc:369 +msgid "monotone: " +msgstr "monotone: " + #: update.cc:66 #, c-format msgid "failed to decode boolean testresult cert value '%s'\n" -msgstr "テスト結果真偽値の証明値 '%s' のデコードに失敗\n" +msgstr "テスト結果真偽値の証明値 '%s' のデコードに失敗しました\n" #: update.cc:78 #, c-format msgid "Considering update target %s\n" -msgstr "ターゲット %s の更新について考慮中\n" +msgstr "ターゲット %s の更新について計算中\n" #: update.cc:88 #, c-format @@ -4199,263 +5048,224 @@ msgstr "%s は受け入れられないテスト結果です\n" #: update.cc:160 +#, c-format msgid "cannot determine branch for update" msgstr "更新するブランチを決定できません" -#: vocab.cc:57 +#: vocab.cc:53 #, c-format msgid "hex encoded ID '%s' size != %d" msgstr "十六進エンコード ID '%s' サイズ != %d" -#: vocab.cc:60 +#: vocab.cc:56 #, c-format msgid "bad character '%c' in id name '%s'" msgstr "不正な文字 '%c' (ID 名 '%s' 内)" -#: vocab.cc:73 +#: vocab.cc:69 #, c-format msgid "bad character '%c' in ace string '%s'" msgstr "不正な文字 '%c' (ace 文字列 '%s' 内)" -#: vocab.cc:87 +#: vocab.cc:83 #, c-format msgid "bad character '%c' in cert name '%s'" msgstr "不正な文字 '%c' (証明 '%s' 内)" -#: vocab.cc:100 +#: vocab.cc:96 #, c-format msgid "bad character '%c' in key name '%s'" msgstr "不正な文字 '%c' (キー名 '%s' 内)" -#: vocab.cc:118 +#: vocab.cc:114 #, c-format msgid "Invalid key length of %d bytes" msgstr "不正な鍵長 %d バイト" -#: vocab.cc:136 +#: vocab.cc:132 #, c-format msgid "Invalid hmac length of %d bytes" msgstr "不正な HMAC 長 %d バイト" -#: vocab.cc:166 +#: work.cc:64 #, c-format -msgid "prohibited absolute path '%s'" -msgstr "禁止された絶対パス '%s'" - -#: vocab.cc:171 -#, c-format -msgid "empty path component in '%s'" -msgstr "空のパスコンポーネント ('%s' 内)" - -#: vocab.cc:174 -#, c-format -msgid "prohibited path component '%s' in '%s'" -msgstr "禁止されたパスコンポーネント '%s' ('%s' 内)" - -#: vocab.cc:178 -#, c-format -msgid "bad character '%d' in path component '%s' of '%s'" -msgstr "不正な文字 '%d' (パスコンポーネント内 '%s'、'%s')" - -#: vocab.cc:184 -#, c-format -msgid "null byte in path component '%s' of '%s'" -msgstr "パスコンポーネント '%s' ('%s') 内に NULL バイト" - -#: vocab.cc:239 -#, c-format -msgid "prohibited book-keeping path in '%s'" -msgstr "'%s' 内の禁止された book-keeping パス" - -#: work.cc:60 -#, c-format msgid "skipping ignorable file %s\n" -msgstr "無視可能なファイル %s をスキップしています\n" +msgstr "無視可能なファイル %s をスキップ\n" -#: work.cc:66 +#: work.cc:70 #, c-format msgid "skipping %s, already accounted for in working copy\n" -msgstr "既に作業コピーに追加されている %s をスキップしています\n" +msgstr "既に作業コピーに追加されている %s をスキップ\n" -#: work.cc:70 +#: work.cc:74 #, c-format msgid "adding %s to working copy add set\n" -msgstr "作業コピー追加セットに %s を追加しています\n" +msgstr "作業コピー追加セットに %s を追加\n" -#: work.cc:98 work.cc:204 -msgid "invalid path ''" -msgstr "不適切なパス ''" - -#: work.cc:100 +#: work.cc:136 #, c-format -msgid "path %s does not exist\n" -msgstr "パス %s は存在しません\n" +msgid "adding attribute '%s' on file %s to %s\n" +msgstr "属性 '%s' (ファイル %s の)を %s に追加\n" -#: work.cc:137 +#: work.cc:203 #, c-format -msgid "adding attribute '%s' to file %s to %s\n" -msgstr "属性 '%s' (ファイル %s)を %s に追加しています\n" +msgid "invalid path ''" +msgstr "不適切なパス ''" -#: work.cc:208 +#: work.cc:207 #, c-format msgid "skipping %s, not currently tracked\n" -msgstr "現在追跡対象ではない %s をスキップしています\n" +msgstr "現在追跡対象ではない %s をスキップ\n" -#: work.cc:212 +#: work.cc:211 #, c-format msgid "adding %s to working copy delete set\n" -msgstr "%s を作業コピー削除セットに追加しています\n" +msgstr "%s を作業コピー削除セットに追加\n" -#: work.cc:216 +#: work.cc:215 #, c-format msgid "" "sorry -- 'drop ' is currently broken.\n" "try 'find %s -type f | monotone drop address@hidden'\n" -msgstr "" -"申し分けないですが 'drop <ディレクトリ>' は使えません.\n" +msgstr "申し分けありませんが 'drop <ディレクトリ>' は使えません.\n" "代りに 'find %s -type f | monotone drop address@hidden' を試してみて下さい.\n" -#: work.cc:228 +#: work.cc:227 #, c-format msgid "dropped attributes for file %s from %s\n" msgstr "ファイル %s の属性を %s から削除しました\n" -#: work.cc:251 +#: work.cc:253 +#, c-format msgid "invalid source path ''" msgstr "不適切なソースパス ''" -#: work.cc:252 +#: work.cc:254 +#, c-format msgid "invalid destination path ''" msgstr "不適切な方向パス ''" -#: work.cc:263 +#: work.cc:265 #, c-format msgid "%s does not exist in current revision\n" msgstr "ファイル %s は現在のリビジョン内にはありません\n" -#: work.cc:266 +#: work.cc:268 #, c-format msgid "%s already exists in current revision\n" msgstr "%s は現在のリビジョン内に存在しています\n" -#: work.cc:268 +#: work.cc:270 #, c-format msgid "adding %s -> %s to working copy rename set\n" -msgstr "%s -> %s を作業コピー名称変更セットに追加しています\n" +msgstr "%s -> %s を作業コピー名称変更セットに追加\n" -#: work.cc:288 +#: work.cc:293 #, c-format msgid "%s has existing attributes in %s; clean them up first" msgstr "%s は既存の %s 内に属性を持っています; まずそれを削除して下さい" -#: work.cc:297 +#: work.cc:302 #, c-format msgid "moving attributes for %s to %s\n" msgstr "%s の属性を %s に移動中\n" -#: work.cc:316 +#: work.cc:321 #, c-format msgid "work path is %s\n" msgstr "作業パスは %s です\n" -#: work.cc:325 +#: work.cc:330 #, c-format msgid "checking for un-committed work file %s\n" -msgstr "未コミットの作業ファイル %s をチェック中\n" +msgstr "未コミットの作業ファイル %s を検証中\n" -#: work.cc:329 +#: work.cc:334 #, c-format msgid "read rearrangement from %s\n" msgstr "%s から再調整読み取り\n" -#: work.cc:333 +#: work.cc:338 #, c-format msgid "no un-committed work file %s\n" msgstr "未コミットの作業ファイル %s はありません\n" -#: work.cc:370 +#: work.cc:375 #, c-format msgid "revision path is %s\n" msgstr "リビジョンパスは %s です\n" -#: work.cc:380 +#: work.cc:385 #, c-format -msgid "working copy is corrupt: %s does not exist\n" -msgstr "作業コピーは壊れています: %s は存在しません\n" +msgid "working copy is corrupt: %s does not exist" +msgstr "作業コピーは壊れています: %s は存在しません" -#: work.cc:383 +#: work.cc:386 #, c-format +msgid "working copy is corrupt: %s is a directory" +msgstr "作業コピーは壊れています: %s は存在しません" + +#: work.cc:389 +#, c-format msgid "loading revision id from %s\n" -msgstr "%s からリビジョン ID を読み込み中\n" +msgstr "%s からリビジョン ID を読み込み\n" -#: work.cc:390 +#: work.cc:396 #, c-format msgid "Problem with working directory: %s is unreadable" msgstr "作業ディレクトリに問題があります: %s を読み込めません" -#: work.cc:399 +#: work.cc:405 #, c-format msgid "writing revision id to %s\n" msgstr "リビジョン ID を %s に書き込み中\n" -#: work.cc:418 +#: work.cc:424 #, c-format msgid "base revision %s does not exist in database\n" -msgstr "データベースにベースリビジョン %s は含まれていません\n" +msgstr "データベースに基準リビジョン %s は含まれていません\n" -#: work.cc:421 +#: work.cc:427 #, c-format msgid "old manifest is %s\n" msgstr "古い manifest は %s です\n" -#: work.cc:424 +#: work.cc:430 #, c-format msgid "base manifest %s does not exist in database\n" -msgstr "データベースにベースマニフェスト %s は含まれていません\n" +msgstr "データベースに基準マニフェスト %s は含まれていません\n" -#: work.cc:429 +#: work.cc:435 #, c-format msgid "old manifest has %d entries\n" -msgstr "古い manifest は %d 個のエントリを持っています\n" +msgstr "古いマニフェストには %d 個のエントリがあります\n" -#: work.cc:450 +#: work.cc:456 #, c-format msgid "user log path is %s\n" msgstr "ユーザーログパスは %s です\n" -#: work.cc:499 +#: work.cc:505 #, c-format msgid "options path is %s\n" msgstr "オプションパスは %s です\n" -#: work.cc:546 +#: work.cc:552 #, c-format msgid "local dump path is %s\n" msgstr "ローカルのダンプパスは %s です\n" -#: work.cc:598 +#: work.cc:604 #, c-format msgid "attribute map path is %s\n" msgstr "属性マップパスは %s です\n" -#: xdelta.cc:346 +#: xdelta.cc:345 +#, c-format msgid "computing binary delta instructions\n" -msgstr "バイナリ差分命令を計算しています\n" +msgstr "バイナリ差分命令を計算中\n" -#: xdelta.cc:348 +#: xdelta.cc:347 +#, c-format msgid "computed binary delta instructions\n" msgstr "バイナリ差分命令の計算結果\n" - -#: xdelta.cc:804 -#, c-format -msgid "src %d, dst %d, fdel %d, rdel %d\n" -msgstr "src %d, dst %d, fdel %d, rdel %d\n" - -#: xdelta.cc:808 -msgid "confirming src == dst and rdel == 0\n" -msgstr "src == dst, rdel == 0 を確認中\n" - -#: xdelta.cc:816 -#, c-format -msgid "confirming dst1 %d, dst2 %d\n" -msgstr "dst1 %d, dst2 %d を確認中\n" ======================================================================== --- rcs_import.cc e01d4dc824657c684430fdf98d0132a1298f10d3 +++ rcs_import.cc 1cae15157195ea7014977d5184a10d6472a959b2 @@ -1246,7 +1246,7 @@ cvs_tree_walker walker(cvs, app.db); require_path_is_directory(cvsroot, F("path %s does not exist") % cvsroot, - F("path %s is not a directory") % cvsroot); + F("'%s' is not a directory") % cvsroot); app.db.ensure_open(); change_current_working_dir(cvsroot); walk_tree(file_path(), walker); ======================================================================== --- restrictions.cc a2c9b4ec291eb22ed849af535ffec2fc4de253d9 +++ restrictions.cc 08affd2e33496704cc881807f3dd408a9f2a4129 @@ -244,7 +244,10 @@ manifest_map & m_new) { std::vector empty_args; + std::set saved_exclude_patterns(app.exclude_patterns); + app.exclude_patterns.clear(); calculate_restricted_revision(app, empty_args, rev, m_old, m_new); + app.exclude_patterns = saved_exclude_patterns; } void ======================================================================== --- sanity.cc d43cf000a18c156b97527e0724635b050159d16d +++ sanity.cc 7aef12692c6817c9405c6e34552c48a0b79335f8 @@ -298,3 +298,16 @@ % name % func % file % line ).str(); } + + +boost::format F(const char * str) +{ + return boost::format(gettext(str), get_user_locale()); +} + + +boost::format FP(const char * str1, const char * strn, unsigned long count) +{ + return boost::format(ngettext(str1, strn, count), get_user_locale()); +} + ======================================================================== --- sanity.hh 2c8cee0f678668a356de29a5c61fb3eed8c87b74 +++ sanity.hh 5a3b4f9635067d92301924a42621085c15a33188 @@ -92,10 +92,10 @@ extern sanity global_sanity; // F is for when you want to build a boost formatter for display -#define F(str) boost::format(gettext(str), get_user_locale()) +boost::format F(const char * str); // FP is for when you want to build a boost formatter for displaying a plural -#define FP(str1, strn, count) boost::format(ngettext(str1, strn, count), get_user_locale()) +boost::format FP(const char * str1, const char * strn, unsigned long count); // L is for logging, you can log all you want #define L(fmt) global_sanity.log(fmt, __FILE__, __LINE__) ======================================================================== --- sqlite/analyze.c 43a2d91242bdd71b6c299378f6b11e896ee5e43d +++ sqlite/analyze.c 21a4cd125bedd3cb15857595c45c2a49c0556d26 @@ -11,7 +11,7 @@ ************************************************************************* ** This file contains code associated with the ANALYZE command. ** -** @(#) $Id: analyze.c,v 1.8 2005/09/10 22:40:54 drh Exp $ +** @(#) $Id: analyze.c,v 1.9 2005/09/20 17:42:23 drh Exp $ */ #ifndef SQLITE_OMIT_ANALYZE #include "sqliteInt.h" @@ -127,13 +127,11 @@ ** Cells iMem through iMem+nCol are initialized to 0. The others ** are initialized to NULL. */ - sqlite3VdbeAddOp(v, OP_Integer, 0, 0); for(i=0; i<=nCol; i++){ - sqlite3VdbeAddOp(v, OP_MemStore, iMem+i, i==nCol); + sqlite3VdbeAddOp(v, OP_MemInt, 0, iMem+i); } - sqlite3VdbeAddOp(v, OP_Null, 0, 0); for(i=0; i @@ -76,7 +76,7 @@ if( pParse->cookieGoto>0 ){ u32 mask; int iDb; - sqlite3VdbeChangeP2(v, pParse->cookieGoto-1, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, pParse->cookieGoto-1); for(iDb=0, mask=1; iDbnDb; mask<<=1, iDb++){ if( (mask & pParse->cookieMask)==0 ) continue; sqlite3VdbeAddOp(v, OP_Transaction, iDb, (mask & pParse->writeMask)!=0); @@ -2002,7 +2002,7 @@ } sqlite3VdbeAddOp(v, OP_IdxInsert, iIdx, 0); sqlite3VdbeAddOp(v, OP_Next, iTab, addr1+1); - sqlite3VdbeChangeP2(v, addr1, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, addr1); sqlite3VdbeAddOp(v, OP_Close, iTab, 0); sqlite3VdbeAddOp(v, OP_Close, iIdx, 0); } ======================================================================== --- sqlite/delete.c 16a0e19460b14d219f39ff5c7a9eef808aa1969c +++ sqlite/delete.c 29dac493f4d83b05f91233b116827c133bcdab72 @@ -12,7 +12,7 @@ ** This file contains C code routines that are called by the parser ** in order to generate code for DELETE FROM statements. ** -** $Id: delete.c,v 1.110 2005/09/08 01:58:43 drh Exp $ +** $Id: delete.c,v 1.111 2005/09/20 17:42:23 drh Exp $ */ #include "sqliteInt.h" @@ -380,7 +380,7 @@ addr = sqlite3VdbeAddOp(v, OP_NotExists, iCur, 0); sqlite3GenerateRowIndexDelete(db, v, pTab, iCur, 0); sqlite3VdbeAddOp(v, OP_Delete, iCur, (count?OPFLAG_NCHANGE:0)); - sqlite3VdbeChangeP2(v, addr, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, addr); } /* ======================================================================== --- sqlite/expr.c b8dbd5a30e80b83b0c1e137dcfcd687bd5d2b76c +++ sqlite/expr.c bb2cf5d5b065eaa23d5ae2620f6de0568768147d @@ -12,7 +12,7 @@ ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** -** $Id: expr.c,v 1.228 2005/09/16 02:38:10 drh Exp $ +** $Id: expr.c,v 1.230 2005/09/23 21:11:54 drh Exp $ */ #include "sqliteInt.h" #include @@ -548,6 +548,8 @@ pNew->iOffset = -1; pNew->isResolved = p->isResolved; pNew->isAgg = p->isAgg; + pNew->usesVirt = 0; + pNew->disallowOrderBy = 0; pNew->pRightmost = 0; pNew->addrOpenVirt[0] = -1; pNew->addrOpenVirt[1] = -1; @@ -1292,8 +1294,7 @@ sqlite3VdbeAddOp(v, OP_MemLoad, mem, 0); testAddr = sqlite3VdbeAddOp(v, OP_If, 0, 0); assert( testAddr>0 || sqlite3_malloc_failed ); - sqlite3VdbeAddOp(v, OP_Integer, 1, 0); - sqlite3VdbeAddOp(v, OP_MemStore, mem, 1); + sqlite3VdbeAddOp(v, OP_MemInt, 1, mem); } switch( pExpr->op ){ @@ -1367,7 +1368,7 @@ if( testAddr>0 && !sqlite3ExprIsConstant(pE2) ){ VdbeOp *aOp = sqlite3VdbeGetOp(v, testAddr-1); int i; - for(i=0; i<4; i++){ + for(i=0; i<3; i++){ aOp[i].opcode = OP_Noop; } testAddr = 0; @@ -1409,7 +1410,7 @@ } if( testAddr ){ - sqlite3VdbeChangeP2(v, testAddr, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, testAddr); } return; } @@ -1709,7 +1710,6 @@ case TK_CASE: { int expr_end_label; int jumpInst; - int addr; int nExpr; int i; ExprList *pEList; @@ -1737,8 +1737,7 @@ } sqlite3ExprCode(pParse, aListelem[i+1].pExpr); sqlite3VdbeAddOp(v, OP_Goto, 0, expr_end_label); - addr = sqlite3VdbeCurrentAddr(v); - sqlite3VdbeChangeP2(v, jumpInst, addr); + sqlite3VdbeJumpHere(v, jumpInst); } if( pExpr->pLeft ){ sqlite3VdbeAddOp(v, OP_Pop, 1, 0); @@ -1905,7 +1904,7 @@ codeCompare(pParse, pLeft, pRight, OP_Le, dest, jumpIfNull); sqlite3VdbeAddOp(v, OP_Integer, 0, 0); - sqlite3VdbeChangeP2(v, addr, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, addr); sqlite3VdbeAddOp(v, OP_Pop, 1, 0); break; } ======================================================================== --- sqlite/insert.c 484c73bc1309f283a31baa0e114f3ee980536397 +++ sqlite/insert.c 1f51566d7cf4b243a2792f5fda37343d6e9377fa @@ -12,7 +12,7 @@ ** This file contains C code routines that are called by the parser ** to handle INSERT statements in SQLite. ** -** $Id: insert.c,v 1.142 2005/07/21 18:23:20 drh Exp $ +** $Id: insert.c,v 1.143 2005/09/20 17:42:23 drh Exp $ */ #include "sqliteInt.h" @@ -372,13 +372,13 @@ ** of the program jumps to it. Create the temporary table, then jump ** back up and execute the SELECT code above. */ - sqlite3VdbeChangeP2(v, iInitCode, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, iInitCode); sqlite3VdbeAddOp(v, OP_OpenVirtual, srcTab, 0); sqlite3VdbeAddOp(v, OP_SetNumColumns, srcTab, nColumn); sqlite3VdbeAddOp(v, OP_Goto, 0, iSelectLoop); sqlite3VdbeResolveLabel(v, iCleanup); }else{ - sqlite3VdbeChangeP2(v, iInitCode, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, iInitCode); } }else{ /* This is the case if the data for the INSERT is coming from a VALUES @@ -470,8 +470,7 @@ */ if( db->flags & SQLITE_CountRows ){ iCntMem = pParse->nMem++; - sqlite3VdbeAddOp(v, OP_Integer, 0, 0); - sqlite3VdbeAddOp(v, OP_MemStore, iCntMem, 1); + sqlite3VdbeAddOp(v, OP_MemInt, 0, iCntMem); } /* Open tables and indices if there are no row triggers */ @@ -817,7 +816,6 @@ Index *pIdx; int seenReplace = 0; int jumpInst1=0, jumpInst2; - int contAddr; int hasTwoRowids = (isUpdate && rowidChng); v = sqlite3GetVdbe(pParse); @@ -867,7 +865,7 @@ break; } } - sqlite3VdbeChangeP2(v, addr, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, addr); } /* Test all CHECK constraints @@ -921,10 +919,9 @@ break; } } - contAddr = sqlite3VdbeCurrentAddr(v); - sqlite3VdbeChangeP2(v, jumpInst2, contAddr); + sqlite3VdbeJumpHere(v, jumpInst2); if( isUpdate ){ - sqlite3VdbeChangeP2(v, jumpInst1, contAddr); + sqlite3VdbeJumpHere(v, jumpInst1); sqlite3VdbeAddOp(v, OP_Dup, nCol+1, 1); sqlite3VdbeAddOp(v, OP_MoveGe, base, 0); } @@ -1018,11 +1015,10 @@ break; } } - contAddr = sqlite3VdbeCurrentAddr(v); #if NULL_DISTINCT_FOR_UNIQUE - sqlite3VdbeChangeP2(v, jumpInst1, contAddr); + sqlite3VdbeJumpHere(v, jumpInst1); #endif - sqlite3VdbeChangeP2(v, jumpInst2, contAddr); + sqlite3VdbeJumpHere(v, jumpInst2); } } ======================================================================== --- sqlite/opcodes.c 8b23c96979492cba740a2e3c67f6646e8b323b12 +++ sqlite/opcodes.c 9855bca95408a841cfbeb92135596bc18d7c034a @@ -46,34 +46,34 @@ /* 42 */ "Gosub", /* 43 */ "Integer", /* 44 */ "ToNumeric", - /* 45 */ "Prev", - /* 46 */ "CreateTable", - /* 47 */ "Last", - /* 48 */ "IdxRowid", - /* 49 */ "MakeIdxRec", - /* 50 */ "ResetCount", - /* 51 */ "FifoWrite", - /* 52 */ "Callback", - /* 53 */ "ContextPush", - /* 54 */ "DropTrigger", - /* 55 */ "DropIndex", - /* 56 */ "IdxGE", - /* 57 */ "IdxDelete", - /* 58 */ "Vacuum", - /* 59 */ "MoveLe", - /* 60 */ "IfNot", - /* 61 */ "DropTable", - /* 62 */ "MakeRecord", - /* 63 */ "ToBlob", - /* 64 */ "Delete", - /* 65 */ "AggFinal", - /* 66 */ "Dup", + /* 45 */ "MemInt", + /* 46 */ "Prev", + /* 47 */ "CreateTable", + /* 48 */ "Last", + /* 49 */ "IdxRowid", + /* 50 */ "MakeIdxRec", + /* 51 */ "ResetCount", + /* 52 */ "FifoWrite", + /* 53 */ "Callback", + /* 54 */ "ContextPush", + /* 55 */ "DropTrigger", + /* 56 */ "DropIndex", + /* 57 */ "IdxGE", + /* 58 */ "IdxDelete", + /* 59 */ "Vacuum", + /* 60 */ "MoveLe", + /* 61 */ "IfNot", + /* 62 */ "DropTable", + /* 63 */ "MakeRecord", + /* 64 */ "ToBlob", + /* 65 */ "Delete", + /* 66 */ "AggFinal", /* 67 */ "Or", /* 68 */ "And", /* 69 */ "Not", - /* 70 */ "Goto", - /* 71 */ "FifoRead", - /* 72 */ "Clear", + /* 70 */ "Dup", + /* 71 */ "Goto", + /* 72 */ "FifoRead", /* 73 */ "IsNull", /* 74 */ "NotNull", /* 75 */ "Ne", @@ -82,7 +82,7 @@ /* 78 */ "Le", /* 79 */ "Lt", /* 80 */ "Ge", - /* 81 */ "IdxGT", + /* 81 */ "Clear", /* 82 */ "BitAnd", /* 83 */ "BitOr", /* 84 */ "ShiftLeft", @@ -94,38 +94,38 @@ /* 90 */ "Remainder", /* 91 */ "Concat", /* 92 */ "Negative", - /* 93 */ "MoveLt", + /* 93 */ "IdxGT", /* 94 */ "BitNot", /* 95 */ "String8", - /* 96 */ "VerifyCookie", - /* 97 */ "AggStep", - /* 98 */ "Pull", - /* 99 */ "ToText", - /* 100 */ "SetNumColumns", - /* 101 */ "AbsValue", - /* 102 */ "Transaction", - /* 103 */ "ContextPop", - /* 104 */ "Next", - /* 105 */ "IdxInsert", - /* 106 */ "Distinct", - /* 107 */ "Insert", - /* 108 */ "Destroy", - /* 109 */ "ReadCookie", - /* 110 */ "ForceInt", - /* 111 */ "LoadAnalysis", - /* 112 */ "OpenVirtual", - /* 113 */ "Explain", - /* 114 */ "OpenPseudo", - /* 115 */ "Null", - /* 116 */ "Blob", - /* 117 */ "MemStore", - /* 118 */ "Rewind", - /* 119 */ "MoveGe", - /* 120 */ "Found", - /* 121 */ "NullRow", - /* 122 */ "NotUsed_122", - /* 123 */ "NotUsed_123", - /* 124 */ "NotUsed_124", + /* 96 */ "MoveLt", + /* 97 */ "VerifyCookie", + /* 98 */ "AggStep", + /* 99 */ "Pull", + /* 100 */ "ToText", + /* 101 */ "SetNumColumns", + /* 102 */ "AbsValue", + /* 103 */ "Transaction", + /* 104 */ "ContextPop", + /* 105 */ "Next", + /* 106 */ "IdxInsert", + /* 107 */ "Distinct", + /* 108 */ "Insert", + /* 109 */ "Destroy", + /* 110 */ "ReadCookie", + /* 111 */ "ForceInt", + /* 112 */ "LoadAnalysis", + /* 113 */ "OpenVirtual", + /* 114 */ "Explain", + /* 115 */ "OpenPseudo", + /* 116 */ "Null", + /* 117 */ "Blob", + /* 118 */ "MemStore", + /* 119 */ "Rewind", + /* 120 */ "MoveGe", + /* 121 */ "MemMove", + /* 122 */ "MemNull", + /* 123 */ "Found", + /* 124 */ "NullRow", /* 125 */ "NotUsed_125", /* 126 */ "NotUsed_126", /* 127 */ "NotUsed_127", ======================================================================== --- sqlite/opcodes.h 1848e78f249e09e0b773754679d6584412f8900f +++ sqlite/opcodes.h 9918b6dfce41b2465940c5f6631afd418584dfb3 @@ -57,77 +57,77 @@ #define OP_Divide 89 /* same as TK_SLASH */ #define OP_Integer 43 #define OP_ToNumeric 44 -#define OP_Prev 45 +#define OP_MemInt 45 +#define OP_Prev 46 #define OP_Concat 91 /* same as TK_CONCAT */ #define OP_BitAnd 82 /* same as TK_BITAND */ -#define OP_CreateTable 46 -#define OP_Last 47 +#define OP_CreateTable 47 +#define OP_Last 48 #define OP_IsNull 73 /* same as TK_ISNULL */ -#define OP_IdxRowid 48 -#define OP_MakeIdxRec 49 +#define OP_IdxRowid 49 +#define OP_MakeIdxRec 50 #define OP_ShiftRight 85 /* same as TK_RSHIFT */ -#define OP_ResetCount 50 -#define OP_FifoWrite 51 -#define OP_Callback 52 -#define OP_ContextPush 53 -#define OP_DropTrigger 54 -#define OP_DropIndex 55 -#define OP_IdxGE 56 -#define OP_IdxDelete 57 -#define OP_Vacuum 58 -#define OP_MoveLe 59 -#define OP_IfNot 60 -#define OP_DropTable 61 -#define OP_MakeRecord 62 -#define OP_ToBlob 63 -#define OP_Delete 64 -#define OP_AggFinal 65 +#define OP_ResetCount 51 +#define OP_FifoWrite 52 +#define OP_Callback 53 +#define OP_ContextPush 54 +#define OP_DropTrigger 55 +#define OP_DropIndex 56 +#define OP_IdxGE 57 +#define OP_IdxDelete 58 +#define OP_Vacuum 59 +#define OP_MoveLe 60 +#define OP_IfNot 61 +#define OP_DropTable 62 +#define OP_MakeRecord 63 +#define OP_ToBlob 64 +#define OP_Delete 65 +#define OP_AggFinal 66 #define OP_ShiftLeft 84 /* same as TK_LSHIFT */ -#define OP_Dup 66 -#define OP_Goto 70 -#define OP_FifoRead 71 -#define OP_Clear 72 -#define OP_IdxGT 81 -#define OP_MoveLt 93 +#define OP_Dup 70 +#define OP_Goto 71 +#define OP_FifoRead 72 +#define OP_Clear 81 +#define OP_IdxGT 93 +#define OP_MoveLt 96 #define OP_Le 78 /* same as TK_LE */ -#define OP_VerifyCookie 96 -#define OP_AggStep 97 -#define OP_Pull 98 -#define OP_ToText 99 +#define OP_VerifyCookie 97 +#define OP_AggStep 98 +#define OP_Pull 99 +#define OP_ToText 100 #define OP_Not 69 /* same as TK_NOT */ -#define OP_SetNumColumns 100 -#define OP_AbsValue 101 -#define OP_Transaction 102 +#define OP_SetNumColumns 101 +#define OP_AbsValue 102 +#define OP_Transaction 103 #define OP_Negative 92 /* same as TK_UMINUS */ #define OP_Ne 75 /* same as TK_NE */ -#define OP_ContextPop 103 +#define OP_ContextPop 104 #define OP_BitOr 83 /* same as TK_BITOR */ -#define OP_Next 104 -#define OP_IdxInsert 105 -#define OP_Distinct 106 +#define OP_Next 105 +#define OP_IdxInsert 106 +#define OP_Distinct 107 #define OP_Lt 79 /* same as TK_LT */ -#define OP_Insert 107 -#define OP_Destroy 108 -#define OP_ReadCookie 109 -#define OP_ForceInt 110 -#define OP_LoadAnalysis 111 -#define OP_OpenVirtual 112 -#define OP_Explain 113 -#define OP_OpenPseudo 114 -#define OP_Null 115 -#define OP_Blob 116 +#define OP_Insert 108 +#define OP_Destroy 109 +#define OP_ReadCookie 110 +#define OP_ForceInt 111 +#define OP_LoadAnalysis 112 +#define OP_OpenVirtual 113 +#define OP_Explain 114 +#define OP_OpenPseudo 115 +#define OP_Null 116 +#define OP_Blob 117 #define OP_Add 86 /* same as TK_PLUS */ -#define OP_MemStore 117 -#define OP_Rewind 118 -#define OP_MoveGe 119 +#define OP_MemStore 118 +#define OP_Rewind 119 +#define OP_MoveGe 120 #define OP_BitNot 94 /* same as TK_BITNOT */ -#define OP_Found 120 -#define OP_NullRow 121 +#define OP_MemMove 121 +#define OP_MemNull 122 +#define OP_Found 123 +#define OP_NullRow 124 /* The following opcode values are never used */ -#define OP_NotUsed_122 122 -#define OP_NotUsed_123 123 -#define OP_NotUsed_124 124 #define OP_NotUsed_125 125 #define OP_NotUsed_126 126 #define OP_NotUsed_127 127 @@ -139,11 +139,11 @@ #define NOPUSH_MASK_0 65368 #define NOPUSH_MASK_1 47898 -#define NOPUSH_MASK_2 47069 -#define NOPUSH_MASK_3 49148 -#define NOPUSH_MASK_4 65403 +#define NOPUSH_MASK_2 22493 +#define NOPUSH_MASK_3 32761 +#define NOPUSH_MASK_4 65215 #define NOPUSH_MASK_5 30719 -#define NOPUSH_MASK_6 53215 -#define NOPUSH_MASK_7 997 +#define NOPUSH_MASK_6 40895 +#define NOPUSH_MASK_7 6603 #define NOPUSH_MASK_8 0 #define NOPUSH_MASK_9 0 ======================================================================== --- sqlite/os_unix.c c86cf43b7ca9200e6fb7bc202ad2cc7da2f69367 +++ sqlite/os_unix.c 407dd07818d13807c396acf3f7570af81cbb666c @@ -828,10 +828,13 @@ /* If the FULLSYNC failed, try to do a normal fsync() */ if( rc ) rc = fsync(fd); -#else +#else /* if !defined(F_FULLSYNC) */ +#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO>0 if( dataOnly ){ rc = fdatasync(fd); - }else{ + }else +#endif /* _POSIX_SYNCHRONIZED_IO > 0 */ + { rc = fsync(fd); } #endif /* defined(F_FULLFSYNC) */ ======================================================================== --- sqlite/os_win.c ed03a35b2894f9b99840415f941a9f8594dea756 +++ sqlite/os_win.c fbccc85e7011174068c27d54256746321a1f0059 @@ -466,6 +466,13 @@ } /* +** Some microsoft compilers lack this definition. +*/ +#ifndef INVALID_SET_FILE_POINTER +# define INVALID_SET_FILE_POINTER ((DWORD)-1) +#endif + +/* ** Move the read/write pointer in a file. */ int sqlite3OsSeek(OsFile *id, i64 offset){ ======================================================================== --- sqlite/pager.h 17b13225abd93c1e9f470060f40a21b9edb5a164 +++ sqlite/pager.h e7b41ce8e7b5f629d456708b7ad9a8c8ede37140 @@ -13,7 +13,7 @@ ** subsystem. The page cache subsystem reads and writes a file a page ** at a time and provides a journal for rollback. ** -** @(#) $Id: pager.h,v 1.45 2005/08/27 16:36:49 drh Exp $ +** @(#) $Id: pager.h,v 1.46 2005/09/19 19:05:21 drh Exp $ */ /* @@ -34,7 +34,7 @@ ** reasonable, like 1024. */ #ifndef SQLITE_MAX_PAGE_SIZE -# define SQLITE_MAX_PAGE_SIZE 8192 +# define SQLITE_MAX_PAGE_SIZE 32768 #endif /* ======================================================================== --- sqlite/parse.c 9f03b15f12e12a7952705f50d01e3ac97bb81e34 +++ sqlite/parse.c 13d6d5853fcaddd632125185f51a4705558950fb @@ -1,13 +1,13 @@ /* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is include which follows the "include" declaration ** in the input file. */ #include -#line 51 "parse.y" #include "sqliteInt.h" #include "parse.h" +#line 54 "parse.y" /* ** An instance of this structure holds information about the ======================================================================== --- sqlite/pragma.c 6d773e25e8af13ef0820531ad2793417f8a8959d +++ sqlite/pragma.c 126149668aa7086e86cfa3e32c8523513c19dd63 @@ -11,7 +11,7 @@ ************************************************************************* ** This file contains code used to implement the PRAGMA command. ** -** $Id: pragma.c,v 1.99 2005/09/17 16:36:56 drh Exp $ +** $Id: pragma.c,v 1.100 2005/09/20 17:42:23 drh Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -626,14 +626,6 @@ if( sqlite3StrICmp(zLeft, "integrity_check")==0 ){ int i, j, addr; - /* Code that initializes the integrity check program. Set the - ** error count 0 - */ - static const VdbeOpList initCode[] = { - { OP_Integer, 0, 0, 0}, - { OP_MemStore, 0, 1, 0}, - }; - /* Code that appears at the end of the integrity check. If no error ** messages have been generated, output OK. Otherwise output the ** error message @@ -650,7 +642,7 @@ if( sqlite3ReadSchema(pParse) ) goto pragma_out; sqlite3VdbeSetNumCols(v, 1); sqlite3VdbeSetColName(v, 0, "integrity_check", P3_STATIC); - sqlite3VdbeAddOpList(v, ArraySize(initCode), initCode); + sqlite3VdbeAddOp(v, OP_MemInt, 0, 0); /* Initialize error count to 0 */ /* Do an integrity check on each database file */ for(i=0; inDb; i++){ @@ -696,8 +688,7 @@ if( pTab->pIndex==0 ) continue; sqlite3OpenTableAndIndices(pParse, pTab, 1, OP_OpenRead); - sqlite3VdbeAddOp(v, OP_Integer, 0, 0); - sqlite3VdbeAddOp(v, OP_MemStore, 1, 1); + sqlite3VdbeAddOp(v, OP_MemInt, 0, 1); loopTop = sqlite3VdbeAddOp(v, OP_Rewind, 1, 0); sqlite3VdbeAddOp(v, OP_MemIncr, 1, 0); for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ @@ -715,39 +706,38 @@ jmp2 = sqlite3VdbeAddOp(v, OP_Found, j+2, 0); addr = sqlite3VdbeAddOpList(v, ArraySize(idxErr), idxErr); sqlite3VdbeChangeP3(v, addr+4, pIdx->zName, P3_STATIC); - sqlite3VdbeChangeP2(v, jmp2, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, jmp2); } sqlite3VdbeAddOp(v, OP_Next, 1, loopTop+1); - sqlite3VdbeChangeP2(v, loopTop, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, loopTop); for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ static const VdbeOpList cntIdx[] = { - { OP_Integer, 0, 0, 0}, - { OP_MemStore, 2, 1, 0}, - { OP_Rewind, 0, 0, 0}, /* 2 */ + { OP_MemInt, 0, 2, 0}, + { OP_Rewind, 0, 0, 0}, /* 1 */ { OP_MemIncr, 2, 0, 0}, - { OP_Next, 0, 0, 0}, /* 4 */ + { OP_Next, 0, 0, 0}, /* 3 */ { OP_MemLoad, 1, 0, 0}, { OP_MemLoad, 2, 0, 0}, - { OP_Eq, 0, 0, 0}, /* 7 */ + { OP_Eq, 0, 0, 0}, /* 6 */ { OP_MemIncr, 0, 0, 0}, { OP_String8, 0, 0, "wrong # of entries in index "}, - { OP_String8, 0, 0, 0}, /* 10 */ + { OP_String8, 0, 0, 0}, /* 9 */ { OP_Concat, 0, 0, 0}, { OP_Callback, 1, 0, 0}, }; if( pIdx->tnum==0 ) continue; addr = sqlite3VdbeAddOpList(v, ArraySize(cntIdx), cntIdx); - sqlite3VdbeChangeP1(v, addr+2, j+2); - sqlite3VdbeChangeP2(v, addr+2, addr+5); - sqlite3VdbeChangeP1(v, addr+4, j+2); - sqlite3VdbeChangeP2(v, addr+4, addr+3); - sqlite3VdbeChangeP2(v, addr+7, addr+ArraySize(cntIdx)); - sqlite3VdbeChangeP3(v, addr+10, pIdx->zName, P3_STATIC); + sqlite3VdbeChangeP1(v, addr+1, j+2); + sqlite3VdbeChangeP2(v, addr+1, addr+4); + sqlite3VdbeChangeP1(v, addr+3, j+2); + sqlite3VdbeChangeP2(v, addr+3, addr+2); + sqlite3VdbeJumpHere(v, addr+6); + sqlite3VdbeChangeP3(v, addr+9, pIdx->zName, P3_STATIC); } } } addr = sqlite3VdbeAddOpList(v, ArraySize(endCode), endCode); - sqlite3VdbeChangeP2(v, addr+2, addr+ArraySize(endCode)); + sqlite3VdbeJumpHere(v, addr+2); }else #endif /* SQLITE_OMIT_INTEGRITY_CHECK */ ======================================================================== --- sqlite/select.c 9ef1dddd436e1ea86a6bf64ae0ed71bf4a0b894f +++ sqlite/select.c 034c7f7447b8711f85bef578a437ea12ca7cac53 @@ -12,7 +12,7 @@ ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** -** $Id: select.c,v 1.269 2005/09/12 23:03:17 drh Exp $ +** $Id: select.c,v 1.276 2005/09/20 18:13:24 drh Exp $ */ #include "sqliteInt.h" @@ -179,6 +179,7 @@ const char *zAlias1, /* Alias for first table. May be NULL */ const Table *pTab2, /* Second table */ const char *zAlias2, /* Alias for second table. May be NULL */ + int iRightJoinTable, /* VDBE cursor for the right table */ Expr **ppExpr /* Add the equality term to this expression */ ){ Expr *pE1a, *pE1b, *pE1c; @@ -199,11 +200,14 @@ pE2c = sqlite3Expr(TK_DOT, pE2b, pE2a, 0); pE = sqlite3Expr(TK_EQ, pE1c, pE2c, 0); ExprSetProperty(pE, EP_FromJoin); + pE->iRightJoinTable = iRightJoinTable; *ppExpr = sqlite3ExprAnd(*ppExpr, pE); } /* ** Set the EP_FromJoin property on all terms of the given expression. +** And set the Expr.iRightJoinTable to iTable for every term in the +** expression. ** ** The EP_FromJoin property is used on terms of an expression to tell ** the LEFT OUTER JOIN processing logic that this term is part of the @@ -211,11 +215,26 @@ ** of the more general WHERE clause. These terms are moved over to the ** WHERE clause during join processing but we need to remember that they ** originated in the ON or USING clause. +** +** The Expr.iRightJoinTable tells the WHERE clause processing that the +** expression depends on table iRightJoinTable even if that table is not +** explicitly mentioned in the expression. That information is needed +** for cases like this: +** +** SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.b AND t1.x=5 +** +** The where clause needs to defer the handling of the t1.x=5 +** term until after the t2 loop of the join. In that way, a +** NULL t2 row will be inserted whenever t1.x!=5. If we do not +** defer the handling of t1.x=5, it will be processed immediately +** after the t1 loop and rows with t1.x!=5 will never appear in +** the output, which is incorrect. */ -static void setJoinExpr(Expr *p){ +static void setJoinExpr(Expr *p, int iTable){ while( p ){ ExprSetProperty(p, EP_FromJoin); - setJoinExpr(p->pLeft); + p->iRightJoinTable = iTable; + setJoinExpr(p->pLeft, iTable); p = p->pRight; } } @@ -262,7 +281,9 @@ char *zName = pLeftTab->aCol[j].zName; if( columnIndex(pRightTab, zName)>=0 ){ addWhereTerm(zName, pLeftTab, pLeft->zAlias, - pRightTab, pRight->zAlias, &p->pWhere); + pRightTab, pRight->zAlias, + pRight->iCursor, &p->pWhere); + } } } @@ -279,7 +300,7 @@ ** an AND operator. */ if( pLeft->pOn ){ - setJoinExpr(pLeft->pOn); + setJoinExpr(pLeft->pOn, pRight->iCursor); p->pWhere = sqlite3ExprAnd(p->pWhere, pLeft->pOn); pLeft->pOn = 0; } @@ -301,7 +322,8 @@ return 1; } addWhereTerm(zName, pLeftTab, pLeft->zAlias, - pRightTab, pRight->zAlias, &p->pWhere); + pRightTab, pRight->zAlias, + pRight->iCursor, &p->pWhere); } } } @@ -521,7 +543,7 @@ sqlite3VdbeOp3(v, OP_MakeRecord, 1, 0, &aff, 1); sqlite3VdbeAddOp(v, OP_IdxInsert, (iParm&0x0000FFFF), 0); } - sqlite3VdbeChangeP2(v, addr2, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeJumpHere(v, addr2); break; } @@ -1571,6 +1593,7 @@ } p->pPrior = 0; p->pOrderBy = 0; + p->disallowOrderBy = pOrderBy!=0; pLimit = p->pLimit; p->pLimit = 0; pOffset = p->pOffset; @@ -1786,6 +1809,7 @@ assert( p->addrOpenVirt[2]>=0 ); addr = p->addrOpenVirt[2]; sqlite3VdbeChangeP2(v, addr, p->pEList->nExpr+2); + pKeyInfo->nField = pOrderBy->nExpr; sqlite3VdbeChangeP3(v, addr, (char*)pKeyInfo, P3_KEYINFO_HANDOFF); pKeyInfo = 0; generateSortTail(pParse, p, v, p->pEList->nExpr, eDest, iParm); @@ -1970,7 +1994,7 @@ return 0; } if( p->isDistinct && subqueryIsAgg ) return 0; - if( p->pOrderBy && pSub->pOrderBy ) return 0; + if( (p->disallowOrderBy || p->pOrderBy) && pSub->pOrderBy ) return 0; /* Restriction 3: If the subquery is a join, make sure the subquery is ** not used as the right operand of an outer join. Examples of why this @@ -2424,17 +2448,15 @@ static void resetAccumulator(Parse *pParse, AggInfo *pAggInfo){ Vdbe *v = pParse->pVdbe; int i; - int addr; struct AggInfo_func *pFunc; if( pAggInfo->nFunc+pAggInfo->nColumn==0 ){ return; } - sqlite3VdbeAddOp(v, OP_Null, 0, 0); for(i=0; inColumn; i++){ - addr = sqlite3VdbeAddOp(v, OP_MemStore, pAggInfo->aCol[i].iMem, 0); + sqlite3VdbeAddOp(v, OP_MemNull, pAggInfo->aCol[i].iMem, 0); } for(pFunc=pAggInfo->aFunc, i=0; inFunc; i++, pFunc++){ - addr = sqlite3VdbeAddOp(v, OP_MemStore, pFunc->iMem, 0); + sqlite3VdbeAddOp(v, OP_MemNull, pFunc->iMem, 0); if( pFunc->iDistinct>=0 ){ Expr *pE = pFunc->pExpr; if( pE->pList==0 || pE->pList->nExpr!=1 ){ @@ -2448,7 +2470,6 @@ } } } - sqlite3VdbeChangeP2(v, addr, 1); } /* @@ -2762,9 +2783,10 @@ /* Initialize the memory cell to NULL for SRT_Mem or 0 for SRT_Exists */ - if( eDest==SRT_Mem || eDest==SRT_Exists ){ - sqlite3VdbeAddOp(v, eDest==SRT_Mem ? OP_Null : OP_Integer, 0, 0); - sqlite3VdbeAddOp(v, OP_MemStore, iParm, 1); + if( eDest==SRT_Mem ){ + sqlite3VdbeAddOp(v, OP_MemNull, iParm, 0); + }else if( eDest==SRT_Exists ){ + sqlite3VdbeAddOp(v, OP_MemInt, 0, iParm); } /* Open a virtual index to use for the distinct set. @@ -2828,6 +2850,7 @@ int addrProcessRow; /* Code to process a single input row */ int addrEnd; /* End of all processing */ int addrSortingIdx; /* The OP_OpenVirtual for the sorting index */ + int addrReset; /* Subroutine for resetting the accumulator */ addrEnd = sqlite3VdbeMakeLabel(v); @@ -2891,11 +2914,10 @@ pParse->nMem += pGroupBy->nExpr; iBMem = pParse->nMem; pParse->nMem += pGroupBy->nExpr; - sqlite3VdbeAddOp(v, OP_Integer, 0, 0); - sqlite3VdbeAddOp(v, OP_MemStore, iAbortFlag, 0); - sqlite3VdbeAddOp(v, OP_MemStore, iUseFlag, 1); - sqlite3VdbeAddOp(v, OP_Null, 0, 0); - sqlite3VdbeAddOp(v, OP_MemStore, iAMem, 1); + sqlite3VdbeAddOp(v, OP_MemInt, 0, iAbortFlag); + VdbeComment((v, "# clear abort flag")); + sqlite3VdbeAddOp(v, OP_MemInt, 0, iUseFlag); + VdbeComment((v, "# indicate accumulator empty")); sqlite3VdbeAddOp(v, OP_Goto, 0, addrInitializeLoop); /* Generate a subroutine that outputs a single row of the result @@ -2906,10 +2928,12 @@ ** order to signal the caller to abort. */ addrSetAbort = sqlite3VdbeCurrentAddr(v); - sqlite3VdbeAddOp(v, OP_MemIncr, iAbortFlag, 0); + sqlite3VdbeAddOp(v, OP_MemInt, 1, iAbortFlag); + VdbeComment((v, "# set abort flag")); sqlite3VdbeAddOp(v, OP_Return, 0, 0); addrOutputRow = sqlite3VdbeCurrentAddr(v); sqlite3VdbeAddOp(v, OP_IfMemPos, iUseFlag, addrOutputRow+2); + VdbeComment((v, "# Groupby result generator entry point")); sqlite3VdbeAddOp(v, OP_Return, 0, 0); finalizeAggFunctions(pParse, &sAggInfo); if( pHaving ){ @@ -2922,13 +2946,21 @@ goto select_end; } sqlite3VdbeAddOp(v, OP_Return, 0, 0); + VdbeComment((v, "# end groupby result generator")); + /* Generate a subroutine that will reset the group-by accumulator + */ + addrReset = sqlite3VdbeCurrentAddr(v); + resetAccumulator(pParse, &sAggInfo); + sqlite3VdbeAddOp(v, OP_Return, 0, 0); + /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information ** in the right order to begin with. */ sqlite3VdbeResolveLabel(v, addrInitializeLoop); + sqlite3VdbeAddOp(v, OP_Gosub, 0, addrReset); pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, &pGroupBy); if( pWInfo==0 ) goto select_end; if( pGroupBy==0 ){ @@ -2962,6 +2994,7 @@ sqlite3VdbeAddOp(v, OP_IdxInsert, sAggInfo.sortingIdx, 0); sqlite3WhereEnd(pWInfo); sqlite3VdbeAddOp(v, OP_Sort, sAggInfo.sortingIdx, addrEnd); + VdbeComment((v, "# GROUP BY sort")); sAggInfo.useSortingIdx = 1; } @@ -2986,9 +3019,9 @@ } sqlite3VdbeAddOp(v, OP_MemLoad, iAMem+j, 0); if( j==0 ){ - sqlite3VdbeAddOp(v, OP_Eq, 0, addrProcessRow); + sqlite3VdbeAddOp(v, OP_Eq, 0x200, addrProcessRow); }else{ - sqlite3VdbeAddOp(v, OP_Ne, 0x100, addrGroupByChange); + sqlite3VdbeAddOp(v, OP_Ne, 0x200, addrGroupByChange); } sqlite3VdbeChangeP3(v, -1, (void*)pKeyInfo->aColl[j], P3_COLLSEQ); } @@ -3004,19 +3037,22 @@ */ sqlite3VdbeResolveLabel(v, addrGroupByChange); for(j=0; jnExpr; j++){ - sqlite3VdbeAddOp(v, OP_MemLoad, iBMem+j, 0); - sqlite3VdbeAddOp(v, OP_MemStore, iAMem+j, 1); + sqlite3VdbeAddOp(v, OP_MemMove, iAMem+j, iBMem+j); } sqlite3VdbeAddOp(v, OP_Gosub, 0, addrOutputRow); + VdbeComment((v, "# output one row")); sqlite3VdbeAddOp(v, OP_IfMemPos, iAbortFlag, addrEnd); - resetAccumulator(pParse, &sAggInfo); + VdbeComment((v, "# check abort flag")); + sqlite3VdbeAddOp(v, OP_Gosub, 0, addrReset); + VdbeComment((v, "# reset accumulator")); /* Update the aggregate accumulators based on the content of ** the current row */ sqlite3VdbeResolveLabel(v, addrProcessRow); updateAccumulator(pParse, &sAggInfo); - sqlite3VdbeAddOp(v, OP_MemIncr, iUseFlag, 0); + sqlite3VdbeAddOp(v, OP_MemInt, 1, iUseFlag); + VdbeComment((v, "# indicate data in accumulator")); /* End of the loop */ @@ -3030,6 +3066,7 @@ /* Output the final row of result */ sqlite3VdbeAddOp(v, OP_Gosub, 0, addrOutputRow); + VdbeComment((v, "# output final row")); } /* endif pGroupBy */ else { ======================================================================== --- sqlite/sqlite3.h d1ab08a3d92270801782adad0dad0f31d6df7761 +++ sqlite/sqlite3.h 2c4119e974bd9182eb3597fbd6343c5e1c4bcb74 @@ -31,7 +31,7 @@ #ifdef SQLITE_VERSION # undef SQLITE_VERSION #endif -#define SQLITE_VERSION "3.2.6" +#define SQLITE_VERSION "3.2.7" /* ** The format of the version string is "X.Y.Z", where @@ -48,7 +48,7 @@ #ifdef SQLITE_VERSION_NUMBER # undef SQLITE_VERSION_NUMBER #endif -#define SQLITE_VERSION_NUMBER 3002006 +#define SQLITE_VERSION_NUMBER 3002007 /* ** The version string is also compiled into the library so that a program ======================================================================== --- sqlite/sqliteInt.h e78a7c53a97a2e5d8d6370b6836b2921124ac26f +++ sqlite/sqliteInt.h 0606b9cc31efabadf5b3d40478c193fa89fa6662 @@ -11,7 +11,7 @@ ************************************************************************* ** Internal interface definitions for SQLite. ** -** @(#) $Id: sqliteInt.h,v 1.419 2005/09/17 15:20:27 drh Exp $ +** @(#) $Id: sqliteInt.h,v 1.421 2005/09/19 21:05:49 drh Exp $ */ #ifndef _SQLITEINT_H_ #define _SQLITEINT_H_ @@ -904,6 +904,7 @@ ** iColumn-th field of the iTable-th table. */ AggInfo *pAggInfo; /* Used by TK_AGG_COLUMN and TK_AGG_FUNCTION */ int iAgg; /* Which entry in pAggInfo->aCol[] or ->aFunc[] */ + int iRightJoinTable; /* If EP_FromJoin, the right table of the join */ Select *pSelect; /* When the expression is a sub-select. Also the ** right side of " IN (