Index: subversion/svnadmin/main.c
===================================================================
--- subversion/svnadmin/main.c	(revision 9300)
+++ subversion/svnadmin/main.c	(working copy)
@@ -31,6 +31,7 @@
 #include "svn_repos.h"
 #include "svn_fs.h"
 
+#include "svn_private_config.h"
 
 
 /*** Code. ***/
@@ -51,7 +52,7 @@ static svn_error_t *
 check_cancel (void *baton)
 {
   if (cancelled)
-    return svn_error_create (SVN_ERR_CANCELLED, NULL, "Caught signal");
+    return svn_error_create (SVN_ERR_CANCELLED, NULL, _("Caught signal"));
   else
     return SVN_NO_ERROR;
 }
@@ -67,7 +68,7 @@ create_stdio_stream (svn_stream_t **stre
   apr_status_t apr_err = open_fn (&stdio_file, pool);  
 
   if (apr_err)
-    return svn_error_wrap_apr (apr_err, "Can't open stdio file");
+    return svn_error_wrap_apr (apr_err, _("Can't open stdio file"));
   
   *stream = svn_stream_from_aprfile (stdio_file, pool);
   return SVN_NO_ERROR;   
@@ -95,12 +96,12 @@ parse_local_repos_path (apr_getopt_t *os
   if (*repos_path == NULL)
     {
       return svn_error_create (SVN_ERR_CL_ARG_PARSING_ERROR, NULL, 
-                               "Repository argument required");
+                               _("Repository argument required"));
     }
   else if (svn_path_is_url (*repos_path))
     {
       return svn_error_createf (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                                "'%s' is an url when it should be a path",
+                                _("'%s' is an url when it should be a path"),
                                 *repos_path);
     }
 
@@ -175,49 +176,49 @@ enum 
 static const apr_getopt_option_t options_table[] =
   {
     {"help",          'h', 0,
-     "show help on a subcommand"},
+     N_("show help on a subcommand")},
 
     {NULL,            '?', 0,
-     "show help on a subcommand"},
+     N_("show help on a subcommand")},
 
     {"version",       svnadmin__version, 0,
-     "show version information"},
+     N_("show version information")},
 
     {"revision",      'r', 1,
-     "specify revision number ARG (or X:Y range)"},
+     N_("specify revision number ARG (or X:Y range)")},
 
     {"incremental",   svnadmin__incremental, 0,
-     "dump incrementally"},
+     N_("dump incrementally")},
 
     {"deltas",        svnadmin__deltas, 0,
-     "use deltas in dump output"},
+     N_("use deltas in dump output")},
 
     {"bypass-hooks",  svnadmin__bypass_hooks, 0,
-     "bypass the repository hook system"},
+     N_("bypass the repository hook system")},
 
     {"quiet",           'q', 0,
-     "no progress (only errors) to stderr"},
+     N_("no progress (only errors) to stderr")},
 
     {"ignore-uuid", svnadmin__ignore_uuid, 0,
-     "ignore any repos UUID found in the stream"},
+     N_("ignore any repos UUID found in the stream")},
 
     {"force-uuid", svnadmin__force_uuid, 0,
-     "set repos UUID to that found in stream, if any"},
+     N_("set repos UUID to that found in stream, if any")},
 
     {"parent-dir", svnadmin__parent_dir, 1,
-     "load at specified directory in repository"},
+     N_("load at specified directory in repository")},
 
     {"bdb-txn-nosync", svnadmin__bdb_txn_nosync, 0,
-     "disable fsync at transaction commit [Berkeley DB]"},
+     N_("disable fsync at transaction commit [Berkeley DB]")},
 
     {"bdb-log-keep", svnadmin__bdb_log_keep, 0,
-     "disable automatic log file removal [Berkeley DB]"},
+     N_("disable automatic log file removal [Berkeley DB]")},
 
     {"config-dir", svnadmin__config_dir, 1,
-     "read user configuration files from directory ARG"},
+     N_("read user configuration files from directory ARG")},
 
     {"clean-logs", svnadmin__clean_logs, 0,
-     "remove redundant log files from source repository."},
+     N_("remove redundant log files from source repository.")},
 
     {NULL}
   };
@@ -229,82 +230,82 @@ static const apr_getopt_option_t options
 static const svn_opt_subcommand_desc_t cmd_table[] =
   {
     {"create", subcommand_create, {0},
-     "usage: svnadmin create REPOS_PATH\n\n"
-     "Create a new, empty repository at REPOS_PATH.\n",
+     N_("usage: svnadmin create REPOS_PATH\n\n"
+     "Create a new, empty repository at REPOS_PATH.\n"),
      {svnadmin__bdb_txn_nosync, svnadmin__bdb_log_keep,
       svnadmin__config_dir} },
 
     {"deltify", subcommand_deltify, {0},
-     "usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n\n"
+     N_("usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n\n"
      "Run over the requested revision range, performing predecessor deltifi-\n"
      "cation on the paths changed in those revisions.  Deltification in\n"
      "essence compresses the repository by only storing the differences or\n"
      "delta from the preceding revision.  If no revisions are specified,\n"
-     "this will simply deltify the HEAD revision.\n",
+     "this will simply deltify the HEAD revision.\n"),
      {'r', 'q'} },
 
     {"dump", subcommand_dump, {0},
-     "usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]\n\n"
+     N_("usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]\n\n"
      "Dump the contents of filesystem to stdout in a 'dumpfile'\n"
      "portable format, sending feedback to stderr.  Dump revisions\n"
      "LOWER rev through UPPER rev.  If no revisions are given, dump all\n"
      "revision trees.  If only LOWER is given, dump that one revision tree.\n"
      "If --incremental is passed, then the first revision dumped will be\n"
-     "a diff against the previous revision, instead of the usual fulltext.\n",
+     "a diff against the previous revision, instead of the usual fulltext.\n"),
      {'r', svnadmin__incremental, svnadmin__deltas, 'q'} },
 
     {"help", subcommand_help, {"?", "h"},
-     "usage: svnadmin help [SUBCOMMAND...]\n\n"
-     "Describe the usage of this program or its subcommands.\n",
+     N_("usage: svnadmin help [SUBCOMMAND...]\n\n"
+     "Describe the usage of this program or its subcommands.\n"),
      {svnadmin__version} },
 
     {"hotcopy", subcommand_hotcopy, {0},
-     "usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n\n"
-     "Makes a hot copy of a repository.\n",
+     N_("usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n\n"
+     "Makes a hot copy of a repository.\n"),
      {svnadmin__clean_logs} },
 
     {"list-dblogs", subcommand_list_dblogs, {0},
-     "usage: svnadmin list-dblogs REPOS_PATH\n\n"
+     N_("usage: svnadmin list-dblogs REPOS_PATH\n\n"
      "List all Berkeley DB log files.\n\n"
      "WARNING: Modifying or deleting logfiles which are still in use\n"
-     "will cause your repository to be corrupted.\n",
+     "will cause your repository to be corrupted.\n"),
      {0} },
 
     {"list-unused-dblogs", subcommand_list_unused_dblogs, {0},
-     "usage: svnadmin list-unused-dblogs REPOS_PATH\n\n"
-     "List unused Berkeley DB log files.\n\n",
+     N_("usage: svnadmin list-unused-dblogs REPOS_PATH\n\n"
+     "List unused Berkeley DB log files.\n\n"),
      {0} },
 
     {"load", subcommand_load, {0},
-     "usage: svnadmin load REPOS_PATH\n\n"
+     N_("usage: svnadmin load REPOS_PATH\n\n"
      "Read a 'dumpfile'-formatted stream from stdin, committing\n"
      "new revisions into the repository's filesystem.  If the repository\n"
      "was previously empty, its UUID will, by default, be changed to the\n"
-     "one specified in the stream.  Progress feedback is sent to stdout.\n",
+     "one specified in the stream.  Progress feedback is sent to stdout.\n"),
      {'q', svnadmin__ignore_uuid, svnadmin__force_uuid, 
       svnadmin__parent_dir} },
 
     {"lstxns", subcommand_lstxns, {0},
-     "usage: svnadmin lstxns REPOS_PATH\n\n"
-     "Print the names of all uncommitted transactions.\n",
+     N_("usage: svnadmin lstxns REPOS_PATH\n\n"
+     "Print the names of all uncommitted transactions.\n"),
      {0} },
 
     {"recover", subcommand_recover, {0},
-     "usage: svnadmin recover REPOS_PATH\n\n"
+     N_("usage: svnadmin recover REPOS_PATH\n\n"
      "Run the Berkeley DB recovery procedure on a repository.  Do\n"
      "this if you've been getting errors indicating that recovery\n"
      "ought to be run.\n\n"
      "WARNING: only run this when you are SURE you're the only process\n"
-     "accessing the repository.  Requires exclusive access.\n\n",
+     "accessing the repository.  Requires exclusive access.\n\n"),
      {0} },
 
     {"rmtxns", subcommand_rmtxns, {0},
-     "usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n\n"
-     "Delete the named transaction(s).\n",
+     N_("usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n\n"
+     "Delete the named transaction(s).\n"),
      {'q'} },
 
     {"setlog", subcommand_setlog, {0},
-     "usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n\n"
+     N_("usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n\n"
      "Set the log-message on revision REVISION to the contents of FILE.  Use\n"
      "--bypass-hooks to avoid triggering the revision-property-related hooks\n"
      "(for example, if you do not want an email notification sent\n"
@@ -312,12 +313,12 @@ static const svn_opt_subcommand_desc_t c
      "revision properties has not been enabled in the pre-revprop-change\n"
      "hook).\n\n"
      "NOTE: revision properties are not historied, so this command\n"
-     "will permanently overwrite the previous log message.\n",
+     "will permanently overwrite the previous log message.\n"),
      {'r', svnadmin__bypass_hooks} },
 
     {"verify", subcommand_verify, {0},
-     "usage: svnadmin verify REPOS_PATH\n\n"
-     "Verifies the data stored in the repository.\n",
+     N_("usage: svnadmin verify REPOS_PATH\n\n"
+     "Verifies the data stored in the repository.\n"),
      {0} },
 
     { NULL, NULL, {0}, NULL, {0} }
@@ -412,7 +413,7 @@ subcommand_deltify (apr_getopt_t *os, vo
   if (start > end)
     return svn_error_create
       (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-       "First revision cannot be higher than second");
+       _("First revision cannot be higher than second"));
   if ((start > youngest) || (end > youngest))
     return svn_error_createf
       (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
@@ -429,7 +430,7 @@ subcommand_deltify (apr_getopt_t *os, vo
         printf ("Deltifying revision %" SVN_REVNUM_T_FMT "...", revision);
       SVN_ERR (svn_fs_deltify_revision (fs, revision, subpool));
       if (! opt_state->quiet)
-        printf ("done.\n");
+        printf (_("done.\n"));
     }
   svn_pool_destroy (subpool);
 
@@ -480,7 +481,7 @@ subcommand_dump (apr_getopt_t *os, void 
   if (lower > upper)
     return svn_error_create
       (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-       "First revision cannot be higher than second");
+       _("First revision cannot be higher than second"));
   if ((lower > youngest) || (upper > youngest))
     return svn_error_createf
       (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
@@ -512,10 +513,10 @@ subcommand_help (apr_getopt_t *os, void 
 {
   struct svnadmin_opt_state *opt_state = baton;
   const char *header =
-    "general usage: svnadmin SUBCOMMAND REPOS_PATH  [ARGS & OPTIONS ...]\n"
+    _("general usage: svnadmin SUBCOMMAND REPOS_PATH  [ARGS & OPTIONS ...]\n"
     "Type \"svnadmin help <subcommand>\" for help on a specific subcommand.\n"
     "\n"
-    "Available subcommands:\n";
+    "Available subcommands:\n");
 
   SVN_ERR (svn_opt_print_help (os, "svnadmin", 
                                opt_state ? opt_state->version : FALSE,
@@ -586,12 +587,12 @@ subcommand_recover (apr_getopt_t *os, vo
   svn_repos_t *repos;
   struct svnadmin_opt_state *opt_state = baton;
 
-  printf ("Please wait; recovering the repository may take some time...\n");
+  printf (_("Please wait; recovering the repository may take some time...\n"));
   fflush (stdout);
 
   SVN_ERR (svn_repos_recover (opt_state->repository_path, pool));
 
-  printf ("\nRecovery completed.\n");
+  printf (_("\nRecovery completed.\n"));
 
   /* Since db transactions may have been replayed, it's nice to tell
      people what the latest revision is.  It also proves that the
@@ -705,7 +706,7 @@ subcommand_rmtxns (apr_getopt_t *os, voi
         }
       else if (! opt_state->quiet)
         {
-          printf ("Transaction '%s' removed.\n", txn_name);
+          printf (_("Transaction '%s' removed.\n"), txn_name);
         }
 
       svn_pool_clear (subpool);
@@ -728,16 +729,16 @@ subcommand_setlog (apr_getopt_t *os, voi
 
   if (opt_state->start_revision.kind != svn_opt_revision_number)
     return svn_error_createf (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                              "Missing revision");
+                              _("Missing revision"));
   else if (opt_state->end_revision.kind != svn_opt_revision_unspecified)
     return svn_error_createf (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                              "Only one revision allowed");
+                              _("Only one revision allowed"));
     
   SVN_ERR (svn_opt_parse_all_args (&args, os, pool));
 
   if (args->nelts != 1)
     return svn_error_createf (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                              "Exactly one file argument required");
+                              _("Exactly one file argument required"));
   
   SVN_ERR (svn_utf_cstring_to_utf8 (&filename_utf8,
                                     APR_ARRAY_IDX (args, 0, const char *),
@@ -885,8 +886,8 @@ main (int argc, const char * const *argv
             {
               err = svn_error_create
                 (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                 "Multiple revision arguments encountered; "
-                 "try '-r M:N' instead of '-r M -r N'");
+                 _("Multiple revision arguments encountered; "
+                 "try '-r M:N' instead of '-r M -r N'"));
               svn_handle_error (err, stderr, FALSE);
               svn_error_clear (err);
               svn_pool_destroy (pool);
@@ -902,7 +903,7 @@ main (int argc, const char * const *argv
               if (! err)
                 err = svn_error_createf
                   (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                   "Syntax error in revision argument '%s'",
+                   _("Syntax error in revision argument '%s'"),
                    utf8_opt_arg);
               svn_handle_error (err, stderr, FALSE);
               svn_error_clear (err);
@@ -985,7 +986,7 @@ main (int argc, const char * const *argv
     {
       if (os->ind >= os->argc)
         {
-          fprintf (stderr, "subcommand argument required\n");
+          fprintf (stderr, _("subcommand argument required\n"));
           subcommand_help (NULL, NULL, pool);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
@@ -996,7 +997,7 @@ main (int argc, const char * const *argv
           subcommand = svn_opt_get_canonical_subcommand (cmd_table, first_arg);
           if (subcommand == NULL)
             {
-              fprintf (stderr, "unknown command: '%s'\n", first_arg);
+              fprintf (stderr, _("unknown command: '%s'\n"), first_arg);
               subcommand_help (NULL, NULL, pool);
               svn_pool_destroy (pool);
               return EXIT_FAILURE;
@@ -1062,8 +1063,8 @@ main (int argc, const char * const *argv
             svn_opt_get_option_from_code (opt_id, options_table);
           svn_opt_format_option (&optstr, badopt, FALSE, pool);
           fprintf (stderr,
-                   "subcommand '%s' doesn't accept option '%s'\n"
-                   "Type 'svnadmin help %s' for usage.\n",
+                   _("subcommand '%s' doesn't accept option '%s'\n"
+                   "Type 'svnadmin help %s' for usage.\n"),
                    subcommand->name, optstr, subcommand->name);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
Index: subversion/libsvn_ra/ra_loader.c
===================================================================
--- subversion/libsvn_ra/ra_loader.c	(revision 9300)
+++ subversion/libsvn_ra/ra_loader.c	(working copy)
@@ -120,7 +120,7 @@ load_ra_module (svn_ra_init_func_t *func
     status = apr_dso_sym (&symbol, dso, funcname);
     if (status)
       {
-        return svn_error_wrap_apr (status, "'%s' does not define '%s()'",
+        return svn_error_wrap_apr (status, _("'%s' does not define '%s()'"),
                                    libname, funcname);
       }
 
@@ -207,7 +207,7 @@ svn_ra_get_ra_library (svn_ra_plugin_t *
   /* Couldn't find a match... */
   *library = NULL;
   return svn_error_createf (SVN_ERR_RA_ILLEGAL_URL, NULL,
-                            "Unrecognized URL scheme '%s'", URL);
+                            _("Unrecognized URL scheme '%s'"), URL);
 }
 
 
@@ -272,7 +272,7 @@ svn_ra_print_ra_libraries (svn_stringbuf
           svn_stringbuf_appendcstr (*descriptions, line);
         }
 
-      line = apr_psprintf (pool, "  - handles '%s' schema\n",
+      line = apr_psprintf (pool, _("  - handles '%s' schema\n"),
                            list[idx].schema);
       svn_stringbuf_appendcstr (*descriptions, line);
       prev_ra_lib = list[idx].ra_lib;
Index: subversion/libsvn_wc/relocate.c
===================================================================
--- subversion/libsvn_wc/relocate.c	(revision 9300)
+++ subversion/libsvn_wc/relocate.c	(working copy)
@@ -30,6 +30,8 @@
 #include "entries.h"
 #include "props.h"
 
+#include "svn_private_config.h"
+
 
 /* Relocate the main URL and the copyfrom URL for ENTRY by changing FROM to
  * TO.  ADM_ACCESS is the access baton for ENTRY.  If DO_SYNC is set then
Index: subversion/libsvn_wc/merge.c
===================================================================
--- subversion/libsvn_wc/merge.c	(revision 9300)
+++ subversion/libsvn_wc/merge.c	(working copy)
@@ -28,6 +28,7 @@
 #include "translate.h"
 #include "questions.h"
 
+#include "svn_private_config.h"
 
 
 
@@ -296,13 +297,13 @@ svn_wc_merge (const char *left,
       /* Don't forget to clean up tmp_target, result_target, tmp_left,
          tmp_right.  There are a lot of scratch files lying around. */
       SVN_ERR_W (svn_io_remove_file (tmp_target, pool),
-                 "Unable to delete temporary file");
+                 _("Unable to delete temporary file"));
       SVN_ERR_W (svn_io_remove_file (result_target, pool),
-                 "Unable to delete temporary file");
+                 _("Unable to delete temporary file"));
       SVN_ERR_W (svn_io_remove_file (tmp_left, pool),
-                 "Unable to delete temporary file");
+                 _("Unable to delete temporary file"));
       SVN_ERR_W (svn_io_remove_file (tmp_right, pool),
-                 "Unable to delete temporary file");
+                 _("Unable to delete temporary file"));
 
     } /* end of merging for text files */
 
Index: subversion/libsvn_wc/props.c
===================================================================
--- subversion/libsvn_wc/props.c	(revision 9300)
+++ subversion/libsvn_wc/props.c	(working copy)
@@ -51,6 +51,7 @@
 #include "translate.h"
 #include "questions.h"
 
+#include "svn_private_config.h"
 
 /*---------------------------------------------------------------------*/
 
@@ -99,7 +100,7 @@ svn_wc__conflicting_propchanges_p (const
       *description =
         svn_string_createf
         (pool,
-         "Property '%s' locally changed to '%s', but update deletes it\n",
+         _("Property '%s' locally changed to '%s', but update deletes it\n"),
          local->name, local->value->data);
       return TRUE;  /* conflict */
     }
@@ -107,7 +108,7 @@ svn_wc__conflicting_propchanges_p (const
     {
       *description =
         svn_string_createf
-        (pool, "Property '%s' locally deleted, but update sets it to '%s'\n",
+        (pool, _("Property '%s' locally deleted, but update sets it to '%s'\n"),
          local->name, update->value->data);
       return TRUE;  /* conflict */
     }
@@ -123,8 +124,8 @@ svn_wc__conflicting_propchanges_p (const
     {
       *description =
         svn_string_createf
-        (pool, "Property '%s' locally changed to '%s', "
-         "but update sets it to '%s'\n",
+        (pool, _("Property '%s' locally changed to '%s', "
+         "but update sets it to '%s'\n"),
          local->name, local->value->data, update->value->data);
       return TRUE;  /* conflict */
     }
@@ -166,7 +167,7 @@ svn_wc__load_prop_file (const char *prop
                                  pool));
 
       SVN_ERR_W (svn_hash_read (hash, propfile, pool),
-                 apr_psprintf (pool, "Can't parse '%s'", propfile_path));
+                 apr_psprintf (pool, _("Can't parse '%s'"), propfile_path));
 
       SVN_ERR (svn_io_file_close (propfile, pool));
     }
@@ -192,7 +193,7 @@ svn_wc__save_prop_file (const char *prop
 
   SVN_ERR_W (svn_hash_write (hash, prop_tmp, pool),
              apr_psprintf (pool, 
-                           "Can't write property hash to '%s'", 
+                           _("Can't write property hash to '%s'"), 
                            propfile_path));
 
   SVN_ERR (svn_io_file_close (prop_tmp, pool));
@@ -245,7 +246,7 @@ svn_wc__get_existing_prop_reject_file (c
   if (! the_entry)
     return svn_error_createf
       (SVN_ERR_ENTRY_NOT_FOUND, NULL,
-       "Can't find entry '%s' in '%s'", 
+       _("Can't find entry '%s' in '%s'"), 
        name, svn_wc_adm_access_path (adm_access));
 
   *reject_file = the_entry->prejfile 
@@ -277,7 +278,7 @@ svn_wc_merge_prop_diffs (svn_wc_notify_s
   SVN_ERR (svn_wc_entry (&entry, path, adm_access, FALSE, pool));
   if (entry == NULL)
     return svn_error_createf (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
-                              "'%s' is not under version control", path);
+                              _("'%s' is not under version control"), path);
 
   /* Notice that we're not using svn_path_split_if_file(), because
      that looks at the actual working file.  It's existence shouldn't
@@ -313,7 +314,7 @@ svn_wc_merge_prop_diffs (svn_wc_notify_s
     {
       SVN_ERR_W (svn_io_file_write_full (log_fp, log_accum->data, 
                                          log_accum->len, NULL, pool),
-                 apr_psprintf (pool, "Error writing log for '%s'", path));
+                 apr_psprintf (pool, _("Error writing log for '%s'"), path));
 
       SVN_ERR (svn_wc__close_adm_file (log_fp, parent, SVN_WC__ADM_LOG,
                                        1, /* sync */ pool));
@@ -725,12 +726,12 @@ wcprop_list (apr_hash_t **props,
 #if 0
   if (kind == svn_node_none)
     return svn_error_createf (SVN_ERR_BAD_FILENAME, NULL,
-                              "'%s' does not exist",
+                              _("'%s' does not exist"),
                               path);
   
   if (kind == svn_node_unknown)
     return svn_error_createf (SVN_ERR_NODE_UNKNOWN_KIND, NULL,
-                              "Unknown node kind: '%s'",
+                              _("Unknown node kind: '%s'"),
                               path);
 #endif
 
@@ -766,7 +767,7 @@ svn_wc__wcprop_get (const svn_string_t *
   if (err)
     return
       svn_error_quick_wrap
-      (err, "Failed to load properties from disk");
+      (err, _("Failed to load properties from disk"));
 
   *value = apr_hash_get (prophash, name, APR_HASH_KEY_STRING);
   return SVN_NO_ERROR;
@@ -788,7 +789,7 @@ svn_wc__wcprop_set (const char *name,
   if (err)
     return
       svn_error_quick_wrap
-      (err, "Failed to load properties from disk");
+      (err, _("Failed to load properties from disk"));
 
   /* Now we have all the properties in our hash.  Simply merge the new
      property into it. */
@@ -804,7 +805,7 @@ svn_wc__wcprop_set (const char *name,
   /* Write. */
   SVN_ERR_W (svn_hash_write (prophash, fp, pool),
              apr_psprintf (pool,
-                           "Cannot write property hash for '%s'", path));
+                           _("Cannot write property hash for '%s'"), path));
   
   /* Close file, and doing an atomic "move". */
   SVN_ERR (svn_wc__close_props (fp, path, 0, 1,
@@ -874,7 +875,7 @@ svn_wc_prop_get (const svn_string_t **va
     {
       return svn_error_createf   /* we don't do entry properties here */
         (SVN_ERR_BAD_PROP_KIND, NULL,
-         "Property '%s' is an entry property", name);
+         _("Property '%s' is an entry property"), name);
     }
   else  /* regular prop */
     {
@@ -882,7 +883,7 @@ svn_wc_prop_get (const svn_string_t **va
       if (err)
         return
           svn_error_quick_wrap
-          (err, "Failed to load properties from disk");
+          (err, _("Failed to load properties from disk"));
       
       *value = apr_hash_get (prophash, name, APR_HASH_KEY_STRING);
 
@@ -924,13 +925,13 @@ validate_prop_against_node_kind (const c
       break;
     default:
       return svn_error_createf (SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
-                                "'%s' is not a file or directory", path);
+                                _("'%s' is not a file or directory"), path);
     }
 
   while (*node_kind_prohibit)
     if (strcmp (name, *node_kind_prohibit++) == 0)
       return svn_error_createf (SVN_ERR_ILLEGAL_TARGET, NULL,
-                                "Cannot set '%s' on a %s (%s)",
+                                _("Cannot set '%s' on a %s (%s)"),
                                 name, node_kind_text, path);
 
   return SVN_NO_ERROR;
@@ -952,7 +953,7 @@ validate_eol_prop_against_file (const ch
                             pool));
   if (mime_type && svn_mime_type_is_binary (mime_type->data))
     return svn_error_createf (SVN_ERR_ILLEGAL_TARGET, NULL,
-                              "File '%s' has binary mime type property", path);
+                              _("File '%s' has binary mime type property"), path);
 
   /* Open PATH. */
   SVN_ERR (svn_io_file_open (&fp, path, 
@@ -973,7 +974,7 @@ validate_eol_prop_against_file (const ch
                                     "", FALSE, NULL, FALSE);
   if (err && err->apr_err == SVN_ERR_IO_INCONSISTENT_EOL)
     return svn_error_createf (SVN_ERR_ILLEGAL_TARGET, err,
-                              "File '%s' has inconsistent newlines", path);
+                              _("File '%s' has inconsistent newlines"), path);
   else if (err)
     return err;
 
@@ -1004,7 +1005,7 @@ svn_wc_prop_set (const char *name,
   else if (prop_kind == svn_prop_entry_kind)
     return svn_error_createf   /* we don't do entry properties here */
       (SVN_ERR_BAD_PROP_KIND, NULL,
-       "Property '%s' is an entry property", name);
+       _("Property '%s' is an entry property"), name);
 
   /* Else, handle a regular property: */
 
@@ -1083,7 +1084,7 @@ svn_wc_prop_set (const char *name,
   if (err)
     return
       svn_error_quick_wrap
-      (err, "Failed to load properties from disk");
+      (err, _("Failed to load properties from disk"));
 
   /* If we're changing this file's list of expanded keywords, then
    * we'll need to invalidate its text timestamp, since keyword
@@ -1113,7 +1114,7 @@ svn_wc_prop_set (const char *name,
   /* Write. */
   SVN_ERR_W (svn_hash_write (prophash, fp, pool),
              apr_psprintf (pool, 
-                           "Cannot write property hash for '%s'", path));
+                           _("Cannot write property hash for '%s'"), path));
   
   /* Close file, and doing an atomic "move". */
   SVN_ERR (svn_wc__close_props (fp, path, 0, 0,
@@ -1526,8 +1527,8 @@ svn_wc_parse_externals_description (apr_
         parse_error:
           return svn_error_createf
             (SVN_ERR_CLIENT_INVALID_EXTERNALS_DESCRIPTION, NULL,
-             "Error parsing " SVN_PROP_EXTERNALS " property on '%s': '%s'",
-             parent_directory, line);
+             _("Error parsing %s property on '%s': '%s'"),
+             SVN_PROP_EXTERNALS, parent_directory, line);
         }
 
       item->target_dir = svn_path_canonicalize
@@ -1542,9 +1543,9 @@ svn_wc_parse_externals_description (apr_
             || (strncmp ((item->target_dir + tgt_dir_len - 3), "/..", 3) == 0))
           return svn_error_createf
             (SVN_ERR_CLIENT_INVALID_EXTERNALS_DESCRIPTION, NULL,
-             "Invalid " SVN_PROP_EXTERNALS " property on '%s': "
-             "target involves '.' or '..' or is an absolute path",
-             parent_directory);
+             _("Invalid %s property on '%s': "
+             "target involves '.' or '..' or is an absolute path"),
+             SVN_PROP_EXTERNALS, parent_directory);
       }
 
       item->url = svn_path_canonicalize (item->url, pool);
Index: subversion/libsvn_wc/entries.c
===================================================================
--- subversion/libsvn_wc/entries.c	(revision 9300)
+++ subversion/libsvn_wc/entries.c	(working copy)
@@ -17,7 +17,6 @@
  */
 
 
-
 #include <string.h>
 #include <assert.h>
 
@@ -35,6 +34,8 @@
 #include "adm_ops.h"
 #include "entries.h"
 
+#include "svn_private_config.h"
+
 
 /** Overview **/
 
@@ -114,7 +115,7 @@ svn_wc__entries_init (const char *path,
                           SVN_WC__ENTRIES_TOPLEVEL);
 
   SVN_ERR_W (svn_io_file_write_full (f, accum->data, accum->len, NULL, pool),
-             apr_psprintf (pool, "Error writing entries file for '%s'", path));
+             apr_psprintf (pool, _("Error writing entries file for '%s'"), path));
 
   /* Now we have a `entries' file with exactly one entry, an entry
      for this dir.  Close the file and sync it up. */
@@ -215,7 +216,7 @@ svn_wc__atts_to_entry (svn_wc_entry_t **
         else
           return svn_error_createf 
             (SVN_ERR_NODE_UNKNOWN_KIND, NULL,
-             "Entry '%s' has invalid node kind",
+             _("Entry '%s' has invalid node kind"),
              (name ? name : SVN_WC_ENTRY_THIS_DIR));
         *modify_flags |= SVN_WC__ENTRY_MODIFY_KIND;
       }
@@ -240,7 +241,7 @@ svn_wc__atts_to_entry (svn_wc_entry_t **
         else
           return svn_error_createf 
             (SVN_ERR_ENTRY_ATTRIBUTE_INVALID, NULL,
-             "Entry '%s' has invalid '%s' value",
+             _("Entry '%s' has invalid '%s' value"),
              (name ? name : SVN_WC_ENTRY_THIS_DIR),
              SVN_WC__ENTRY_ATTR_SCHEDULE);
 
@@ -290,7 +291,7 @@ svn_wc__atts_to_entry (svn_wc_entry_t **
         else
           return svn_error_createf 
             (SVN_ERR_ENTRY_ATTRIBUTE_INVALID, NULL,
-             "Entry '%s' has invalid '%s' value",
+             _("Entry '%s' has invalid '%s' value"),
              (name ? name : SVN_WC_ENTRY_THIS_DIR),
              SVN_WC__ENTRY_ATTR_COPIED);
 
@@ -330,7 +331,7 @@ svn_wc__atts_to_entry (svn_wc_entry_t **
         else
           return svn_error_createf 
             (SVN_ERR_ENTRY_ATTRIBUTE_INVALID, NULL,
-             "Entry '%s' has invalid '%s' value",
+             _("Entry '%s' has invalid '%s' value"),
              (name ? name : SVN_WC_ENTRY_THIS_DIR),
              SVN_WC__ENTRY_ATTR_DELETED);
 
@@ -357,7 +358,7 @@ svn_wc__atts_to_entry (svn_wc_entry_t **
         else
           return svn_error_createf 
             (SVN_ERR_ENTRY_ATTRIBUTE_INVALID, NULL,
-             "Entry '%s' has invalid '%s' value",
+             _("Entry '%s' has invalid '%s' value"),
              (name ? name : SVN_WC_ENTRY_THIS_DIR),
              SVN_WC__ENTRY_ATTR_ABSENT);
 
@@ -384,7 +385,7 @@ svn_wc__atts_to_entry (svn_wc_entry_t **
         else
           return svn_error_createf 
             (SVN_ERR_ENTRY_ATTRIBUTE_INVALID, NULL,
-             "Entry '%s' has invalid '%s' value",
+             _("Entry '%s' has invalid '%s' value"),
              (name ? name : SVN_WC_ENTRY_THIS_DIR),
              SVN_WC__ENTRY_ATTR_INCOMPLETE);
 
@@ -565,17 +566,17 @@ resolve_to_defaults (apr_hash_t *entries
   if (! default_entry)
     return svn_error_create (SVN_ERR_ENTRY_NOT_FOUND,
                              NULL,
-                             "Missing default entry");
+                             _("Missing default entry"));
 
   if (default_entry->revision == SVN_INVALID_REVNUM)
     return svn_error_create (SVN_ERR_ENTRY_MISSING_REVISION,
                              NULL,
-                             "Default entry has no revision number");
+                             _("Default entry has no revision number"));
 
   if (! default_entry->url)
     return svn_error_create (SVN_ERR_ENTRY_MISSING_URL,
                              NULL,
-                             "Default entry is missing URL");
+                             _("Default entry is missing URL"));
   
     
   /* Then use it to fill in missing information in other entries. */
@@ -663,7 +664,7 @@ read_entries (svn_wc_adm_access_t *adm_a
     
     SVN_ERR_W (svn_xml_parse (svn_parser, buf, bytes_read, is_final),
                apr_psprintf (pool,
-                             "XML parser failed in '%s'", 
+                             _("XML parser failed in '%s'"), 
                              svn_wc_adm_access_path (adm_access)));
   } while (! is_final);
 
@@ -750,7 +751,7 @@ check_entries (apr_hash_t *entries,
   if (! default_entry)
     return svn_error_createf
       (SVN_ERR_WC_CORRUPT, NULL,
-       "Corrupt working copy: '%s' has no default entry", path);
+       _("Corrupt working copy: '%s' has no default entry"), path);
 
   /* Validate DEFAULT_ENTRY's current schedule. */
   switch (default_entry->schedule)
@@ -766,7 +767,7 @@ check_entries (apr_hash_t *entries,
       /* This is an invalid state */
       return svn_error_createf
         (SVN_ERR_WC_CORRUPT, NULL,
-         "Corrupt working copy: directory '%s' has an invalid schedule",
+         _("Corrupt working copy: directory '%s' has an invalid schedule"),
          path);
     }
   
@@ -800,8 +801,8 @@ check_entries (apr_hash_t *entries,
           /* This is an invalid state */
           return svn_error_createf
             (SVN_ERR_WC_CORRUPT, NULL,
-             "Corrupt working copy: "
-             "'%s' in directory '%s' has an invalid schedule",
+             _("Corrupt working copy: "
+             "'%s' in directory '%s' has an invalid schedule"),
              name, path);
         }
 
@@ -809,24 +810,24 @@ check_entries (apr_hash_t *entries,
           && (this_entry->schedule != svn_wc_schedule_add))
         return svn_error_createf
           (SVN_ERR_WC_CORRUPT, NULL,
-           "Corrupt working copy: '%s' in directory '%s' (which is scheduled "
-           "for addition) is not itself scheduled for addition",
+           _("Corrupt working copy: '%s' in directory '%s' (which is scheduled "
+           "for addition) is not itself scheduled for addition"),
            name, path);
   
       if ((default_entry->schedule == svn_wc_schedule_delete)
           && (this_entry->schedule != svn_wc_schedule_delete))
         return svn_error_createf
           (SVN_ERR_WC_CORRUPT, NULL,
-           "Corrupt working copy: '%s' in directory '%s' (which is scheduled "
-           "for deletion) is not itself scheduled for deletion",
+           _("Corrupt working copy: '%s' in directory '%s' (which is scheduled "
+           "for deletion) is not itself scheduled for deletion"),
            name, path);
 
       if ((default_entry->schedule == svn_wc_schedule_replace)
           && (this_entry->schedule == svn_wc_schedule_normal))
         return svn_error_createf
           (SVN_ERR_WC_CORRUPT, NULL,
-           "Corrupt working copy: '%s' in directory '%s' (which is scheduled "
-           "for replacement) has in invalid schedule",
+           _("Corrupt working copy: '%s' in directory '%s' (which is scheduled "
+           "for replacement) has in invalid schedule"),
            name, path);
     }
   
@@ -1104,7 +1105,7 @@ svn_wc__entries_write (apr_hash_t *entri
   /* If there is no "this dir" entry, something is wrong. */
   if (! this_dir)
     return svn_error_createf (SVN_ERR_ENTRY_NOT_FOUND, NULL,
-                              "No default entry in directory '%s'", 
+                              _("No default entry in directory '%s'"), 
                               svn_wc_adm_access_path (adm_access));
 
   /* Open entries file for writing.  It's important we don't use APR_EXCL
@@ -1157,7 +1158,7 @@ svn_wc__entries_write (apr_hash_t *entri
   SVN_ERR_W (svn_io_file_write_full (outfile, bigstr->data, 
                                      bigstr->len, NULL, pool),
              apr_psprintf (pool,
-                           "Error writing to '%s'",
+                           _("Error writing to '%s'"),
                            svn_wc_adm_access_path (adm_access)));
 
   err = svn_wc__close_adm_file (outfile,
@@ -1369,7 +1370,7 @@ fold_scheduling (apr_hash_t *entries,
       else
         return 
           svn_error_createf (SVN_ERR_WC_SCHEDULE_CONFLICT, NULL,
-                             "'%s' is not under version control",
+                             _("'%s' is not under version control"),
                              name);
     }
 
@@ -1396,14 +1397,14 @@ fold_scheduling (apr_hash_t *entries,
       if (*schedule == svn_wc_schedule_add)
         return 
           svn_error_createf (SVN_ERR_WC_SCHEDULE_CONFLICT, NULL,
-                             "Can't add '%s' to deleted directory; "
-                             "try undeleting its parent directory first",
+                             _("Can't add '%s' to deleted directory; "
+                             "try undeleting its parent directory first"),
                              name);
       if (*schedule == svn_wc_schedule_replace)
         return 
           svn_error_createf (SVN_ERR_WC_SCHEDULE_CONFLICT, NULL,
-                             "Can't replace '%s' in deleted directory; "
-                             "try undeleting its parent directory first",
+                             _("Can't replace '%s' in deleted directory; "
+                             "try undeleting its parent directory first"),
                              name);
     }
 
@@ -1411,7 +1412,7 @@ fold_scheduling (apr_hash_t *entries,
     {
       return svn_error_createf 
         (SVN_ERR_WC_SCHEDULE_CONFLICT, NULL,
-         "'%s' is marked as absent, so it cannot be scheduled for addition",
+         _("'%s' is marked as absent, so it cannot be scheduled for addition"),
          name);
     }
 
@@ -1440,7 +1441,7 @@ fold_scheduling (apr_hash_t *entries,
             return 
               svn_error_createf 
               (SVN_ERR_WC_SCHEDULE_CONFLICT, NULL,
-               "Entry '%s' is already under version control", name);
+               _("Entry '%s' is already under version control"), name);
         }
       break;
 
@@ -1532,7 +1533,7 @@ fold_scheduling (apr_hash_t *entries,
       return 
         svn_error_createf 
         (SVN_ERR_WC_SCHEDULE_CONFLICT, NULL,
-         "Entry '%s' has illegal schedule", name);
+         _("Entry '%s' has illegal schedule"), name);
     }
   return SVN_NO_ERROR;
 }
@@ -1648,7 +1649,7 @@ svn_wc__tweak_entry (apr_hash_t *entries
   entry = apr_hash_get (entries, name, APR_HASH_KEY_STRING);
   if (! entry)
     return svn_error_createf (SVN_ERR_ENTRY_NOT_FOUND, NULL,
-                              "No such entry: '%s'", name);
+                              _("No such entry: '%s'"), name);
 
   if (new_url != NULL
       && (! entry->url || strcmp (new_url, entry->url)))
@@ -1714,7 +1715,7 @@ walker_helper (const char *dirpath,
                             APR_HASH_KEY_STRING);
   if (! dot_entry)
     return svn_error_createf (SVN_ERR_ENTRY_NOT_FOUND, NULL,
-                              "Directory '%s' has no THIS_DIR entry",
+                              _("Directory '%s' has no THIS_DIR entry"),
                               dirpath);
 
   SVN_ERR (walk_callbacks->found_entry (dirpath, dot_entry, walk_baton, pool));
@@ -1771,7 +1772,7 @@ svn_wc_walk_entries (const char *path,
 
   if (! entry)
     return svn_error_createf (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
-                              "'%s' is not under version control", path);
+                              _("'%s' is not under version control"), path);
 
   if (entry->kind == svn_node_file)
     return walk_callbacks->found_entry (path, entry, walk_baton, pool);
@@ -1782,7 +1783,7 @@ svn_wc_walk_entries (const char *path,
 
   else
     return svn_error_createf (SVN_ERR_NODE_UNKNOWN_KIND, NULL,
-                              "'%s' has an unrecognized node kind", path);
+                              _("'%s' has an unrecognized node kind"), path);
 }
 
 
@@ -1817,6 +1818,6 @@ svn_wc_mark_missing_deleted (const char 
     }
   else
     return svn_error_createf (SVN_ERR_WC_PATH_FOUND, NULL,
-                              "Unexpectedly found '%s': "
-                              "path is marked 'missing'", path);
+                              _("Unexpectedly found '%s': "
+                              "path is marked 'missing'"), path);
 }
Index: subversion/libsvn_wc/copy.c
===================================================================
--- subversion/libsvn_wc/copy.c	(revision 9300)
+++ subversion/libsvn_wc/copy.c	(working copy)
@@ -33,6 +33,8 @@
 #include "adm_files.h"
 #include "props.h"
 
+#include "svn_private_config.h"
+
 
 /*** Code. ***/
 
@@ -142,7 +144,7 @@ copy_file_administratively (const char *
   SVN_ERR (svn_io_check_path (dst_path, &dst_kind, pool));
   if (dst_kind != svn_node_none)
     return svn_error_createf (SVN_ERR_ENTRY_EXISTS, NULL,
-                              "'%s' already exists and is in the way",
+                              _("'%s' already exists and is in the way"),
                               dst_path);
 
   /* Even if DST_PATH doesn't exist it may still be a versioned file; it
@@ -154,12 +156,12 @@ copy_file_administratively (const char *
     {
       if (dst_entry->schedule == svn_wc_schedule_delete)
         return svn_error_createf (SVN_ERR_ENTRY_EXISTS, NULL,
-                                  "'%s' is scheduled for deletion; it must"
-                                  " be committed before being overwritten",
+                                  _("'%s' is scheduled for deletion; it must"
+                                  " be committed before being overwritten"),
                                   dst_path);
       else
         return svn_error_createf (SVN_ERR_ENTRY_EXISTS, NULL,
-                                  "There is already a versioned item '%s'",
+                                  _("There is already a versioned item '%s'"),
                                   dst_path);
     }
 
@@ -170,15 +172,15 @@ copy_file_administratively (const char *
   if (! src_entry)
     return svn_error_createf 
       (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
-       "Cannot copy or move '%s': it's not under version control",
+       _("Cannot copy or move '%s': it's not under version control"),
        src_path);
   if ((src_entry->schedule == svn_wc_schedule_add)
       || (! src_entry->url)
       || (src_entry->copied))
     return svn_error_createf 
       (SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-       "Cannot copy or move '%s': it's not in the repository yet; "
-       "try committing first",
+       _("Cannot copy or move '%s': it's not in the repository yet; "
+       "try committing first"),
        src_path);
 
   /* Now, make an actual copy of the working file. */
@@ -286,14 +288,14 @@ copy_dir_administratively (const char *s
   if (! src_entry)
     return svn_error_createf
       (SVN_ERR_ENTRY_NOT_FOUND, NULL, 
-       "'%s' is not under version control", src_path);
+       _("'%s' is not under version control"), src_path);
   if ((src_entry->schedule == svn_wc_schedule_add)
       || (! src_entry->url)
       || (src_entry->copied))
     return svn_error_createf 
       (SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-       "Not allowed to copy or move '%s': it is not in the repository yet; "
-       "try committing first",
+       _("Not allowed to copy or move '%s': it is not in the repository yet; "
+       "try committing first"),
        src_path);
 
   /* Recursively copy the whole directory over.  This gets us all
Index: subversion/libsvn_wc/adm_crawler.c
===================================================================
--- subversion/libsvn_wc/adm_crawler.c	(revision 9300)
+++ subversion/libsvn_wc/adm_crawler.c	(working copy)
@@ -44,6 +44,8 @@
 #include "translate.h"
 #include "entries.h"
 
+#include "svn_private_config.h"
+
 
 /* Helper for report_revisions().
    
@@ -353,8 +355,8 @@ report_revisions (svn_wc_adm_access_t *a
             {
               return svn_error_createf
                 (SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
-                 "The entry '%s' is no longer a directory; "
-                 "remove the entry before updating",
+                 _("The entry '%s' is no longer a directory; "
+                 "remove the entry before updating"),
                  this_path);
             }
 
@@ -572,7 +574,7 @@ svn_wc_crawl_revisions (const char *path
       svn_error_t *fserr;
       if ((fserr = reporter->abort_report (report_baton, pool)))
         {
-          fserr = svn_error_quick_wrap (fserr, "Error aborting report");
+          fserr = svn_error_quick_wrap (fserr, _("Error aborting report"));
           svn_error_compose (err, fserr);
         }
       return err;
@@ -669,8 +671,8 @@ svn_wc_transmit_text_deltas (const char 
                   
                   return svn_error_createf
                     (SVN_ERR_WC_CORRUPT_TEXT_BASE, NULL,
-                     "Checksum mismatch for '%s': "
-                     "expected '%s', actual: '%s'",
+                     _("Checksum mismatch for '%s': "
+                     "expected '%s', actual: '%s'"),
                      tb, ent->checksum, base_digest_hex);
                 }
             }
@@ -694,7 +696,7 @@ svn_wc_transmit_text_deltas (const char 
   /* Open a filehandle for tmp text-base. */
   SVN_ERR_W (svn_io_file_open (&localfile, tmp_base,
                                APR_READ, APR_OS_DEFAULT, pool),
-             "Error opening local file");
+             _("Error opening local file"));
 
   /* Create a text-delta stream object that pulls data out of the two
      files. */
Index: subversion/libsvn_wc/adm_ops.c
===================================================================
--- subversion/libsvn_wc/adm_ops.c	(revision 9300)
+++ subversion/libsvn_wc/adm_ops.c	(working copy)
@@ -50,6 +50,8 @@
 #include "props.h"
 #include "translate.h"
 
+#include "svn_private_config.h"
+
 
 /*** Finishing updates and commits. ***/
 
@@ -208,7 +210,7 @@ svn_wc__do_update_cleanup (const char *p
 
   else
     return svn_error_createf (SVN_ERR_NODE_UNKNOWN_KIND, NULL,
-                              "Unrecognized node kind: '%s'", path);
+                              _("Unrecognized node kind: '%s'"), path);
 
   return SVN_NO_ERROR;
 }
@@ -373,7 +375,7 @@ svn_wc_process_committed (const char *pa
 
   SVN_ERR_W (svn_io_file_write_full (log_fp, logtags->data, 
                                      logtags->len, NULL, pool),
-             apr_psprintf (pool, "Error writing log file for '%s'", path));
+             apr_psprintf (pool, _("Error writing log file for '%s'"), path));
       
   SVN_ERR (svn_wc__close_adm_file (log_fp, svn_wc_adm_access_path (adm_access),
                                    SVN_WC__ADM_LOG,
@@ -881,10 +883,10 @@ svn_wc_add (const char *path,
   SVN_ERR (svn_io_check_path (path, &kind, pool));
   if (kind == svn_node_none)
     return svn_error_createf (SVN_ERR_WC_PATH_NOT_FOUND, NULL,
-                              "'%s' not found", path);
+                              _("'%s' not found"), path);
   if (kind == svn_node_unknown)
     return svn_error_createf (SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-                              "Unsupported node kind for path '%s'", path);
+                              _("Unsupported node kind for path '%s'"), path);
 
   /* Get the original entry for this path if one exists (perhaps
      this is actually a replacement of a previously deleted thing).
@@ -913,7 +915,7 @@ svn_wc_add (const char *path,
         {
           return svn_error_createf 
             (SVN_ERR_ENTRY_EXISTS, NULL,
-             "'%s' is already under version control", path);
+             _("'%s' is already under version control"), path);
         }
       else if (orig_entry->kind != kind)
         {
@@ -924,8 +926,8 @@ svn_wc_add (const char *path,
              error so that clients can detect it. */
           return svn_error_createf 
             (SVN_ERR_WC_NODE_KIND_CHANGE, NULL,
-             "Can't replace '%s' with a node of a differing type; "
-             "commit the deletion, update the parent, and then add '%s'",
+             _("Can't replace '%s' with a node of a differing type; "
+             "commit the deletion, update the parent, and then add '%s'"),
              path, path);
         }
       if (orig_entry->schedule == svn_wc_schedule_delete)
@@ -939,12 +941,12 @@ svn_wc_add (const char *path,
   if (! parent_entry)
     return svn_error_createf 
       (SVN_ERR_ENTRY_NOT_FOUND, NULL,
-       "Can't not find parent directory's entry while trying to add '%s'",
+       _("Can't not find parent directory's entry while trying to add '%s'"),
        path);
   if (parent_entry->schedule == svn_wc_schedule_delete)
     return svn_error_createf 
       (SVN_ERR_WC_SCHEDULE_CONFLICT, NULL,
-       "Can't add '%s' to a parent directory scheduled for deletion",
+       _("Can't add '%s' to a parent directory scheduled for deletion"),
        path);
 
   /* Init the modify flags. */
@@ -1139,7 +1141,7 @@ revert_error (svn_error_t *err,
               apr_pool_t *pool)
 {
   return svn_error_quick_wrap 
-    (err, apr_psprintf (pool, "Error '%s' for '%s'", verb, path));
+    (err, apr_psprintf (pool, _("Error '%s' for '%s'"), verb, path));
 }
 
 
@@ -1366,7 +1368,7 @@ svn_wc_revert (const char *path,
   if (! entry)
     return svn_error_createf 
       (SVN_ERR_UNVERSIONED_RESOURCE, NULL,
-       "Cannot revert: '%s' is not under version control", path);
+       _("Cannot revert: '%s' is not under version control"), path);
 
   /* Safeguard 1.5: is this a missing versioned directory? */
   if (entry->kind == svn_node_dir)
@@ -1397,7 +1399,7 @@ svn_wc_revert (const char *path,
   if ((entry->kind != svn_node_file) && (entry->kind != svn_node_dir))
     return svn_error_createf 
       (SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-       "Cannot revert '%s': unsupported entry node kind", path);
+       _("Cannot revert '%s': unsupported entry node kind"), path);
 
   /* Safeguard 3:  can we deal with the node kind of PATH current in
      the working copy? */
@@ -1407,7 +1409,7 @@ svn_wc_revert (const char *path,
       && (kind != svn_node_dir))
     return svn_error_createf 
       (SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-       "Cannot revert '%s': unsupported node kind in working copy", path);
+       _("Cannot revert '%s': unsupported node kind in working copy"), path);
 
   /* For directories, determine if PATH is a WC root so that we can
      tell if it is safe to split PATH into a parent directory and
@@ -1454,8 +1456,8 @@ svn_wc_revert (const char *path,
           if (path[0] == '\0')
             {
               return svn_error_create (SVN_ERR_WC_INVALID_OP_ON_CWD, NULL,
-                "Cannot revert addition of current directory; "
-                "please try again from the parent directory");
+                _("Cannot revert addition of current directory; "
+                "please try again from the parent directory"));
             }
               
           SVN_ERR (svn_wc_entries_read (&entries, parent_access, TRUE, pool));
@@ -1476,7 +1478,7 @@ svn_wc_revert (const char *path,
       else  /* Else it's `none', or something exotic like a symlink... */
         return svn_error_createf
           (SVN_ERR_NODE_UNKNOWN_KIND, NULL,
-           "Unknown or unexpected kind for path '%s'", path);
+           _("Unknown or unexpected kind for path '%s'"), path);
 
       /* Recursivity is taken care of by svn_wc_remove_from_revision_control, 
          and we've definitely reverted PATH at this point. */
@@ -1661,7 +1663,7 @@ svn_wc_remove_from_revision_control (svn
                                        FALSE, adm_access, pool));
       if (text_modified_p && instant_error)
         return svn_error_createf (SVN_ERR_WC_LEFT_LOCAL_MOD, NULL,
-                                  "File '%s' has local modifications",
+                                  _("File '%s' has local modifications"),
                                   name);
 
       /* Remove NAME from PATH's entries file: */
@@ -2066,7 +2068,7 @@ svn_wc_resolved_conflict (const char *pa
       SVN_ERR (svn_wc_entry (&entry, path, adm_access, FALSE, pool));
       if (! entry)
         return svn_error_createf (SVN_ERR_ENTRY_NOT_FOUND, NULL,
-                                  "'%s' is not under version control", path);
+                                  _("'%s' is not under version control"), path);
 
       SVN_ERR (resolve_found_entry_callback (path, entry, baton, pool));
     }
Index: subversion/libsvn_wc/adm_files.c
===================================================================
--- subversion/libsvn_wc/adm_files.c	(revision 9300)
+++ subversion/libsvn_wc/adm_files.c	(working copy)
@@ -41,6 +41,8 @@
 #include "adm_files.h"
 #include "entries.h"
 
+#include "svn_private_config.h"
+
 
 /*** File names in the adm area. ***/
 
@@ -195,7 +197,7 @@ svn_wc__make_adm_thing (svn_wc_adm_acces
          segfault or other obvious indicator that something went
          wrong.  Even so, not sure if it's appropriate.  Thoughts? */
       err = svn_error_create 
-        (0, NULL, "Bad type indicator");
+        (0, NULL, _("Bad type indicator"));
     }
 
   return err;
@@ -402,7 +404,7 @@ open_adm_file (apr_file_t **handle,
           /* We don't handle append.  To do so we would need to copy the
              contents into the apr_file_t once it has been opened. */
           return svn_error_create (SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-                                   "APR_APPEND not supported for adm files");
+                                   _("APR_APPEND not supported for adm files"));
         }
 
       /* Need to own the temporary file, so don't reuse an existing one. */
@@ -445,8 +447,8 @@ open_adm_file (apr_file_t **handle,
       if (APR_STATUS_IS_ENOENT(err->apr_err) && (flags & APR_WRITE))
         {
           err = svn_error_quick_wrap(err,
-                               "Your .svn/tmp directory may be missing or "
-                               "corrupt; run 'svn cleanup' and try again");
+                               _("Your .svn/tmp directory may be missing or "
+                               "corrupt; run 'svn cleanup' and try again"));
         }
     }
 
@@ -620,14 +622,14 @@ svn_wc__open_props (apr_file_t **handle,
   if (wc_format_version == 0)
     return svn_error_createf
       (SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
-       "'%s' is not a working copy", parent_dir);
+       _("'%s' is not a working copy"), parent_dir);
 
   /* Then examine the flags to know -which- kind of prop file to get. */
 
   if (base && wcprops)
     return svn_error_create (SVN_ERR_WC_PATH_NOT_FOUND, NULL,
-                             "No such thing as 'base' "
-                             "working copy properties!");
+                             _("No such thing as 'base' "
+                             "working copy properties!"));
 
   else if (base)
     {
@@ -695,14 +697,14 @@ svn_wc__close_props (apr_file_t *fp,
   if (wc_format_version == 0)
     return svn_error_createf
       (SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
-       "'%s' is not a working copy", parent_dir);
+       _("'%s' is not a working copy"), parent_dir);
 
   /* Then examine the flags to know -which- kind of prop file to get. */
 
   if (base && wcprops)
     return svn_error_create (SVN_ERR_WC_PATH_NOT_FOUND, NULL,
-                             "No such thing as 'base' "
-                             "working copy properties!");
+                             _("No such thing as 'base' "
+                             "working copy properties!"));
 
   else if (base)
     {
@@ -765,8 +767,8 @@ svn_wc__sync_props (const char *path,
 
   if (base && wcprops)
     return svn_error_create (SVN_ERR_WC_PATH_NOT_FOUND, NULL,
-                             "No such thing as 'base' "
-                             "working copy properties!");
+                             _("No such thing as 'base' "
+                             "working copy properties!"));
 
   else if (base)
     {
@@ -834,7 +836,7 @@ check_adm_exists (svn_boolean_t *exists,
       /* If got an error other than dir non-existence, then
          something's weird and we should return a genuine error. */
       return svn_error_createf (APR_ENOTDIR, NULL,
-                                "'%s' is not a directory", tmp_path);
+                                _("'%s' is not a directory"), tmp_path);
     }
   else if (kind == svn_node_none)
     {
@@ -887,7 +889,7 @@ check_adm_exists (svn_boolean_t *exists,
       SVN_ERR (svn_wc_adm_close (adm_access));
       if (!entry)
         return svn_error_createf (SVN_ERR_ENTRY_NOT_FOUND, NULL,
-                                  "No entry for '%s'", path);
+                                  _("No entry for '%s'"), path);
 
       /* The revisions must match except when adding a directory with a
          name that matches a directory scheduled for deletion. That's
@@ -907,7 +909,7 @@ check_adm_exists (svn_boolean_t *exists,
         return
           svn_error_createf
           (SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
-           "URL '%s' doesn't match existing URL '%s' in '%s'",
+           _("URL '%s' doesn't match existing URL '%s' in '%s'"),
            url, entry->url, path);
     }
 
Index: subversion/libsvn_wc/lock.c
===================================================================
--- subversion/libsvn_wc/lock.c	(revision 9300)
+++ subversion/libsvn_wc/lock.c	(working copy)
@@ -28,6 +28,8 @@
 #include "adm_files.h"
 #include "questions.h"
 
+#include "svn_private_config.h"
+
 
 
 struct svn_wc_adm_access_t
@@ -153,7 +155,7 @@ create_lock (svn_wc_adm_access_t *adm_ac
     }
 
   return svn_error_createf (SVN_ERR_WC_LOCKED, NULL,
-                            "Working copy '%s' locked",
+                            _("Working copy '%s' locked"),
                             svn_path_local_style (adm_access->path, pool));
 }
 
@@ -273,7 +275,7 @@ probe (const char **dir,
         {
           return svn_error_createf
             (SVN_ERR_WC_BAD_PATH, NULL,
-             "Path '%s' ends in '%s', which is unsupported for this operation",
+             _("Path '%s' ends in '%s', which is unsupported for this operation"),
              svn_path_local_style (path, pool), base_name);
         }
 
@@ -350,7 +352,7 @@ do_open (svn_wc_adm_access_t **adm_acces
            locked: if it's not locked call svn_wc_adm_open, if it is locked
            call svn_wc_adm_retrieve.  */
         return svn_error_createf (SVN_ERR_WC_LOCKED, NULL,
-                                  "Working copy '%s' locked",
+                                  _("Working copy '%s' locked"),
                                   path);
     }
 
@@ -368,7 +370,7 @@ do_open (svn_wc_adm_access_t **adm_acces
           /* Should we attempt to distinguish certain errors? */
           svn_error_clear (err);
           return svn_error_createf (SVN_ERR_WC_NOT_DIRECTORY, NULL,
-                                    "'%s' is not a working copy",
+                                    _("'%s' is not a working copy"),
                                     svn_path_local_style (path, pool));
         }
 
@@ -593,7 +595,7 @@ svn_wc_adm_probe_open2 (svn_wc_adm_acces
         {
           svn_error_clear (err);
           return svn_error_createf (SVN_ERR_WC_NOT_DIRECTORY, NULL,
-                                    "'%s' is not a working copy",
+                                    _("'%s' is not a working copy"),
                                     svn_path_local_style (path, pool));
         }
       else
@@ -641,7 +643,7 @@ svn_wc_adm_retrieve (svn_wc_adm_access_t
      for NULL batons. */
   if (! *adm_access)
     return svn_error_createf (SVN_ERR_WC_NOT_LOCKED, NULL,
-                              "Working copy '%s' not locked",
+                              _("Working copy '%s' not locked"),
                               path);
 
   return SVN_NO_ERROR;
@@ -835,14 +837,14 @@ svn_wc__adm_write_check (svn_wc_adm_acce
           SVN_ERR (svn_wc_locked (&locked, adm_access->path, adm_access->pool));
           if (! locked)
             return svn_error_createf (SVN_ERR_WC_NOT_LOCKED, NULL, 
-                                      "Write-lock stolen in '%s'",
+                                      _("Write-lock stolen in '%s'"),
                                       adm_access->path); 
         }
     }
   else
     {
       return svn_error_createf (SVN_ERR_WC_NOT_LOCKED, NULL, 
-                                "No write-lock in '%s'", adm_access->path); 
+                                _("No write-lock in '%s'"), adm_access->path); 
     }
 
   return SVN_NO_ERROR;
@@ -862,7 +864,7 @@ svn_wc_locked (svn_boolean_t *locked, co
     *locked = FALSE;
   else
     return svn_error_createf (SVN_ERR_WC_LOCKED, NULL,
-                              "Lock file '%s' is not a regular file",
+                              _("Lock file '%s' is not a regular file"),
                               lockfile);
     
   return SVN_NO_ERROR;
Index: subversion/libsvn_wc/translate.c
===================================================================
--- subversion/libsvn_wc/translate.c	(revision 9300)
+++ subversion/libsvn_wc/translate.c	(working copy)
@@ -45,6 +45,7 @@
 #include "adm_files.h"
 #include "translate.h"
 
+#include "svn_private_config.h"
 
 svn_error_t *
 svn_wc_translated_file (const char **xlated_p,
@@ -122,7 +123,7 @@ svn_wc_translated_file (const char **xla
         {
           return svn_error_createf
             (SVN_ERR_IO_UNKNOWN_EOL, NULL,
-             "'%s' has unknown value for svn:eol-style property",
+             _("'%s' has unknown value for svn:eol-style property"),
              vfile);
         }
 
Index: subversion/libsvn_subr/opt.c
===================================================================
--- subversion/libsvn_subr/opt.c	(revision 9300)
+++ subversion/libsvn_subr/opt.c	(working copy)
@@ -135,7 +135,7 @@ print_command_info (const svn_opt_subcom
       const apr_getopt_option_t *option;
       svn_boolean_t have_options = FALSE;
 
-      fprintf (stream, ": %s", cmd->help);
+      fprintf (stream, ": %s", gettext(cmd->help));
 
       /* Loop over all valid option codes attached to the subcommand */
       for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
@@ -144,7 +144,7 @@ print_command_info (const svn_opt_subcom
             {
               if (have_options == FALSE)
                 {
-                  fprintf (stream, "\nValid options:\n");
+                  fprintf (stream, _("\nValid options:\n"));
                   have_options = TRUE;
                 }
 
@@ -221,7 +221,7 @@ svn_opt_format_option (const char **stri
     opts = apr_pstrcat (pool, opts, " arg", NULL);
 
   if (doc)
-    opts = apr_psprintf (pool, "%-24s : %s", opts, opt->description);
+    opts = apr_psprintf (pool, "%-24s : %s", opts, gettext(opt->description));
 
   *string = opts;
 }
@@ -239,7 +239,7 @@ svn_opt_subcommand_help (const char *sub
   if (cmd)
     print_command_info (cmd, options_table, TRUE, pool, stdout);
   else
-    fprintf (stderr, "\"%s\": unknown command.\n\n", subcommand);
+    fprintf (stderr, _("\"%s\": unknown command.\n\n"), subcommand);
 }
 
 
@@ -424,7 +424,7 @@ svn_opt_parse_num_args (apr_array_header
       if (os->ind >= os->argc)
         {
           return svn_error_create (SVN_ERR_CL_ARG_PARSING_ERROR, 
-                                   0, "Too few arguments");
+                                   0, _("Too few arguments"));
         }
       array_push_str (args, os->argv[os->ind++], pool);
     }
@@ -495,7 +495,7 @@ parse_path (svn_opt_revision_t *rev,
                                       &end_revision,
                                       native_rev, subpool))
             return svn_error_createf (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                                      "Syntax error parsing revision '%s'",
+                                      _("Syntax error parsing revision '%s'"),
                                       path + i + 1);
 
           *truepath = apr_pstrndup (pool, path, i);
@@ -569,7 +569,7 @@ svn_opt_args_to_target_array (apr_array_
           /* No need to canonicalize a URL's case or path separators. */
           if (! svn_path_is_uri_safe (utf8_target))
             return svn_error_createf (SVN_ERR_BAD_URL, 0,
-                                      "URL '%s' is not properly URI-encoded",
+                                      _("URL '%s' is not properly URI-encoded"),
                                       utf8_target);
                                       
           /* strip any trailing '/' */
@@ -598,7 +598,7 @@ svn_opt_args_to_target_array (apr_array_
             ;
           else
             return svn_error_createf (apr_err, NULL,
-                                      "Error resolving case of '%s'",
+                                      _("Error resolving case of '%s'"),
                                       utf8_target);
 
           /* convert back to UTF-8. */
@@ -670,21 +670,19 @@ print_version_info (const char *pgm_name
                     svn_boolean_t quiet,
                     apr_pool_t *pool)
 {
-  static const char info[] =
-    "Copyright (C) 2000-2004 CollabNet.\n"
-    "Subversion is open source software, see http://subversion.tigris.org/\n"
-    "This product includes software developed by CollabNet "
-    "(http://www.Collab.Net/).\n";
-
   if (quiet)
     {
       printf ("%s\n", SVN_VER_NUMBER);
       return SVN_NO_ERROR;
     }
 
-  printf ("%s, version %s\n", pgm_name, SVN_VERSION);
-  printf ("   compiled %s, %s\n\n", __DATE__, __TIME__);
-  printf ("%s\n", info);
+  printf (_("%s, version %s\n"
+            "   compiled %s, %s\n\n"), pgm_name, SVN_VERSION,
+                                      __DATE__, __TIME__);
+  fputs (_("Copyright (C) 2000-2004 CollabNet.\n"
+    "Subversion is open source software, see http://subversion.tigris.org/\n"
+    "This product includes software developed by CollabNet "
+    "(http://www.Collab.Net/).\n\n"), stdout);
 
   if (footer)
     {
Index: subversion/svnlook/main.c
===================================================================
--- subversion/svnlook/main.c	(revision 9300)
+++ subversion/svnlook/main.c	(working copy)
@@ -44,6 +44,8 @@
 #include "svn_props.h"
 #include "svn_diff.h"
 
+#include "svn_private_config.h"
+
 
 /*** Some convenience macros and types. ***/
 
@@ -84,28 +86,28 @@ enum 
 static const apr_getopt_option_t options_table[] =
   {
     {"help",          'h', 0,
-     "show help on a subcommand"},
+     N_("show help on a subcommand")},
 
     {NULL,            '?', 0,
-     "show help on a subcommand"},
+     N_("show help on a subcommand")},
 
     {"version",       svnlook__version, 0,
-     "show version information"},
+     N_("show version information")},
 
     {"revision",      'r', 1,
-     "specify revision number ARG"},
+     N_("specify revision number ARG")},
 
     {"transaction",  't', 1,
-     "specify transaction name ARG"},
+     N_("specify transaction name ARG")},
 
     {"verbose",  'v', 0,
-     "be verbose"},
+     N_("be verbose")},
 
     {"show-ids",      svnlook__show_ids, 0,
-     "show node revision ids for each path"},
+     N_("show node revision ids for each path")},
 
     {"no-diff-deleted", svnlook__no_diff_deleted, 0,
-     "do not print differences for deleted files"},
+     N_("do not print differences for deleted files")},
 
     {0,               0, 0, 0}
   };
@@ -117,82 +119,82 @@ static const apr_getopt_option_t options
 static const svn_opt_subcommand_desc_t cmd_table[] =
   {
     {"author", subcommand_author, {0},
-     "usage: svnlook author REPOS_PATH\n\n"
-     "Print the author.\n",
+     N_("usage: svnlook author REPOS_PATH\n\n"
+     "Print the author.\n"),
      {'r', 't'} },
     
     {"cat", subcommand_cat, {0},
-     "usage: svnlook cat REPOS_PATH FILE_PATH\n\n"
-     "Print the contents of a file.  Leading '/' on FILE_PATH is optional.\n",
+     N_("usage: svnlook cat REPOS_PATH FILE_PATH\n\n"
+     "Print the contents of a file.  Leading '/' on FILE_PATH is optional.\n"),
      {'r', 't'} },
     
     {"changed", subcommand_changed, {0},
-     "usage: svnlook changed REPOS_PATH\n\n"
-     "Print the paths that were changed.\n",
+     N_("usage: svnlook changed REPOS_PATH\n\n"
+     "Print the paths that were changed.\n"),
      {'r', 't'} },
     
     {"date", subcommand_date, {0},
-     "usage: svnlook date REPOS_PATH\n\n"
-     "Print the datestamp.\n",
+     N_("usage: svnlook date REPOS_PATH\n\n"
+     "Print the datestamp.\n"),
      {'r', 't'} },
 
     {"diff", subcommand_diff, {0},
-     "usage: svnlook diff REPOS_PATH\n\n"
-     "Print GNU-style diffs of changed files and properties.\n",
+     N_("usage: svnlook diff REPOS_PATH\n\n"
+     "Print GNU-style diffs of changed files and properties.\n"),
      {'r', 't', svnlook__no_diff_deleted} },
 
     {"dirs-changed", subcommand_dirschanged, {0},
-     "usage: svnlook dirs-changed REPOS_PATH\n\n"
+     N_("usage: svnlook dirs-changed REPOS_PATH\n\n"
      "Print the directories that were themselves changed (property edits)\n"
-     "or whose file children were changed.\n",
+     "or whose file children were changed.\n"),
      {'r', 't'} },
     
     {"help", subcommand_help, {"?", "h"},
-     "usage: svnlook help [SUBCOMMAND...]\n\n"
-     "Describe the usage of this program or its subcommands.\n",
+     N_("usage: svnlook help [SUBCOMMAND...]\n\n"
+     "Describe the usage of this program or its subcommands.\n"),
      {svnlook__version} },
 
     {"history", subcommand_history, {0},
-     "usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n\n"
+     N_("usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n\n"
      "Print information about the history of a path in the repository (or\n"
-     "the root directory if no path is supplied).\n",
+     "the root directory if no path is supplied).\n"),
      {'r', svnlook__show_ids} },
 
     {"info", subcommand_info, {0},
-     "usage: svnlook info REPOS_PATH\n\n"
-     "Print the author, datestamp, log message size, and log message.\n",
+     N_("usage: svnlook info REPOS_PATH\n\n"
+     "Print the author, datestamp, log message size, and log message.\n"),
      {'r', 't'} },
 
     {"log", subcommand_log, {0},
-     "usage: svnlook log REPOS_PATH\n\n"
-     "Print the log message.\n",
+     N_("usage: svnlook log REPOS_PATH\n\n"
+     "Print the log message.\n"),
      {'r', 't'} },
 
     {"propget", subcommand_pget, {"pget", "pg"},
-     "usage: svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n\n"
-     "Print the raw value of a property on a path in the repository.\n",
+     N_("usage: svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n\n"
+     "Print the raw value of a property on a path in the repository.\n"),
      {'r', 't'} },
 
     {"proplist", subcommand_plist, {"plist", "pl"},
-     "usage: svnlook proplist REPOS_PATH PATH_IN_REPOS\n\n"
+     N_("usage: svnlook proplist REPOS_PATH PATH_IN_REPOS\n\n"
      "List the properties of a path in the repository.\n"
-     "With -v, show the property values too.\n",
+     "With -v, show the property values too.\n"),
      {'r', 't', 'v'} },
 
     {"tree", subcommand_tree, {0},
-     "usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n\n"
+     N_("usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n\n"
      "Print the tree, starting at PATH_IN_REPOS (if supplied, at the root\n"
-     "of the tree otherwise), optionally showing node revision ids.\n",
+     "of the tree otherwise), optionally showing node revision ids.\n"),
      {'r', 't', svnlook__show_ids} },
 
     {"uuid", subcommand_uuid, {0},
-     "usage: svnlook uuid REPOS_PATH\n\n"
-     "Print the repository's UUID.\n",
+     N_("usage: svnlook uuid REPOS_PATH\n\n"
+     "Print the repository's UUID.\n"),
      {0} },
 
     {"youngest", subcommand_youngest, {0},
-     "usage: svnlook youngest REPOS_PATH\n\n"
-     "Print the youngest revision number.\n",
+     N_("usage: svnlook youngest REPOS_PATH\n\n"
+     "Print the youngest revision number.\n"),
      {0} },
 
     { NULL, NULL, {0}, NULL, {0} }
@@ -711,7 +713,7 @@ display_prop_diffs (const apr_array_head
       else
         orig_value = NULL;
 
-      printf ("Name: %s\n", pc->name);
+      printf (_("Name: %s\n"), pc->name);
 
       /* For now, we have a rather simple heuristic: if this is an
          "svn:" property, then assume the value is UTF-8 and must
@@ -858,9 +860,9 @@ print_diff_tree (svn_fs_root_t *root,
     {
       if (! is_copy)
         printf ("%s: %s\n", 
-                ((node->action == 'A') ? "Added" : 
-                 ((node->action == 'D') ? "Deleted" :
-                  ((node->action == 'R') ? "Modified" : "Index"))),
+                ((node->action == 'A') ? _("Added") : 
+                 ((node->action == 'D') ? _("Deleted") :
+                  ((node->action == 'R') ? _("Modified") : _("Index")))),
                 path_native);
 
       if ((! no_diff_deleted) || (node->action != 'D'))
@@ -872,7 +874,7 @@ print_diff_tree (svn_fs_root_t *root,
 
           if (binary)
             {
-              printf ("(Binary files differ)\n");
+              printf (_("(Binary files differ)\n"));
             }
           else
             {
@@ -1012,7 +1014,7 @@ print_tree (svn_fs_root_t *root,
       svn_string_t *unparsed_id = NULL;
       if (id)
         unparsed_id = svn_fs_unparse_id (id, pool);
-      printf (" <%s>", unparsed_id ? unparsed_id->data : "unknown");
+      printf (" <%s>", unparsed_id ? unparsed_id->data : _("unknown"));
     }
   printf ("\n");
 
@@ -1131,7 +1133,7 @@ do_dirs_changed (svnlook_ctxt_t *c, apr_
   if (! SVN_IS_VALID_REVNUM (base_rev_id))
     return svn_error_createf 
       (SVN_ERR_FS_NO_SUCH_REVISION, NULL,
-       "Transaction '%s' is not based on a revision; how odd",
+       _("Transaction '%s' is not based on a revision; how odd"),
        c->txn_name);
   
   SVN_ERR (generate_delta_tree (&tree, c->repos, root, base_rev_id, 
@@ -1161,10 +1163,10 @@ verify_path (svn_node_kind_t *kind,
       if (svn_path_is_url (path))  /* check for a common mistake. */
         return svn_error_createf
           (SVN_ERR_FS_NOT_FOUND, NULL,
-           "'%s' is a URL, probably should be a path", path);
+           _("'%s' is a URL, probably should be a path"), path);
       else
         return svn_error_createf 
-          (SVN_ERR_FS_NOT_FOUND, NULL, "Path '%s' does not exist", path);
+          (SVN_ERR_FS_NOT_FOUND, NULL, _("Path '%s' does not exist"), path);
     }
 
   return SVN_NO_ERROR;
@@ -1188,7 +1190,7 @@ do_cat (svnlook_ctxt_t *c, const char *p
 
   if (kind != svn_node_file)
     return svn_error_createf 
-      (SVN_ERR_FS_NOT_FILE, NULL, "Path '%s' is not a file", path);
+      (SVN_ERR_FS_NOT_FILE, NULL, _("Path '%s' is not a file"), path);
 
   /* Else. */
 
@@ -1222,7 +1224,7 @@ do_changed (svnlook_ctxt_t *c, apr_pool_
   if (! SVN_IS_VALID_REVNUM (base_rev_id))
     return svn_error_createf 
       (SVN_ERR_FS_NO_SUCH_REVISION, NULL,
-       "Transaction '%s' is not based on a revision; how odd",
+       _("Transaction '%s' is not based on a revision; how odd"),
        c->txn_name);
   
   SVN_ERR (generate_delta_tree (&tree, c->repos, root, base_rev_id, 
@@ -1263,7 +1265,7 @@ create_unique_tmpdir (const char **name,
       if (apr_err)
         {
           *name = NULL;
-          return svn_error_wrap_apr (apr_err, "Can't create directory '%s'",
+          return svn_error_wrap_apr (apr_err, _("Can't create directory '%s'"),
                                      unique_name);
         }
       else
@@ -1275,7 +1277,7 @@ create_unique_tmpdir (const char **name,
 
   *name = NULL;
   return svn_error_createf (SVN_ERR_IO_UNIQUE_NAMES_EXHAUSTED,
-                            NULL, "Can't create temporary directory");
+                            NULL, _("Can't create temporary directory"));
 }
 
 /* Print some diff-y stuff in a TBD way. :-) */
@@ -1295,7 +1297,7 @@ do_diff (svnlook_ctxt_t *c, apr_pool_t *
   if (! SVN_IS_VALID_REVNUM (base_rev_id))
     return svn_error_createf 
       (SVN_ERR_FS_NO_SUCH_REVISION, NULL,
-       "Transaction '%s' is not based on a revision; how odd",
+       _("Transaction '%s' is not based on a revision; how odd"),
        c->txn_name);
   
   SVN_ERR (generate_delta_tree (&tree, c->repos, root, base_rev_id, 
@@ -1375,13 +1377,13 @@ do_history (svnlook_ctxt_t *c, 
 
   if (show_ids)
     {
-      printf ("REVISION   PATH <ID>\n");
-      printf ("--------   ---------\n");
+      printf (_("REVISION   PATH <ID>\n"
+                "--------   ---------\n"));
     }
   else
     {
-      printf ("REVISION   PATH\n");
-      printf ("--------   ----\n");
+      printf (_("REVISION   PATH\n"
+                "--------   ----\n"));
     }
 
   /* Call our history crawler.  We want the whole lifetime of the path
@@ -1417,7 +1419,7 @@ do_pget (svnlook_ctxt_t *c,
   if (prop == NULL)
     return svn_error_createf
       (SVN_ERR_PROPERTY_NOT_FOUND, NULL,
-       "Property '%s' not found on path '%s'", propname, path);
+       _("Property '%s' not found on path '%s'"), propname, path);
 
   /* Else. */
 
@@ -1571,7 +1573,7 @@ subcommand_cat (apr_getopt_t *os, void *
   if (opt_state->arg1 == NULL)
     return svn_error_createf
       (SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
-       "Missing repository path argument");
+       _("Missing repository path argument"));
 
   SVN_ERR (get_ctxt_baton (&c, opt_state, pool));
   SVN_ERR (do_cat (c, opt_state->arg1, pool));
@@ -1632,13 +1634,13 @@ subcommand_help (apr_getopt_t *os, void 
 {
   struct svnlook_opt_state *opt_state = baton;
   const char *header =
-    "general usage: svnlook SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
+    _("general usage: svnlook SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
     "Note: any subcommand which takes the '--revision' and '--transaction'\n"
     "      options will, if invoked without one of those options, act on\n"
     "      the repository's youngest revision.\n"
     "Type \"svnlook help <subcommand>\" for help on a specific subcommand.\n"
     "\n"
-    "Available subcommands:\n";
+    "Available subcommands:\n");
 
   SVN_ERR (svn_opt_print_help (os, "svnlook", 
                                opt_state ? opt_state->version : FALSE, 
@@ -1702,13 +1704,13 @@ subcommand_pget (apr_getopt_t *os, void 
     {
       return svn_error_createf
         (SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
-         "Missing propname and repository path arguments");
+         _("Missing propname and repository path arguments"));
     }
   else if (opt_state->arg2 == NULL)
     {
       return svn_error_createf
         (SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
-         "Missing propname or repository path argument");
+         _("Missing propname or repository path argument"));
     }
 
   SVN_ERR (get_ctxt_baton (&c, opt_state, pool));
@@ -1726,7 +1728,7 @@ subcommand_plist (apr_getopt_t *os, void
   if (opt_state->arg1 == NULL)
     return svn_error_createf
       (SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
-       "Missing repository path argument");
+       _("Missing repository path argument"));
 
   SVN_ERR (get_ctxt_baton (&c, opt_state, pool));
   SVN_ERR (do_plist (c, opt_state->arg1, opt_state->verbose, pool));
@@ -1846,7 +1854,7 @@ main (int argc, const char * const *argv
           if (! SVN_IS_VALID_REVNUM (opt_state.rev))
             SVN_INT_ERR (svn_error_create
                          (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                          "Invalid revision number supplied"));
+                          _("Invalid revision number supplied")));
           break;
 
         case 't':
@@ -1887,8 +1895,8 @@ main (int argc, const char * const *argv
   if ((opt_state.rev != SVN_INVALID_REVNUM) && opt_state.txn)
     SVN_INT_ERR (svn_error_create 
                  (SVN_ERR_CL_MUTUALLY_EXCLUSIVE_ARGS, NULL,
-                  "The '--transaction' (-t) and '--revision' (-r) arguments "
-                  "can not co-exist"));
+                  _("The '--transaction' (-t) and '--revision' (-r) arguments "
+                  "can not co-exist")));
 
   /* If the user asked for help, then the rest of the arguments are
      the names of subcommands to get help on (if any), or else they're
@@ -1903,7 +1911,7 @@ main (int argc, const char * const *argv
     {
       if (os->ind >= os->argc)
         {
-          fprintf (stderr, "subcommand argument required\n");
+          fprintf (stderr, _("subcommand argument required\n"));
           subcommand_help (NULL, NULL, pool);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
@@ -1914,7 +1922,7 @@ main (int argc, const char * const *argv
           subcommand = svn_opt_get_canonical_subcommand (cmd_table, first_arg);
           if (subcommand == NULL)
             {
-              fprintf (stderr, "unknown command: '%s'\n", first_arg);
+              fprintf (stderr, _("unknown command: '%s'\n"), first_arg);
               subcommand_help (NULL, NULL, pool);
               svn_pool_destroy (pool);
               return EXIT_FAILURE;
@@ -1944,7 +1952,7 @@ main (int argc, const char * const *argv
 
       if (repos_path == NULL)
         {
-          fprintf (stderr, "repository argument required\n");
+          fprintf (stderr, _("repository argument required\n"));
           subcommand_help (NULL, NULL, pool);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
@@ -1952,7 +1960,7 @@ main (int argc, const char * const *argv
       else if (svn_path_is_url (repos_path))
         {
           fprintf (stderr,
-                   "'%s' is a URL when it should be a path\n",
+                   _("'%s' is a URL when it should be a path\n"),
                    repos_path);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
@@ -1998,8 +2006,8 @@ main (int argc, const char * const *argv
             svn_opt_get_option_from_code (opt_id, options_table);
           svn_opt_format_option (&optstr, badopt, FALSE, pool);
           fprintf (stderr,
-                   "subcommand '%s' doesn't accept option '%s'\n"
-                   "Type 'svnlook help %s' for usage.\n",
+                   _("subcommand '%s' doesn't accept option '%s'\n"
+                   "Type 'svnlook help %s' for usage.\n"),
                    subcommand->name, optstr, subcommand->name);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
Index: subversion/clients/cmdline/props.c
===================================================================
--- subversion/clients/cmdline/props.c	(revision 9300)
+++ subversion/clients/cmdline/props.c	(working copy)
@@ -33,6 +33,7 @@
 #include "svn_subst.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
 
 
 
@@ -41,8 +42,8 @@ svn_cl__revprop_no_rev_error (apr_pool_t
 {
   return svn_error_create
     (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-     "Must specify revision explicitly when operating on a "
-     "revision property");
+     _("Must specify revision explicitly when operating on a "
+     "revision property"));
 }
 
 
Index: subversion/clients/cmdline/checkout-cmd.c
===================================================================
--- subversion/clients/cmdline/checkout-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/checkout-cmd.c	(working copy)
@@ -31,6 +31,8 @@
 #include "svn_pools.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
+
 
 /*** Code. ***/
 
@@ -121,7 +123,7 @@ svn_cl__checkout (apr_getopt_t *os,
       if (! svn_path_is_url (repos_url))
         return svn_error_createf 
           (SVN_ERR_BAD_URL, NULL, 
-           "'%s' does not appear to be a URL", repos_url);
+           _("'%s' does not appear to be a URL"), repos_url);
 
       repos_url = svn_path_canonicalize (repos_url, subpool);
 
Index: subversion/clients/cmdline/mkdir-cmd.c
===================================================================
--- subversion/clients/cmdline/mkdir-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/mkdir-cmd.c	(working copy)
@@ -31,6 +31,7 @@
 #include "svn_error.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
 
 
 /*** Code. ***/
@@ -70,7 +71,7 @@ svn_cl__mkdir (apr_getopt_t *os,
     {
       if (err->apr_err == APR_EEXIST)
         return svn_error_quick_wrap
-          (err, "Try 'svn add' or 'svn add --non-recursive' instead?");
+          (err, _("Try 'svn add' or 'svn add --non-recursive' instead?"));
       else
         return err;
     }
Index: subversion/clients/cmdline/diff-cmd.c
===================================================================
--- subversion/clients/cmdline/diff-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/diff-cmd.c	(working copy)
@@ -32,6 +32,8 @@
 #include "svn_types.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
+
 
 /*** Code. ***/
 
@@ -60,9 +62,9 @@ svn_cl__diff (apr_getopt_t *os,
   /* Get an apr_file_t representing stdout and stderr, which is where
      we'll have the external 'diff' program print to. */
   if ((status = apr_file_open_stdout (&outfile, pool)))
-    return svn_error_wrap_apr (status, "Can't open stdout");
+    return svn_error_wrap_apr (status, _("Can't open stdout"));
   if ((status = apr_file_open_stderr (&errfile, pool)))
-    return svn_error_wrap_apr (status, "Can't open stderr");
+    return svn_error_wrap_apr (status, _("Can't open stderr"));
 
   if (! opt_state->old_target && ! opt_state->new_target
       && opt_state->start_revision.kind != svn_opt_revision_unspecified
Index: subversion/clients/cmdline/util.c
===================================================================
--- subversion/clients/cmdline/util.c	(revision 9300)
+++ subversion/clients/cmdline/util.c	(working copy)
@@ -120,8 +120,8 @@ svn_cl__edit_externally (const char **ed
   if (! editor)
     return svn_error_create 
       (SVN_ERR_CL_NO_EXTERNAL_EDITOR, NULL,
-       "None of the environment variables SVN_EDITOR, VISUAL or EDITOR is "
-       "set, and no 'editor-cmd' run-time configuration option was found");
+       _("None of the environment variables SVN_EDITOR, VISUAL or EDITOR is "
+       "set, and no 'editor-cmd' run-time configuration option was found"));
 
   /* Convert file contents from UTF-8 */
   SVN_ERR (svn_utf_cstring_from_utf8 (&contents_native, contents, pool));
@@ -130,7 +130,7 @@ svn_cl__edit_externally (const char **ed
      into tmpfile_name */
   apr_err = apr_filepath_get (&old_cwd, APR_FILEPATH_NATIVE, pool);
   if (apr_err)
-    return svn_error_wrap_apr (apr_err, "Can't get working directory");
+    return svn_error_wrap_apr (apr_err, _("Can't get working directory"));
 
   /* APR doesn't like "" directories */
   if (base_dir[0] == '\0')
@@ -141,7 +141,7 @@ svn_cl__edit_externally (const char **ed
   if (apr_err)
     {
       return svn_error_wrap_apr
-        (apr_err, "Can't change working directory to '%s'", base_dir);
+        (apr_err, _("Can't change working directory to '%s'"), base_dir);
     }
 
   /*** From here on, any problems that occur require us to cd back!! ***/
@@ -167,7 +167,7 @@ svn_cl__edit_externally (const char **ed
   /* Make sure the whole CONTENTS were written, else return an error. */
   if (apr_err)
     {
-      err = svn_error_wrap_apr (apr_err, "Can't write to '%s'", tmpfile_name);
+      err = svn_error_wrap_apr (apr_err, _("Can't write to '%s'"), tmpfile_name);
       goto cleanup;
     }
 
@@ -181,7 +181,7 @@ svn_cl__edit_externally (const char **ed
                       APR_FINFO_MTIME | APR_FINFO_SIZE, pool);
   if (apr_err)
     {
-      err = svn_error_wrap_apr (apr_err, "Can't stat '%s'", tmpfile_name);
+      err = svn_error_wrap_apr (apr_err, _("Can't stat '%s'"), tmpfile_name);
       goto cleanup;
     }
 
@@ -196,7 +196,7 @@ svn_cl__edit_externally (const char **ed
       /* Extracting any meaning from sys_err is platform specific, so just
          use the raw value. */
       err =  svn_error_createf (SVN_ERR_EXTERNAL_PROGRAM, NULL,
-                                "system('%s') returned %d", cmd, sys_err);
+                                _("system('%s') returned %d"), cmd, sys_err);
       goto cleanup;
     }
   
@@ -205,7 +205,7 @@ svn_cl__edit_externally (const char **ed
                       APR_FINFO_MTIME | APR_FINFO_SIZE, pool);
   if (apr_err)
     {
-      err = svn_error_wrap_apr (apr_err, "Can't stat '%s'", tmpfile_name);
+      err = svn_error_wrap_apr (apr_err, _("Can't stat '%s'"), tmpfile_name);
       goto cleanup;
     }
   
@@ -252,7 +252,7 @@ svn_cl__edit_externally (const char **ed
   if (apr_err)
     {
       svn_handle_error (svn_error_wrap_apr
-                        (apr_err, "Can't restore working directory"),
+                        (apr_err, _("Can't restore working directory")),
                         stderr, TRUE /* fatal */);
     }
 
@@ -290,7 +290,7 @@ svn_cl__make_log_msg_baton (void **baton
              a deliberate encoding, and even if it is, we still
              can't handle it. */
           return svn_error_create (SVN_ERR_CL_BAD_LOG_MESSAGE, NULL,
-                                   "Log message contains a zero byte");
+                                   _("Log message contains a zero byte"));
         }
       lmb->message = opt_state->filedata->data;
     }      
@@ -348,7 +348,7 @@ svn_cl__cleanup_log_msg (void *log_msg_b
      svn_error_create (commit_err->apr_err,
                        svn_error_createf (commit_err->apr_err, NULL,
                                           "   '%s'", lmb->tmpfile_left),
-                       "Your commit message was left in a temporary file:"));
+                       _("Your commit message was left in a temporary file:")));
   return commit_err;
 }
 
@@ -516,9 +516,9 @@ svn_cl__get_log_message (const char **lo
         {
           if (err->apr_err == SVN_ERR_CL_NO_EXTERNAL_EDITOR)
             err = svn_error_quick_wrap 
-              (err, "Could not use external editor to fetch log message; "
+              (err, _("Could not use external editor to fetch log message; "
                "consider setting the $SVN_EDITOR environment variable "
-               "or using the --message (-m) or --file (-F) options");
+               "or using the --message (-m) or --file (-F) options"));
           return err;
         }
 
@@ -551,8 +551,8 @@ svn_cl__get_log_message (const char **lo
         {
           const char *reply;
           svn_cl__prompt_user (&reply,
-                               "\nLog message unchanged or not specified\n"
-                               "a)bort, c)ontinue, e)dit\n", pool);
+                               _("\nLog message unchanged or not specified\n"
+                               "a)bort, c)ontinue, e)dit\n"), pool);
           if (reply)
             {
               char letter = apr_tolower (reply[0]);
Index: subversion/clients/cmdline/blame-cmd.c
===================================================================
--- subversion/clients/cmdline/blame-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/blame-cmd.c	(working copy)
@@ -18,6 +18,7 @@
 
 
 /*** Includes. ***/
+
 #include "svn_client.h"
 #include "svn_error.h"
 #include "svn_pools.h"
@@ -25,6 +26,8 @@
 #include "svn_time.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
+
 typedef struct
 {
   svn_cl__opt_state_t *opt_state;
@@ -137,7 +140,7 @@ svn_cl__blame (apr_getopt_t *os,
         {
           if (err->apr_err == SVN_ERR_CLIENT_IS_BINARY_FILE)
             {
-              printf ("Skipping binary file: '%s'\n", target);
+              printf (_("Skipping binary file: '%s'\n"), target);
               svn_error_clear (err);
             }
           else
Index: subversion/clients/cmdline/prompt.c
===================================================================
--- subversion/clients/cmdline/prompt.c	(revision 9300)
+++ subversion/clients/cmdline/prompt.c	(working copy)
@@ -33,7 +33,7 @@
 #include "svn_error.h"
 #include "cl.h"
 
-
+#include "svn_private_config.h"
 
 
 /* Set @a *result to the result of prompting the user with @a
@@ -56,7 +56,7 @@ prompt (const char **result,
 
   status = apr_file_open_stdin (&fp, pool);
   if (status)
-    return svn_error_wrap_apr (status, "Can't open stdin");
+    return svn_error_wrap_apr (status, _("Can't open stdin"));
 
   SVN_ERR (svn_cmdline_cstring_from_utf8 (&prompt_stdout, prompt_msg, pool));
 
@@ -70,7 +70,7 @@ prompt (const char **result,
         {
           status = apr_file_getc (&c, fp);
           if (status && ! APR_STATUS_IS_EOF(status))
-            return svn_error_wrap_apr (status, "Can't read stdin");
+            return svn_error_wrap_apr (status, _("Can't read stdin"));
 
           if (saw_first_half_of_eol)
             {
@@ -104,7 +104,7 @@ prompt (const char **result,
 
       status = apr_password_get (prompt_stdout, strbuf->data, &bufsize);
       if (status)
-        return svn_error_wrap_apr (status, "Can't get password");
+        return svn_error_wrap_apr (status, _("Can't get password"));
     }
 
   SVN_ERR (svn_cmdline_cstring_to_utf8 (result, strbuf->data, pool));
@@ -128,7 +128,7 @@ maybe_print_realm (const char *realm, ap
   if (realm)
     {
       SVN_ERR (svn_cmdline_cstring_from_utf8 (&realm_native, realm, pool));
-      fprintf (stderr, "Authentication realm: %s\n", realm_native);
+      fprintf (stderr, _("Authentication realm: %s\n"), realm_native);
       fflush (stderr);
     }
 
@@ -153,9 +153,9 @@ svn_cl__auth_simple_prompt (svn_auth_cre
   if (username)
     ret->username = apr_pstrdup (pool, username);
   else
-    SVN_ERR (prompt (&(ret->username), "Username: ", FALSE, pool));
+    SVN_ERR (prompt (&(ret->username), _("Username: "), FALSE, pool));
 
-  pass_prompt = apr_psprintf (pool, "Password for '%s': ", ret->username);
+  pass_prompt = apr_psprintf (pool, _("Password for '%s': "), ret->username);
   SVN_ERR (prompt (&(ret->password), pass_prompt, TRUE, pool));
   ret->may_save = may_save;
   *cred_p = ret;
@@ -175,7 +175,7 @@ svn_cl__auth_username_prompt (svn_auth_c
 
   SVN_ERR (maybe_print_realm (realm, pool));
 
-  SVN_ERR (prompt (&(ret->username), "Username: ", FALSE, pool));
+  SVN_ERR (prompt (&(ret->username), _("Username: "), FALSE, pool));
   ret->may_save = may_save;
   *cred_p = ret;
   return SVN_NO_ERROR;
@@ -196,47 +196,47 @@ svn_cl__auth_ssl_server_trust_prompt (
   const char *choice;
   svn_stringbuf_t *msg;
   svn_stringbuf_t *buf = svn_stringbuf_createf
-    (pool, "Error validating server certificate for '%s':\n", realm);
+    (pool, _("Error validating server certificate for '%s':\n"), realm);
 
   if (failures & SVN_AUTH_SSL_UNKNOWNCA)
     {
       svn_stringbuf_appendcstr
         (buf,
-         " - The certificate is not issued by a trusted authority. Use the\n"
-         "   fingerprint to validate the certificate manually!\n");
+         _(" - The certificate is not issued by a trusted authority. Use the\n"
+         "   fingerprint to validate the certificate manually!\n"));
     }
 
   if (failures & SVN_AUTH_SSL_CNMISMATCH)
     {
       svn_stringbuf_appendcstr
-        (buf, " - The certificate hostname does not match.\n");
+        (buf, _(" - The certificate hostname does not match.\n"));
     } 
 
   if (failures & SVN_AUTH_SSL_NOTYETVALID)
     {
       svn_stringbuf_appendcstr
-        (buf, " - The certificate is not yet valid.\n");
+        (buf, _(" - The certificate is not yet valid.\n"));
     }
 
   if (failures & SVN_AUTH_SSL_EXPIRED)
     {
       svn_stringbuf_appendcstr
-        (buf, " - The certificate has expired.\n");
+        (buf, _(" - The certificate has expired.\n"));
     }
 
   if (failures & SVN_AUTH_SSL_OTHER)
     {
       svn_stringbuf_appendcstr
-        (buf, " - The certificate has an unknown error.\n");
+        (buf, _(" - The certificate has an unknown error.\n"));
     }
 
   msg = svn_stringbuf_createf
     (pool,
-     "Certificate information:\n"
+     _("Certificate information:\n"
      " - Hostname: %s\n"
      " - Valid: from %s until %s\n"
      " - Issuer: %s\n"
-     " - Fingerprint: %s\n",
+     " - Fingerprint: %s\n"),
      cert_info->hostname,
      cert_info->valid_from,
      cert_info->valid_until,
@@ -247,11 +247,11 @@ svn_cl__auth_ssl_server_trust_prompt (
   if (may_save)
     {
       svn_stringbuf_appendcstr
-        (buf, "(R)eject, accept (t)emporarily or accept (p)ermanently? ");
+        (buf, _("(R)eject, accept (t)emporarily or accept (p)ermanently? "));
     }
   else
     {
-      svn_stringbuf_appendcstr (buf, "(R)eject or accept (t)emporarily? ");
+      svn_stringbuf_appendcstr (buf, _("(R)eject or accept (t)emporarily? "));
     }
   SVN_ERR (prompt (&choice, buf->data, FALSE, pool));
 
@@ -288,7 +288,7 @@ svn_cl__auth_ssl_client_cert_prompt (svn
   const char *cert_file = NULL;
 
   SVN_ERR (maybe_print_realm (realm, pool));
-  SVN_ERR (prompt (&cert_file, "Client certificate filename: ", FALSE, pool));
+  SVN_ERR (prompt (&cert_file, _("Client certificate filename: "), FALSE, pool));
 
   cred = apr_palloc (pool, sizeof(*cred));
   cred->cert_file = cert_file;
@@ -310,7 +310,7 @@ svn_cl__auth_ssl_client_cert_pw_prompt (
 {
   svn_auth_cred_ssl_client_cert_pw_t *cred = NULL;
   const char *result;
-  const char *text = apr_psprintf (pool, "Passphrase for '%s': ", realm);
+  const char *text = apr_psprintf (pool, _("Passphrase for '%s': "), realm);
 
   SVN_ERR (prompt (&result, text, TRUE, pool));
 
Index: subversion/clients/cmdline/log-cmd.c
===================================================================
--- subversion/clients/cmdline/log-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/log-cmd.c	(working copy)
@@ -39,6 +39,8 @@
 #include "svn_subst.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
+
 
 /*** Code. ***/
 
@@ -203,7 +205,7 @@ log_message_receiver (void *baton,
      for more on the fallback fuzzy conversions below. */
 
   if (author == NULL)
-    author = "(no author)";
+    author = _("(no author)");
 
   err = svn_cmdline_cstring_from_utf8 (&author_stdout, author, pool);
   if (err && (APR_STATUS_IS_EINVAL (err->apr_err)))
@@ -225,7 +227,7 @@ log_message_receiver (void *baton,
       SVN_ERR (svn_cmdline_cstring_from_utf8 (&date_stdout, date_utf8, pool));
     }
   else
-    date_stdout = "(no date)";
+    date_stdout = _("(no date)");
   
   if (! lb->omit_log_message)
     {
Index: subversion/clients/cmdline/help-cmd.c
===================================================================
--- subversion/clients/cmdline/help-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/help-cmd.c	(working copy)
@@ -29,25 +29,11 @@
 #include "svn_utf.h"
 #include "cl.h"
 
-
-/*** Code. ***/
+#include "svn_private_config.h"
 
-const char svn_cl__help_header[] =
-    "usage: svn <subcommand> [options] [args]\n"
-    "Type \"svn help <subcommand>\" for help on a specific subcommand.\n"
-    "\n"
-    "Most subcommands take file and/or directory arguments, recursing\n"
-    "on the directories.  If no arguments are supplied to such a\n"
-    "command, it will recurse on the current directory (inclusive) by\n" 
-    "default.\n"
-    "\n"
-    "Available subcommands:\n";
-
-const char svn_cl__help_footer[] =
-    "Subversion is a tool for version control.\n"
-    "For additional information, see http://subversion.tigris.org/\n"
-    "\n";
 
+
+/*** Code. ***/
 
 /* This implements the `svn_opt_subcommand_t' interface. */
 svn_error_t *
@@ -73,15 +59,25 @@ svn_cl__help (apr_getopt_t *os,
   svn_stringbuf_appendstr (ra_desc_all, ra_desc_body);
 
   SVN_ERR (svn_opt_print_help (os,
-                               "svn",   /* ### erm, derive somehow? */
-                               opt_state ? opt_state->version : FALSE,
-                               opt_state ? opt_state->quiet : FALSE,
-                               ra_desc_all->data,
-                               svn_cl__help_header,
-                               svn_cl__cmd_table,
-                               svn_cl__options,
-                               svn_cl__help_footer,
-                               pool));
+    "svn",   /* ### erm, derive somehow? */
+    opt_state ? opt_state->version : FALSE,
+    opt_state ? opt_state->quiet : FALSE,
+    ra_desc_all->data,
+    _("usage: svn <subcommand> [options] [args]\n"
+    "Type \"svn help <subcommand>\" for help on a specific subcommand.\n"
+    "\n"
+    "Most subcommands take file and/or directory arguments, recursing\n"
+    "on the directories.  If no arguments are supplied to such a\n"
+    "command, it will recurse on the current directory (inclusive) by\n" 
+    "default.\n"
+    "\n"
+    "Available subcommands:\n"),
+    svn_cl__cmd_table,
+    svn_cl__options,
+    _("Subversion is a tool for version control.\n"
+    "For additional information, see http://subversion.tigris.org/\n"
+    "\n"),
+    pool));
 
   return SVN_NO_ERROR;
 }
Index: subversion/clients/cmdline/delete-cmd.c
===================================================================
--- subversion/clients/cmdline/delete-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/delete-cmd.c	(working copy)
@@ -31,6 +31,7 @@
 #include "svn_pools.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
 
 
 /*** Code. ***/
@@ -45,7 +46,7 @@ svn_cl__may_need_force (svn_error_t *err
       /* Should this svn_error_compose a new error number? Probably not,
          the error hasn't changed. */
       err = svn_error_quick_wrap (err,
-                                  "Use --force to override this restriction" );
+                                  _("Use --force to override this restriction") );
     }
 
   return err;
Index: subversion/clients/cmdline/notify.c
===================================================================
--- subversion/clients/cmdline/notify.c	(revision 9300)
+++ subversion/clients/cmdline/notify.c	(working copy)
@@ -32,6 +32,8 @@
 #include "svn_pools.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
+
 
 /* Baton for notify and friends. */
 struct notify_baton
@@ -66,7 +68,7 @@ notify (void *baton,
   err = svn_cmdline_path_local_style_from_utf8 (&path_stdout, path, nb->pool);
   if (err)
     {
-      printf ("WARNING: error decoding UTF-8 for ?\n");
+      printf (_("WARNING: error decoding UTF-8 for ?\n"));
       svn_pool_clear (nb->pool);
       svn_error_clear (err);
       return;
@@ -75,9 +77,9 @@ notify (void *baton,
     {
     case svn_wc_notify_skip:
       if (content_state == svn_wc_notify_state_missing)
-        printf ("Skipped missing target: '%s'\n", path_stdout);
+        printf (_("Skipped missing target: '%s'\n"), path_stdout);
       else
-        printf ("Skipped '%s'\n", path_stdout);
+        printf (_("Skipped '%s'\n"), path_stdout);
       break;
 
     case svn_wc_notify_update_delete:
@@ -91,19 +93,19 @@ notify (void *baton,
       break;
 
     case svn_wc_notify_restore:
-      printf ("Restored '%s'\n", path_stdout);
+      printf (_("Restored '%s'\n"), path_stdout);
       break;
 
     case svn_wc_notify_revert:
-      printf ("Reverted '%s'\n", path_stdout);
+      printf (_("Reverted '%s'\n"), path_stdout);
       break;
 
     case svn_wc_notify_failed_revert:
-      printf ("Failed to revert '%s' -- try updating instead.\n", path_stdout);
+      printf (_("Failed to revert '%s' -- try updating instead.\n"), path_stdout);
       break;
 
     case svn_wc_notify_resolved:
-      printf ("Resolved conflicted state of '%s'\n", path_stdout);
+      printf (_("Resolved conflicted state of '%s'\n"), path_stdout);
       break;
 
     case svn_wc_notify_add:
@@ -162,7 +164,7 @@ notify (void *baton,
     case svn_wc_notify_update_external:
       /* Currently this is used for checkouts and switches too.  If we
          want different output, we'll have to add new actions. */
-      printf ("\nFetching external item into '%s'\n", path_stdout);
+      printf (_("\nFetching external item into '%s'\n"), path_stdout);
 
       /* Remember that we're now "inside" an externals definition. */
       nb->in_external = TRUE;
@@ -197,8 +199,7 @@ notify (void *baton,
             else  /* no revision */
               {
                 if (nb->is_export)
-                  printf ("%sxport complete.\n",
-                          nb->in_external ? "External e" : "E");
+                  printf (nb->in_external ? _("External export complete.\n") : _("Export complete.\n"));
                 else if (nb->is_checkout)
                   printf ("%sheckout complete.\n",
                           nb->in_external ? "External c" : "C");
@@ -214,7 +215,7 @@ notify (void *baton,
       break;
 
     case svn_wc_notify_status_external:
-      printf ("\nPerforming status on external item at '%s'\n", path_stdout);
+      printf (_("\nPerforming status on external item at '%s'\n"), path_stdout);
       break;
 
     case svn_wc_notify_status_completed:
@@ -223,7 +224,7 @@ notify (void *baton,
       break;
 
     case svn_wc_notify_commit_modified:
-      printf ("Sending        %s\n", path_stdout);
+      printf (_("Sending        %s\n"), path_stdout);
       break;
 
     case svn_wc_notify_commit_added:
@@ -238,13 +239,13 @@ notify (void *baton,
       break;
 
     case svn_wc_notify_commit_replaced:
-      printf ("Replacing      %s\n", path_stdout);
+      printf (_("Replacing      %s\n"), path_stdout);
       break;
 
     case svn_wc_notify_commit_postfix_txdelta:
       if (! nb->sent_first_txdelta)
         {
-          printf ("Transmitting file data ");
+          printf (_("Transmitting file data "));
           nb->sent_first_txdelta = TRUE;
         }
 
Index: subversion/clients/cmdline/export-cmd.c
===================================================================
--- subversion/clients/cmdline/export-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/export-cmd.c	(working copy)
@@ -29,6 +29,8 @@
 #include "svn_path.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
+
 
 /*** Code. ***/
 
@@ -73,8 +75,8 @@ svn_cl__export (apr_getopt_t *os,
                            opt_state->force, ctx, pool);
   if (err && err->apr_err == SVN_ERR_WC_OBSTRUCTED_UPDATE && !opt_state->force)
     SVN_ERR_W (err,
-               "Destination directory exists; please remove "
-               "the directory or use --force to overwrite");
+               _("Destination directory exists; please remove "
+               "the directory or use --force to overwrite"));
   else
     SVN_ERR (err);
 
Index: subversion/clients/cmdline/main.c
===================================================================
--- subversion/clients/cmdline/main.c	(revision 9300)
+++ subversion/clients/cmdline/main.c	(working copy)
@@ -47,6 +47,8 @@
 #include "svn_auth.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
+
 
 /*** Option Processing ***/
 
@@ -59,74 +61,74 @@
  */
 const apr_getopt_option_t svn_cl__options[] =
   {
-    {"force",         svn_cl__force_opt, 0, "force operation to run"},
-    {"force-log",     svn_cl__force_log_opt, 0, "force validity of log message source"},
-    {"help",          'h', 0, "show help on a subcommand"},
-    {NULL,            '?', 0, "show help on a subcommand"},
-    {"message",       'm', 1, "specify commit message ARG"},
-    {"quiet",         'q', 0, "print as little as possible"},
-    {"recursive",     'R', 0, "descend recursively"},
-    {"non-recursive", 'N', 0, "operate on single directory only"},
+    {"force",         svn_cl__force_opt, 0, N_("force operation to run")},
+    {"force-log",     svn_cl__force_log_opt, 0, N_("force validity of log message source")},
+    {"help",          'h', 0, N_("show help on a subcommand")},
+    {NULL,            '?', 0, N_("show help on a subcommand")},
+    {"message",       'm', 1, N_("specify commit message ARG")},
+    {"quiet",         'q', 0, N_("print as little as possible")},
+    {"recursive",     'R', 0, N_("descend recursively")},
+    {"non-recursive", 'N', 0, N_("operate on single directory only")},
     {"revision",      'r', 1,
-                  "ARG (some commands also take ARG1:ARG2 range)\n"
+                  N_("ARG (some commands also take ARG1:ARG2 range)\n"
      "                             A revision argument can be one of:\n"
      "                                NUMBER       revision number\n"
      "                                \"{\" DATE \"}\" revision at start of the date\n"
      "                                \"HEAD\"       latest in repository\n"
      "                                \"BASE\"       base rev of item's working copy\n"
      "                                \"COMMITTED\"  last commit at or before BASE\n"
-     "                                \"PREV\"       revision just before COMMITTED"
+     "                                \"PREV\"       revision just before COMMITTED")
      /* spacing corresponds to svn_opt_format_option */
     },
-    {"file",          'F', 1, "read data from file ARG"},
+    {"file",          'F', 1, N_("read data from file ARG")},
     {"incremental",   svn_cl__incremental_opt, 0,
-                      "give output suitable for concatenation"},
+                      N_("give output suitable for concatenation")},
     {"encoding",      svn_cl__encoding_opt, 1,
-                      "treat value as being in charset encoding ARG"},
-    {"version",       svn_cl__version_opt, 0, "print client version info"},
-    {"verbose",       'v', 0, "print extra information"},
-    {"show-updates",  'u', 0, "display update information"},
-    {"username",      svn_cl__auth_username_opt, 1, "specify a username ARG"},
-    {"password",      svn_cl__auth_password_opt, 1, "specify a password ARG"},
-    {"extensions",    'x', 1, "pass ARG as bundled options to GNU diff"},
+                      N_("treat value as being in charset encoding ARG")},
+    {"version",       svn_cl__version_opt, 0, N_("print client version info")},
+    {"verbose",       'v', 0, N_("print extra information")},
+    {"show-updates",  'u', 0, N_("display update information")},
+    {"username",      svn_cl__auth_username_opt, 1, N_("specify a username ARG")},
+    {"password",      svn_cl__auth_password_opt, 1, N_("specify a password ARG")},
+    {"extensions",    'x', 1, N_("pass ARG as bundled options to GNU diff")},
     {"targets",       svn_cl__targets_opt, 1,
-                      "pass contents of file ARG as additional args"},
-    {"xml",           svn_cl__xml_opt, 0, "output in XML"},
-    {"strict",        svn_cl__strict_opt, 0, "use strict semantics"},
+                      N_("pass contents of file ARG as additional args")},
+    {"xml",           svn_cl__xml_opt, 0, N_("output in XML")},
+    {"strict",        svn_cl__strict_opt, 0, N_("use strict semantics")},
     {"stop-on-copy",  svn_cl__stop_on_copy_opt, 0, 
-                      "do not cross copies while traversing history"},
+                      N_("do not cross copies while traversing history")},
     {"no-ignore",     svn_cl__no_ignore_opt, 0,
-                      "disregard default and svn:ignore property ignores"},
+                      N_("disregard default and svn:ignore property ignores")},
     {"no-auth-cache", svn_cl__no_auth_cache_opt, 0,
-                      "do not cache authentication tokens"},
+                      N_("do not cache authentication tokens")},
     {"non-interactive", svn_cl__non_interactive_opt, 0,
-                      "do no interactive prompting"},
+                      N_("do no interactive prompting")},
     {"dry-run",       svn_cl__dry_run_opt, 0,
-                      "try operation but make no changes"},
+                      N_("try operation but make no changes")},
     {"no-diff-deleted", svn_cl__no_diff_deleted, 0,
-                       "do not print differences for deleted files"},
+                       N_("do not print differences for deleted files")},
     {"notice-ancestry", svn_cl__notice_ancestry_opt, 0,
-                       "notice ancestry when calculating differences"},
+                       N_("notice ancestry when calculating differences")},
     {"ignore-ancestry", svn_cl__ignore_ancestry_opt, 0,
-                       "ignore ancestry when calculating merges"},
+                       N_("ignore ancestry when calculating merges")},
     {"diff-cmd",      svn_cl__diff_cmd_opt, 1,
-                      "use ARG as diff command"},
+                      N_("use ARG as diff command")},
     {"diff3-cmd",     svn_cl__merge_cmd_opt, 1,
-                      "use ARG as merge command"},
+                      N_("use ARG as merge command")},
     {"editor-cmd",    svn_cl__editor_cmd_opt, 1,
-                      "use ARG as external editor"},
-    {"old",           svn_cl__old_cmd_opt, 1, "use ARG as the older target"},
-    {"new",           svn_cl__new_cmd_opt, 1, "use ARG as the newer target"},
+                      N_("use ARG as external editor")},
+    {"old",           svn_cl__old_cmd_opt, 1, N_("use ARG as the older target")},
+    {"new",           svn_cl__new_cmd_opt, 1, N_("use ARG as the newer target")},
     {"revprop",       svn_cl__revprop_opt, 0,
-                      "operate on a revision property (use with -r)"},
+                      N_("operate on a revision property (use with -r)")},
     {"relocate",      svn_cl__relocate_opt, 0,
-                      "relocate via URL-rewriting"},
+                      N_("relocate via URL-rewriting")},
     {"config-dir",    svn_cl__config_dir_opt, 1,
-                      "read user configuration files from directory ARG"},
+                      N_("read user configuration files from directory ARG")},
     {"auto-props",    svn_cl__autoprops_opt, 0,
-                      "enable automatic properties"},
+                      N_("enable automatic properties")},
     {"no-auto-props", svn_cl__no_autoprops_opt, 0,
-                      "disable automatic properties"},
+                      N_("disable automatic properties")},
     {0,               0, 0, 0}
   };
 
@@ -151,63 +153,63 @@ const apr_getopt_option_t svn_cl__option
 const svn_opt_subcommand_desc_t svn_cl__cmd_table[] =
 {
   { "add", svn_cl__add, {0},
-    "Put files and directories under version control, scheduling\n"
+    N_("Put files and directories under version control, scheduling\n"
     "them for addition to repository.  They will be added in next commit.\n"
-    "usage: add PATH...\n",
+    "usage: add PATH...\n"),
     {svn_cl__targets_opt, 'N', 'q', svn_cl__config_dir_opt,
      svn_cl__autoprops_opt, svn_cl__no_autoprops_opt} },
 
   { "blame", svn_cl__blame, {"praise", "annotate", "ann"},
-    "Output the content of specified files or\n"
+    N_("Output the content of specified files or\n"
     "URLs with revision and author information in-line.\n"
-    "usage: blame TARGET...\n",
+    "usage: blame TARGET...\n"),
     {'r', 'v', SVN_CL__AUTH_OPTIONS, svn_cl__config_dir_opt} },
 
   { "cat", svn_cl__cat, {0},
-    "Output the content of specified files or URLs.\n"
-    "usage: cat TARGET...\n",
+    N_("Output the content of specified files or URLs.\n"
+    "usage: cat TARGET...\n"),
     {'r', SVN_CL__AUTH_OPTIONS, svn_cl__config_dir_opt} },
 
   { "checkout", svn_cl__checkout, {"co"},
-    "Check out a working copy from a repository.\n"
+    N_("Check out a working copy from a repository.\n"
     "usage: checkout URL... [PATH]\n"
     "\n"
     "  Note: If PATH is omitted, the basename of the URL will be used as\n"
     "  the destination. If multiple URLs are given each will be checked\n"
     "  out into a sub-directory of PATH, with the name of the sub-directory\n"
-    "  being the basename of the URL.\n",
+    "  being the basename of the URL.\n"),
     {'r', 'q', 'N', SVN_CL__AUTH_OPTIONS, svn_cl__config_dir_opt} },
 
   { "cleanup", svn_cl__cleanup, {0},
-    "Recursively clean up the working copy, removing locks, resuming\n"
+    N_("Recursively clean up the working copy, removing locks, resuming\n"
     "unfinished operations, etc.\n"
-    "usage: cleanup [PATH...]\n",
+    "usage: cleanup [PATH...]\n"),
     {svn_cl__merge_cmd_opt, svn_cl__config_dir_opt} },
   
   { "commit", svn_cl__commit, {"ci"},
-    "Send changes from your working copy to the repository.\n"
+    N_("Send changes from your working copy to the repository.\n"
     "usage: commit [PATH...]\n"
     "\n"
     "  A log message must be provided, but it can be empty.  If it is not\n"
-    "  given by a --message or --file option, an editor will be started.\n",
+    "  given by a --message or --file option, an editor will be started.\n"),
     {'m', 'F', 'q', 'N', svn_cl__targets_opt,
      svn_cl__force_log_opt, SVN_CL__AUTH_OPTIONS,
      svn_cl__editor_cmd_opt, svn_cl__encoding_opt, svn_cl__config_dir_opt} },
   
   { "copy", svn_cl__copy, {"cp"},
-    "Duplicate something in working copy or repos, remembering history.\n"
+    N_("Duplicate something in working copy or repos, remembering history.\n"
     "usage: copy SRC DST\n"
     "\n"
     "  SRC and DST can each be either a working copy (WC) path or URL:\n"
     "    WC  -> WC:   copy and schedule for addition (with history)\n"
     "    WC  -> URL:  immediately commit a copy of WC to URL\n"
     "    URL -> WC:   check out URL into WC, schedule for addition\n"
-    "    URL -> URL:  complete server-side copy;  used to branch & tag\n",
+    "    URL -> URL:  complete server-side copy;  used to branch & tag\n"),
     {'m', 'F', 'r', 'q', SVN_CL__AUTH_OPTIONS, svn_cl__force_log_opt,
      svn_cl__editor_cmd_opt, svn_cl__encoding_opt, svn_cl__config_dir_opt} },
   
   { "delete", svn_cl__delete, {"del", "remove", "rm"},
-    "Remove files and directories from version control.\n"
+    N_("Remove files and directories from version control.\n"
     "usage: 1. delete PATH...\n"
     "       2. delete URL...\n"
     "\n"
@@ -218,13 +220,13 @@ const svn_opt_subcommand_desc_t svn_cl__
     "    not be removed unless the --force option is given.\n"
     "\n"
     "  2. Each item specified by a URL is deleted from the repository\n"
-    "    via an immediate commit.\n",
+    "    via an immediate commit.\n"),
     {svn_cl__force_opt, svn_cl__force_log_opt, 'm', 'F', 'q', 
      svn_cl__targets_opt, SVN_CL__AUTH_OPTIONS,
      svn_cl__editor_cmd_opt, svn_cl__encoding_opt, svn_cl__config_dir_opt} },
   
   { "diff", svn_cl__diff, {"di"},
-    "Display the differences between two paths.\n"
+    N_("Display the differences between two paths.\n"
     "usage: 1. diff [-r N[:M]] [--old OLD-TGT] [--new NEW-TGT] [PATH...]\n"
     "       2. diff -r N:M URL\n"
     "       3. diff [-r N[:M]] URL1[@N] URL2[@M]\n"
@@ -246,14 +248,14 @@ const svn_opt_subcommand_desc_t svn_cl__
     "\n"
     "  3. Shorthand for 'svn diff [-r N[:M]] --old=URL1 --new=URL2'\n"
     "\n"
-    "  Use just 'svn diff' to display local modifications in a working copy\n",
+    "  Use just 'svn diff' to display local modifications in a working copy\n"),
     {'r', svn_cl__old_cmd_opt, svn_cl__new_cmd_opt, 'x', 'N',
      svn_cl__diff_cmd_opt, svn_cl__no_diff_deleted,
      svn_cl__notice_ancestry_opt, SVN_CL__AUTH_OPTIONS,
      svn_cl__config_dir_opt} },
 
   { "export", svn_cl__export, {0},
-    "Create an unversioned copy of a tree.\n"
+    N_("Create an unversioned copy of a tree.\n"
     "usage: 1. export [-r REV] URL [PATH]\n"
     "       2. export [-r REV] PATH1 [PATH2]\n"
     "\n"
@@ -267,13 +269,13 @@ const svn_opt_subcommand_desc_t svn_cl__
     "     PATH2.  If PATH2 is omitted, the last component of the PATH1 is used\n"
     "     for the local directory name. If REV is not specified, all local\n"
     "     changes will be preserved, but files not under version control will\n"
-    "     not be copied.\n",
+    "     not be copied.\n"),
     {'r', 'q', svn_cl__force_opt, SVN_CL__AUTH_OPTIONS,
      svn_cl__config_dir_opt} },
 
   { "help", svn_cl__help, {"?", "h"},
-    "Describe the usage of this program or its subcommands.\n"
-    "usage: help [SUBCOMMAND...]\n",
+    N_("Describe the usage of this program or its subcommands.\n"
+    "usage: help [SUBCOMMAND...]\n"),
     {svn_cl__version_opt, 'q', svn_cl__config_dir_opt} },
   /* We need to support "--help", "-?", and all that good stuff, of
      course.  But those options, since unknown, will result in the
@@ -281,25 +283,25 @@ const svn_opt_subcommand_desc_t svn_cl__
      support them explicitly. */
   
   { "import", svn_cl__import, {0},
-    "Commit an unversioned file or tree into the repository.\n"
+    N_("Commit an unversioned file or tree into the repository.\n"
     "usage: import [PATH] URL\n"
     "\n"
     "  Recursively commit a copy of PATH to URL.\n"
     "  If PATH is omitted '.' is assumed.  Parent directories are created\n"
-    "  as necessary in the repository.\n",
+    "  as necessary in the repository.\n"),
     {'m', 'F', 'q', 'N', SVN_CL__AUTH_OPTIONS, svn_cl__force_log_opt,
      svn_cl__editor_cmd_opt, svn_cl__encoding_opt, svn_cl__config_dir_opt,
      svn_cl__autoprops_opt, svn_cl__no_autoprops_opt} },
  
   { "info", svn_cl__info, {0},
-    "Display information about a file or directory.\n"
+    N_("Display information about a file or directory.\n"
     "usage: info [PATH...]\n"
     "\n"
-    "  Print information about each PATH (default: '.').\n",
+    "  Print information about each PATH (default: '.').\n"),
     {svn_cl__targets_opt, 'R', svn_cl__config_dir_opt} },
  
   { "list", svn_cl__ls, {"ls"},
-    "List directory entries in the repository.\n"
+    N_("List directory entries in the repository.\n"
     "usage: list [TARGET...]\n"
     "\n"
     "  List each TARGET file and the contents of each TARGET directory as\n"
@@ -314,11 +316,11 @@ const svn_opt_subcommand_desc_t svn_cl__
     "    Revision number of the last commit\n"
     "    Author of the last commit\n"
     "    Size (in bytes)\n"
-    "    Date and time of the last commit\n",
+    "    Date and time of the last commit\n"),
     {'r', 'v', 'R', SVN_CL__AUTH_OPTIONS, svn_cl__config_dir_opt} },
   
   { "log", svn_cl__log, {0},
-    "Show the log messages for a set of revision(s) and/or file(s).\n"
+    N_("Show the log messages for a set of revision(s) and/or file(s).\n"
     "usage: 1. log [PATH]\n"
     "       2. log URL [PATH...]\n"
     "\n"
@@ -341,13 +343,13 @@ const svn_opt_subcommand_desc_t svn_cl__
     "    svn log\n"
     "    svn log foo.c\n"
     "    svn log http://www.example.com/repo/project/foo.c\n"
-    "    svn log http://www.example.com/repo/project foo.c bar.c\n",
+    "    svn log http://www.example.com/repo/project foo.c bar.c\n"),
     {'r', 'q', 'v', svn_cl__targets_opt, svn_cl__stop_on_copy_opt,
      svn_cl__incremental_opt, svn_cl__xml_opt, SVN_CL__AUTH_OPTIONS, 
      svn_cl__config_dir_opt} },
 
   { "merge", svn_cl__merge, {0},
-    "Apply the differences between two sources to a working copy path.\n"
+    N_("Apply the differences between two sources to a working copy path.\n"
     "usage: 1. merge sourceURL1[@N] sourceURL2[@M] [WCPATH]\n"
     "       2. merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]\n"
     "       3. merge -r N:M SOURCE [WCPATH]\n"
@@ -367,13 +369,13 @@ const svn_opt_subcommand_desc_t svn_cl__
     "  WCPATH is the working copy path that will receive the changes.\n"
     "  If WCPATH is omitted, a default value of '.' is assumed, unless\n"
     "  the sources have identical basenames that match a file within '.':\n"
-    "  in which case, the differences will be applied to that file.\n",
+    "  in which case, the differences will be applied to that file.\n"),
     {'r', 'N', 'q', svn_cl__force_opt, svn_cl__dry_run_opt,
      svn_cl__merge_cmd_opt, svn_cl__ignore_ancestry_opt, 
      SVN_CL__AUTH_OPTIONS, svn_cl__config_dir_opt} },
   
   { "mkdir", svn_cl__mkdir, {0},
-    "Create a new directory under version control.\n"
+    N_("Create a new directory under version control.\n"
     "usage: 1. mkdir PATH...\n"
     "       2. mkdir URL...\n"
     "\n"
@@ -385,46 +387,46 @@ const svn_opt_subcommand_desc_t svn_cl__
     "  2. Each directory specified by a URL is created in the repository via\n"
     "    an immediate commit.\n"
     "\n"
-    "  In both cases, all the intermediate directories must already exist.\n",
+    "  In both cases, all the intermediate directories must already exist.\n"),
     {'m', 'F', 'q', SVN_CL__AUTH_OPTIONS, svn_cl__editor_cmd_opt,
      svn_cl__encoding_opt, svn_cl__force_log_opt, svn_cl__config_dir_opt} },
 
   { "move", svn_cl__move, {"mv", "rename", "ren"},
-    "Move and/or rename something in working copy or repository.\n"
+    N_("Move and/or rename something in working copy or repository.\n"
     "usage: move SRC DST\n"
     "\n"
     "  Note:  this subcommand is equivalent to a 'copy' and 'delete'.\n"
     "\n"
     "  SRC and DST can both be working copy (WC) paths or URLs:\n"
     "    WC  -> WC:   move and schedule for addition (with history)\n"
-    "    URL -> URL:  complete server-side rename.\n",    
+    "    URL -> URL:  complete server-side rename.\n"),    
     {'m', 'F', 'r', 'q', svn_cl__force_opt, SVN_CL__AUTH_OPTIONS,
      svn_cl__editor_cmd_opt, svn_cl__encoding_opt, svn_cl__force_log_opt,
      svn_cl__config_dir_opt} },
   
   { "propdel", svn_cl__propdel, {"pdel", "pd"},
-    "Remove PROPNAME from files, dirs, or revisions.\n"
+    N_("Remove PROPNAME from files, dirs, or revisions.\n"
     "usage: 1. propdel PROPNAME [PATH...]\n"
     "       2. propdel PROPNAME --revprop -r REV [URL]\n"
     "\n"
     "  1. Removes versioned props in working copy.\n"
-    "  2. Removes unversioned remote prop on repos revision.\n",
+    "  2. Removes unversioned remote prop on repos revision.\n"),
     {'q', 'R', 'r', svn_cl__revprop_opt, SVN_CL__AUTH_OPTIONS,
      svn_cl__config_dir_opt} },
   
   { "propedit", svn_cl__propedit, {"pedit", "pe"},
-    "Edit property PROPNAME with $EDITOR on targets.\n"
+    N_("Edit property PROPNAME with $EDITOR on targets.\n"
     "usage: 1. propedit PROPNAME PATH...\n"
     "       2. propedit PROPNAME --revprop -r REV [URL]\n"
     "\n"
     "  1. Edits versioned props in working copy.\n"
-    "  2. Edits unversioned remote prop on repos revision.\n",
+    "  2. Edits unversioned remote prop on repos revision.\n"),
     {'r', svn_cl__revprop_opt, SVN_CL__AUTH_OPTIONS,
      svn_cl__encoding_opt, svn_cl__editor_cmd_opt, svn_cl__force_opt,
      svn_cl__config_dir_opt} },
   
   { "propget", svn_cl__propget, {"pget", "pg"},
-    "Print value of PROPNAME on files, dirs, or revisions.\n"
+    N_("Print value of PROPNAME on files, dirs, or revisions.\n"
     "usage: 1. propget PROPNAME [PATH...]\n"
     "       2. propget PROPNAME --revprop -r REV [URL]\n"
     "\n"
@@ -436,22 +438,22 @@ const svn_opt_subcommand_desc_t svn_cl__
     "  whenever there are multiple paths involved, each property value\n"
     "  is prefixed with the path with which it is associated.  Use\n"
     "  the --strict option to disable these beautifications (useful,\n"
-    "  for example, when redirecting binary property values to a file).\n",
+    "  for example, when redirecting binary property values to a file).\n"),
     {'R', 'r', svn_cl__revprop_opt, svn_cl__strict_opt, 
      SVN_CL__AUTH_OPTIONS, svn_cl__config_dir_opt} },
 
   { "proplist", svn_cl__proplist, {"plist", "pl"},
-    "List all properties on files, dirs, or revisions.\n"
+    N_("List all properties on files, dirs, or revisions.\n"
     "usage: 1. proplist [PATH...]\n"
     "       2. proplist --revprop -r REV [URL]\n"
     "\n"
     "  1. Lists versioned props in working copy.\n"
-    "  2. Lists unversioned remote props on repos revision.\n",
+    "  2. Lists unversioned remote props on repos revision.\n"),
     {'v', 'R', 'r', 'q', svn_cl__revprop_opt, SVN_CL__AUTH_OPTIONS,
      svn_cl__config_dir_opt} },
 
   { "propset", svn_cl__propset, {"pset", "ps"},
-    "Set PROPNAME to PROPVAL on files, dirs, or revisions.\n"
+    N_("Set PROPNAME to PROPVAL on files, dirs, or revisions.\n"
     "usage: 1. propset PROPNAME [PROPVAL | -F VALFILE] PATH...\n"
     "       2. propset PROPNAME --revprop -r REV [PROPVAL | -F VALFILE] [URL]\n"
     "\n"
@@ -483,31 +485,31 @@ const svn_opt_subcommand_desc_t svn_cl__
     "      each of which consists of a relative directory path, optional\n"
     "      revision flags, and an URL.  For example\n"
     "        foo             http://example.com/repos/zig\n"
-    "        foo/bar -r 1234 http://example.com/repos/zag\n",
+    "        foo/bar -r 1234 http://example.com/repos/zag\n"),
     {'F', 'q', 'r', svn_cl__targets_opt, 'R', svn_cl__revprop_opt,
      SVN_CL__AUTH_OPTIONS, svn_cl__encoding_opt, svn_cl__force_opt,
      svn_cl__config_dir_opt} },
   
   { "resolved", svn_cl__resolved, {0},
-    "Remove 'conflicted' state on working copy files or directories.\n"
+    N_("Remove 'conflicted' state on working copy files or directories.\n"
     "usage: resolved PATH...\n"
     "\n"
     "  Note:  this subcommand does not semantically resolve conflicts or\n"
     "  remove conflict markers; it merely removes the conflict-related\n"
-    "  artifact files and allows PATH to be committed again.\n",
+    "  artifact files and allows PATH to be committed again.\n"),
     {svn_cl__targets_opt, 'R', 'q', svn_cl__config_dir_opt} },
  
   { "revert", svn_cl__revert, {0},
-    "Restore pristine working copy file (undo most local edits).\n"
+    N_("Restore pristine working copy file (undo most local edits).\n"
     "usage: revert PATH...\n"
     "\n"
     "  Note:  this subcommand does not require network access, and resolves\n"
     "  any conflicted states.  However, it does not restore removed "
-    "directories.\n",
+    "directories.\n"),
     {svn_cl__targets_opt, 'R', 'q', svn_cl__config_dir_opt} },
 
   { "status", svn_cl__status, {"stat", "st"},
-    "Print the status of working copy files and directories.\n"
+    N_("Print the status of working copy files and directories.\n"
     "usage: status [PATH...]\n"
     "\n"
     "  With no args, print only locally modified items (no network access).\n"
@@ -568,12 +570,12 @@ const svn_opt_subcommand_desc_t svn_cl__
     "           *     965       922 sussman      wc/foo.c\n"
     "    A  +         965       687 joe          wc/qax.c\n"
     "                 965       687 joe          wc/zig.c\n"
-    "    Head revision:   981\n",
+    "    Head revision:   981\n"),
     { 'u', 'v', 'N', 'q', svn_cl__no_ignore_opt, SVN_CL__AUTH_OPTIONS, 
       svn_cl__config_dir_opt} },
   
   { "switch", svn_cl__switch, {"sw"},
-    "Update the working copy to a different URL.\n"
+    N_("Update the working copy to a different URL.\n"
     "usage: 1. switch URL [PATH]\n"
     "       2. switch --relocate FROM TO [PATH...]\n"
     "\n"
@@ -584,12 +586,12 @@ const svn_opt_subcommand_desc_t svn_cl__
     "  2. Rewrite working copy URL metadata to reflect a syntactic change only.\n"
     "     This is used when repository's root URL changes (such as a schema\n"
     "     or hostname change) but your working copy still reflects the same\n"
-    "     directory within the same repository.\n",
+    "     directory within the same repository.\n"),
     { 'r', 'N', 'q', svn_cl__merge_cmd_opt, svn_cl__relocate_opt,
       SVN_CL__AUTH_OPTIONS, svn_cl__config_dir_opt} },
  
   { "update", svn_cl__update, {"up"}, 
-    "Bring changes from the repository into the working copy.\n"
+    N_("Bring changes from the repository into the working copy.\n"
     "usage: update [PATH...]\n"
     "\n"
     "  If no revision given, bring working copy up-to-date with HEAD rev.\n"
@@ -605,7 +607,7 @@ const svn_opt_subcommand_desc_t svn_cl__
     "    G  Merged\n"
     "\n"
     "  A character in the first column signifies an update to the actual file,\n"
-    "  while updates to the file's properties are shown in the second column.\n",
+    "  while updates to the file's properties are shown in the second column.\n"),
     {'r', 'N', 'q', svn_cl__merge_cmd_opt, SVN_CL__AUTH_OPTIONS, 
      svn_cl__config_dir_opt} },
 
@@ -629,7 +631,7 @@ svn_error_t *
 svn_cl__check_cancel (void *baton)
 {
   if (cancelled)
-    return svn_error_create (SVN_ERR_CANCELLED, NULL, "Caught signal");
+    return svn_error_create (SVN_ERR_CANCELLED, NULL, _("Caught signal"));
   else
     return SVN_NO_ERROR;
 }
@@ -656,7 +658,7 @@ main (int argc, const char * const *argv
   svn_cl__cmd_baton_t command_baton;
   svn_auth_baton_t *ab;
   svn_config_t *cfg;
-
+  
   /* Initialize the app. */
   if (svn_cmdline_init ("svn", stderr) != EXIT_SUCCESS)
     return EXIT_FAILURE;
@@ -720,8 +722,8 @@ main (int argc, const char * const *argv
           {
             err = svn_error_create
               (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-               "Multiple revision arguments encountered; "
-               "try '-r M:N' instead of '-r M -r N'");
+               _("Multiple revision arguments encountered; "
+               "try '-r M:N' instead of '-r M -r N'"));
             svn_handle_error (err, stderr, FALSE);
             svn_error_clear (err);
             svn_pool_destroy (pool);
@@ -735,7 +737,7 @@ main (int argc, const char * const *argv
             if (! err)
               err = svn_error_createf
                 (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
-                 "Syntax error in revision argument '%s'",
+                 _("Syntax error in revision argument '%s'"),
                  utf8_opt_arg);
             svn_handle_error (err, stderr, FALSE);
             svn_error_clear (err);
@@ -909,8 +911,8 @@ main (int argc, const char * const *argv
         if (opt_state.no_autoprops)
           {
             err = svn_error_create (SVN_ERR_CL_MUTUALLY_EXCLUSIVE_ARGS, NULL,
-                                    "--auto-props and --no-auto-props are "
-                                    "mutually exclusive");
+                                    _("--auto-props and --no-auto-props are "
+                                    "mutually exclusive"));
             svn_handle_error (err, stderr, FALSE);
             svn_error_clear (err);
             svn_pool_destroy (pool);
@@ -922,8 +924,8 @@ main (int argc, const char * const *argv
         if (opt_state.autoprops)
           {
             err = svn_error_create (SVN_ERR_CL_MUTUALLY_EXCLUSIVE_ARGS, NULL,
-                                    "--auto-props and --no-auto-props are "
-                                    "mutually exclusive");
+                                    _("--auto-props and --no-auto-props are "
+                                    "mutually exclusive"));
             svn_handle_error (err, stderr, FALSE);
             svn_error_clear (err);
             svn_pool_destroy (pool);
@@ -970,7 +972,7 @@ main (int argc, const char * const *argv
     {
       if (os->ind >= os->argc)
         {
-          fprintf (stderr, "subcommand argument required\n");
+          fprintf (stderr, _("subcommand argument required\n"));
           svn_cl__help (NULL, NULL, pool);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
@@ -982,7 +984,7 @@ main (int argc, const char * const *argv
                                                          first_arg);
           if (subcommand == NULL)
             {
-              fprintf (stderr, "unknown command: '%s'\n", first_arg);
+              fprintf (stderr, _("unknown command: '%s'\n"), first_arg);
               svn_cl__help (NULL, NULL, pool);
               svn_pool_destroy (pool);
               return EXIT_FAILURE;
@@ -1009,8 +1011,8 @@ main (int argc, const char * const *argv
             svn_opt_get_option_from_code (opt_id, svn_cl__options);
           svn_opt_format_option (&optstr, badopt, FALSE, pool);
           fprintf (stderr,
-                   "subcommand '%s' doesn't accept option '%s'\n"
-                   "Type 'svn help %s' for usage.\n",
+                   _("subcommand '%s' doesn't accept option '%s'\n"
+                   "Type 'svn help %s' for usage.\n"),
                    subcommand->name, optstr, subcommand->name);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
@@ -1043,8 +1045,8 @@ main (int argc, const char * const *argv
             {
               err = svn_error_create (SVN_ERR_CL_LOG_MESSAGE_IS_VERSIONED_FILE,
                                       NULL,
-                                      "Log message file is a versioned file; "
-                                      "use '--force-log' to override");
+                                      _("Log message file is a versioned file; "
+                                      "use '--force-log' to override"));
               svn_handle_error (err, stderr, FALSE);
               svn_error_clear (err);
               svn_pool_destroy (pool);
@@ -1063,9 +1065,9 @@ main (int argc, const char * const *argv
                         APR_FINFO_MIN, pool) == APR_SUCCESS)
             {
               err = svn_error_create (SVN_ERR_CL_LOG_MESSAGE_IS_PATHNAME, NULL,
-                                      "The log message is a pathname "
+                                      _("The log message is a pathname "
                                       "(was -F intended?); use '--force-log' "
-                                      "to override");
+                                      "to override"));
               svn_handle_error (err, stderr, FALSE);
               svn_error_clear (err);
               svn_pool_destroy (pool);
@@ -1274,8 +1274,8 @@ main (int argc, const char * const *argv
       for (tmp_err = err; tmp_err; tmp_err = tmp_err->child)
         if (tmp_err->apr_err == SVN_ERR_WC_LOCKED)
           {
-            fputs ("svn: run 'svn cleanup' to remove locks"
-                   " (type 'svn help cleanup' for details)\n", stderr);
+            fputs (_("svn: run 'svn cleanup' to remove locks"
+                   " (type 'svn help cleanup' for details)\n"), stderr);
             break;
           }
 
Index: subversion/clients/cmdline/info-cmd.c
===================================================================
--- subversion/clients/cmdline/info-cmd.c	(revision 9300)
+++ subversion/clients/cmdline/info-cmd.c	(working copy)
@@ -31,6 +31,8 @@
 #include "svn_time.h"
 #include "cl.h"
 
+#include "svn_private_config.h"
+
 
 /*** Code. ***/
 
@@ -59,7 +61,7 @@ print_entry (const char *target,
 
   /* Get a non-UTF8 version of the target. */
   SVN_ERR (svn_cmdline_path_local_style_from_utf8 (&name_stdout, target, pool));
-  printf ("Path: %s\n", name_stdout);
+  printf (_("Path: %s\n"), name_stdout);
 
   /* Note: we have to be paranoid about checking that these are
      valid, since svn_wc_entry() doesn't fill them in if they
@@ -69,25 +71,25 @@ print_entry (const char *target,
     {
       SVN_ERR (svn_cmdline_cstring_from_utf8 (&name_stdout,
                                               entry->name, pool));
-      printf ("Name: %s\n", name_stdout);
+      printf (_("Name: %s\n"), name_stdout);
     }
  
   if (entry->url) 
     {
       SVN_ERR (svn_cmdline_cstring_from_utf8 (&name_stdout, entry->url, pool));
-      printf ("URL: %s\n", name_stdout);
+      printf (_("URL: %s\n"), name_stdout);
     }
            
   if (entry->repos) 
     {
       SVN_ERR (svn_cmdline_cstring_from_utf8 (&name_stdout,
                                               entry->repos, pool));
-      printf ("Repository: %s\n", name_stdout);
+      printf (_("Repository: %s\n"), name_stdout);
     }
  
   if (entry->uuid) 
     {
-      printf ("Repository UUID: %s\n", entry->uuid);
+      printf (_("Repository UUID: %s\n"), entry->uuid);
     }
  
   if (SVN_IS_VALID_REVNUM (entry->revision))
@@ -96,7 +98,7 @@ print_entry (const char *target,
   switch (entry->kind) 
     {
     case svn_node_file:
-      printf ("Node Kind: file\n");
+      printf (_("Node Kind: file\n"));
       {
         const char *dir_name;
         svn_path_split (target, &dir_name, NULL, pool);
@@ -106,37 +108,37 @@ print_entry (const char *target,
       break;
           
     case svn_node_dir:
-      printf ("Node Kind: directory\n");
+      printf (_("Node Kind: directory\n"));
       SVN_ERR (svn_wc_conflicted_p (&text_conflict, &props_conflict,
                                     target, entry, pool));
       break;
           
     case svn_node_none:
-      printf ("Node Kind: none\n");
+      printf (_("Node Kind: none\n"));
       break;
           
     case svn_node_unknown:
     default:
-      printf ("Node Kind: unknown\n");
+      printf (_("Node Kind: unknown\n"));
       break;
     }
 
   switch (entry->schedule) 
     {
     case svn_wc_schedule_normal:
-      printf ("Schedule: normal\n");
+      printf (_("Schedule: normal\n"));
       break;
           
     case svn_wc_schedule_add:
-      printf ("Schedule: add\n");
+      printf (_("Schedule: add\n"));
       break;
           
     case svn_wc_schedule_delete:
-      printf ("Schedule: delete\n");
+      printf (_("Schedule: delete\n"));
       break;
           
     case svn_wc_schedule_replace:
-      printf ("Schedule: replace\n");
+      printf (_("Schedule: replace\n"));
       break;
           
     default:
@@ -150,7 +152,7 @@ print_entry (const char *target,
           SVN_ERR (svn_cmdline_cstring_from_utf8 (&name_stdout,
                                                   entry->copyfrom_url,
                                                   pool));
-          printf ("Copied From URL: %s\n", name_stdout);
+          printf (_("Copied From URL: %s\n"), name_stdout);
         }
  
       if (SVN_IS_VALID_REVNUM (entry->copyfrom_rev))
@@ -162,7 +164,7 @@ print_entry (const char *target,
     {
       SVN_ERR (svn_cmdline_cstring_from_utf8 (&name_stdout,
                                               entry->cmt_author, pool));
-      printf ("Last Changed Author: %s\n", name_stdout);
+      printf (_("Last Changed Author: %s\n"), name_stdout);
     }
  
   if (SVN_IS_VALID_REVNUM (entry->cmt_rev))
@@ -170,49 +172,49 @@ print_entry (const char *target,
 
   if (entry->cmt_date)
     SVN_ERR (svn_cl__info_print_time (entry->cmt_date, 
-                                      "Last Changed Date", pool));
+                                      _("Last Changed Date"), pool));
 
   if (entry->text_time)
     SVN_ERR (svn_cl__info_print_time (entry->text_time, 
-                                      "Text Last Updated", pool));
+                                      _("Text Last Updated"), pool));
 
   if (entry->prop_time)
     SVN_ERR (svn_cl__info_print_time (entry->prop_time, 
-                                      "Properties Last Updated", pool));
+                                      _("Properties Last Updated"), pool));
  
   if (entry->checksum) 
     {
       SVN_ERR (svn_cmdline_cstring_from_utf8 (&name_stdout,
                                               entry->checksum, pool));
-      printf ("Checksum: %s\n", name_stdout);
+      printf (_("Checksum: %s\n"), name_stdout);
     }
  
   if (text_conflict && entry->conflict_old) 
     {
       SVN_ERR (svn_cmdline_path_local_style_from_utf8
                (&name_stdout, entry->conflict_old, pool));
-      printf ("Conflict Previous Base File: %s\n", name_stdout);
+      printf (_("Conflict Previous Base File: %s\n"), name_stdout);
     }
  
   if (text_conflict && entry->conflict_wrk) 
     {
       SVN_ERR (svn_cmdline_path_local_style_from_utf8
                (&name_stdout, entry->conflict_wrk, pool));
-      printf ("Conflict Previous Working File: %s\n", name_stdout);
+      printf (_("Conflict Previous Working File: %s\n"), name_stdout);
     }
  
   if (text_conflict && entry->conflict_new) 
     {
       SVN_ERR (svn_cmdline_path_local_style_from_utf8
                (&name_stdout, entry->conflict_new, pool));
-      printf ("Conflict Current Base File: %s\n", name_stdout);
+      printf (_("Conflict Current Base File: %s\n"), name_stdout);
     }
  
   if (props_conflict && entry->prejfile) 
     {
       SVN_ERR (svn_cmdline_path_local_style_from_utf8
                (&name_stdout, entry->prejfile, pool));
-      printf ("Conflict Properties File: %s\n", name_stdout);
+      printf (_("Conflict Properties File: %s\n"), name_stdout);
     }
  
   /* Print extra newline separator. */
@@ -289,7 +291,7 @@ svn_cl__info (apr_getopt_t *os,
           SVN_ERR (svn_cmdline_path_local_style_from_utf8
                    (&target_stdout, target, subpool));
 
-          printf ("%s:  (Not a versioned resource)\n\n", target_stdout);
+          printf (_("%s:  (Not a versioned resource)\n\n"), target_stdout);
           continue;
         }
 
Index: subversion/libsvn_ra_dav/merge.c
===================================================================
--- subversion/libsvn_ra_dav/merge.c	(revision 9300)
+++ subversion/libsvn_ra_dav/merge.c	(working copy)
@@ -34,6 +34,8 @@
 #include "svn_ra.h"
 #include "svn_pools.h"
 
+#include "svn_private_config.h"
+
 #include "ra_dav.h"
 
 
@@ -211,18 +213,18 @@ static svn_error_t * handle_resource(mer
       /* ### shouldn't have happened. we told the server "don't merge" */
       /* ### need something better than APR_EGENERAL */
       return svn_error_createf(APR_EGENERAL, NULL,
-                               "Protocol error: we told the server to not "
+                               _("Protocol error: we told the server to not "
                                "auto-merge any resources, but it said that "
-                               "'%s' was merged", mc->href->data);
+                               "'%s' was merged"), mc->href->data);
     }
   if (mc->response_parent != ELEM_updated_set)
     {
       /* ### unknown parent for this response(!) */
       /* ### need something better than APR_EGENERAL */
       return svn_error_createf(APR_EGENERAL, NULL,
-                               "Internal error: there is an unknown parent "
+                               _("Internal error: there is an unknown parent "
                                "(%d) for the 'DAV:response' element within the"
-                               " MERGE response", mc->response_parent);
+                               " MERGE response"), mc->response_parent);
     }
 #if 0
   /* ### right now, the server isn't sending everything for all resources.
@@ -235,10 +237,10 @@ static svn_error_t * handle_resource(mer
       /* one or more properties were missing in the DAV:response for the
          resource. */
       return svn_error_createf(APR_EGENERAL, NULL,
-                               "Protocol error: the MERGE response for the "
+                               _("Protocol error: the MERGE response for the "
                                "'%s' resource did not return all of the "
                                "properties that we asked for (and need to "
-                               "complete the commit).", mc->href->data);
+                               "complete the commit)."), mc->href->data);
     }
 #endif
 
@@ -254,8 +256,8 @@ static svn_error_t * handle_resource(mer
     {
       /* ### need something better than APR_EGENERAL */
       return svn_error_createf(APR_EGENERAL, NULL,
-                               "A MERGE response for '%s' is not a child "
-                               "of the destination ('%s')",
+                               _("A MERGE response for '%s' is not a child "
+                               "of the destination ('%s')"),
                                mc->href->data, mc->base_href);
     }
 
@@ -475,8 +477,8 @@ static int end_element(void *userdata, c
           {
             /* ### fix this error value */
             mc->err = svn_error_create(APR_EGENERAL, NULL,
-                                       "The MERGE property response had an "
-                                       "error status");
+                                       _("The MERGE property response had an "
+                                       "error status"));
           }
       }
       break;
Index: subversion/libsvn_ra_dav/session.c
===================================================================
--- subversion/libsvn_ra_dav/session.c	(revision 9300)
+++ subversion/libsvn_ra_dav/session.c	(working copy)
@@ -35,6 +35,8 @@
 #include "svn_config.h"
 #include "svn_version.h"
 #include "svn_path.h"
+#include "svn_private_config.h"
+
 #include "ra_dav.h"
 
 
@@ -421,15 +423,15 @@ static svn_error_t *get_server_settings(
 
       if (*endstr)
         return svn_error_create(SVN_ERR_RA_ILLEGAL_URL, NULL,
-                                "Invalid URL: illegal character in proxy "
-                                "port number");
+                                _("Invalid URL: illegal character in proxy "
+                                "port number"));
       if (port < 0)
         return svn_error_create(SVN_ERR_RA_ILLEGAL_URL, NULL,
-                                "Invalid URL: negative proxy port number");
+                                _("Invalid URL: negative proxy port number"));
       if (port > 65535)
         return svn_error_create(SVN_ERR_RA_ILLEGAL_URL, NULL,
-                                "Invalid URL: proxy port number greater than "
-                                "maximum TCP port number 65535");
+                                _("Invalid URL: proxy port number greater than "
+                                "maximum TCP port number 65535"));
       *proxy_port = port;
     }
   else
@@ -442,11 +444,11 @@ static svn_error_t *get_server_settings(
 
       if (*endstr)
         return svn_error_create(SVN_ERR_RA_DAV_INVALID_CONFIG_VALUE, NULL,
-                                "Invalid config: illegal character in timeout "
-                                "value");
+                                _("Invalid config: illegal character in timeout "
+                                "value"));
       if (timeout < 0)
         return svn_error_create(SVN_ERR_RA_DAV_INVALID_CONFIG_VALUE, NULL,
-                                "Invalid config: negative timeout value");
+                                _("Invalid config: negative timeout value"));
       *timeout_seconds = timeout;
     }
   else
@@ -459,8 +461,8 @@ static svn_error_t *get_server_settings(
 
       if (*endstr)
         return svn_error_create(SVN_ERR_RA_DAV_INVALID_CONFIG_VALUE, NULL,
-                                "Invalid config: illegal character in "
-                                "debug mask value");
+                                _("Invalid config: illegal character in "
+                                "debug mask value"));
 
       *neon_debug = debug;
     }
@@ -549,7 +551,7 @@ svn_ra_dav__open (void **session_baton,
     {
       ne_uri_free(&uri);
       return svn_error_create(SVN_ERR_RA_ILLEGAL_URL, NULL,
-                              "Malformed URL for repository");
+                              _("Malformed URL for repository"));
     }
 
   /* Can we initialize network? */
@@ -557,7 +559,7 @@ svn_ra_dav__open (void **session_baton,
     {
       ne_uri_free(&uri);
       return svn_error_create(SVN_ERR_RA_DAV_SOCK_INIT, NULL,
-                              "Network socket initialization failed");
+                              _("Network socket initialization failed"));
     }
 
   /* we want to know if the repository is actually somewhere else */
@@ -570,7 +572,7 @@ svn_ra_dav__open (void **session_baton,
         {
           ne_uri_free(&uri);
           return svn_error_create(SVN_ERR_RA_DAV_SOCK_INIT, NULL,
-                                  "SSL is not supported");
+                                  _("SSL is not supported"));
         }
     }
   if (uri.port == 0)
@@ -717,7 +719,7 @@ svn_ra_dav__open (void **session_baton,
                 {
                   return svn_error_createf
                     (SVN_ERR_RA_DAV_INVALID_CONFIG_VALUE, NULL,
-                     "Invalid config: unable to load certificate file '%s'",
+                     _("Invalid config: unable to load certificate file '%s'"),
                      file);
                 }
               ne_ssl_trust_cert(sess, ca_cert);
@@ -778,7 +780,7 @@ static svn_error_t *svn_ra_dav__get_repo
       len = strlen(ras->url);
       if (len <= relative_len)
         return svn_error_create(APR_EGENERAL, NULL,
-                                "Impossibly long relative url.");
+                                _("Impossibly long relative url."));
 
       /* Don't strip off the extra '/' unless there is a relative path */
       if (relative_len)
@@ -813,14 +815,14 @@ static svn_error_t *svn_ra_dav__do_get_u
       if (uuid_propval == NULL)
         /* ### better error reporting... */
         return svn_error_create(APR_EGENERAL, NULL,
-                                "The UUID property was not found on the "
-                                "resource or any of its parents.");
+                                _("The UUID property was not found on the "
+                                "resource or any of its parents."));
 
       if (uuid_propval && (uuid_propval->len > 0))
         ras->uuid = apr_pstrdup(ras->pool, uuid_propval->data); /* cache */
       else
         return svn_error_create(SVN_ERR_RA_NO_REPOS_UUID, NULL,
-                                "Please upgrade the server to 0.19 or later.");
+                                _("Please upgrade the server to 0.19 or later."));
     }
 
   *uuid = ras->uuid;
@@ -831,7 +833,7 @@ static svn_error_t *svn_ra_dav__do_get_u
 
 static const svn_ra_plugin_t dav_plugin = {
   "ra_dav",
-  "Module for accessing a repository via WebDAV (DeltaV) protocol.",
+  N_("Module for accessing a repository via WebDAV (DeltaV) protocol."),
   svn_ra_dav__open,
   svn_ra_dav__get_latest_revnum,
   svn_ra_dav__get_dated_revision,
@@ -858,8 +860,8 @@ svn_error_t *svn_ra_dav_init(int abi_ver
 {
   if (abi_version != 1)
     return svn_error_createf (SVN_ERR_RA_UNSUPPORTED_ABI_VERSION, NULL,
-                              "Unsupported RA plugin ABI version (%d) "
-                              "for ra_dav.", abi_version);
+                              _("Unsupported RA plugin ABI version (%d) "
+                              "for ra_dav."), abi_version);
 
   apr_hash_set (hash, "http", APR_HASH_KEY_STRING, &dav_plugin);
 
Index: subversion/libsvn_ra_dav/props.c
===================================================================
--- subversion/libsvn_ra_dav/props.c	(revision 9300)
+++ subversion/libsvn_ra_dav/props.c	(working copy)
@@ -38,6 +38,8 @@
 #include "svn_xml.h"
 #include "svn_pools.h"
 
+#include "svn_private_config.h"
+
 #include "ra_dav.h"
 
 
@@ -578,7 +580,7 @@ svn_error_t * svn_ra_dav__get_props_reso
     {
       /* ### hmmm, should have been in there... */
       return svn_error_createf(APR_EGENERAL, NULL,
-                               "Failed to find label '%s' for URL '%s'",
+                               _("Failed to find label '%s' for URL '%s'"),
                                label ? label : "NULL", url_path);
     }
 
@@ -607,7 +609,7 @@ svn_error_t * svn_ra_dav__get_one_prop(c
     {
       /* ### need an SVN_ERR here */
       return svn_error_createf(SVN_ERR_RA_DAV_PROPS_NOT_FOUND, NULL,
-                               "'%s' was not present on the resource", name);
+                               _("'%s' was not present on the resource"), name);
     }
 
   *propval = value;
@@ -668,7 +670,7 @@ svn_ra_dav__search_for_starting_props(sv
       if (path_s->len == len)          
         {
           err = svn_error_quick_wrap(err, 
-                                     "The path was not part of a repository");
+                                     _("The path was not part of a repository"));
           goto error;
         }
       svn_error_clear (err);
@@ -679,8 +681,8 @@ svn_ra_dav__search_for_starting_props(sv
   if (svn_path_is_empty (path_s->data))
     {
       err = svn_error_createf (SVN_ERR_RA_ILLEGAL_URL, NULL,
-                               "No part of path '%s' was found in "
-                               "repository HEAD", parsed_url.path);
+                               _("No part of path '%s' was found in "
+                               "repository HEAD"), parsed_url.path);
       goto error;
     }
 
@@ -713,8 +715,8 @@ svn_error_t *svn_ra_dav__get_vcc(const c
                        SVN_RA_DAV__PROP_VCC, APR_HASH_KEY_STRING);
   if (! vcc_s)
     return svn_error_create(APR_EGENERAL, NULL,
-                             "The VCC property was not found on the "
-                             "resource");
+                             _("The VCC property was not found on the "
+                             "resource"));
 
   *vcc = vcc_s->data;
   return SVN_NO_ERROR;
@@ -768,8 +770,8 @@ svn_error_t *svn_ra_dav__get_baseline_pr
 
       /* ### need an SVN_ERR here */
       return svn_error_create(APR_EGENERAL, NULL,
-                              "The VCC property was not found on the "
-                              "resource");
+                              _("The VCC property was not found on the "
+                              "resource"));
     }
 
   /* Allocate our own bc_relative path. */
@@ -781,8 +783,8 @@ svn_error_t *svn_ra_dav__get_baseline_pr
       /* ### better error reporting... */        
       /* ### need an SVN_ERR here */
       return svn_error_create(APR_EGENERAL, NULL,
-                              "The relative-path property was not "
-                              "found on the resource");
+                              _("The relative-path property was not "
+                              "found on the resource"));
     }
     
   /* don't forget to tack on the parts we lopped off in order
@@ -899,8 +901,8 @@ svn_error_t *svn_ra_dav__get_baseline_in
       /* ### better error reporting... */
       /* ### need an SVN_ERR here */
       return svn_error_create(APR_EGENERAL, NULL,
-                              "'DAV:baseline-collection' was not present "
-                              "on the baseline resource");
+                              _("'DAV:baseline-collection' was not present "
+                              "on the baseline resource"));
     }
 
   /* maybe return bc_url to the caller */
@@ -918,8 +920,8 @@ svn_error_t *svn_ra_dav__get_baseline_in
 
           /* ### need an SVN_ERR here */
           return svn_error_create(APR_EGENERAL, NULL,
-                                  "'DAV:version-name' was not present on the "
-                                  "baseline resource");
+                                  _("'DAV:version-name' was not present on the "
+                                  "baseline resource"));
         }
       *latest_rev = SVN_STR_TO_REV(vsn_name->data);
     }
@@ -1071,7 +1073,7 @@ svn_ra_dav__do_proppatch (svn_ra_session
          entire 'commit' is rejected.  */
       err = svn_error_create
         (SVN_ERR_RA_DAV_PROPPATCH_FAILED, NULL,
-         "At least one property change failed; repository is unchanged");
+         _("At least one property change failed; repository is unchanged"));
     }
 
   ne_buffer_destroy(body);
Index: subversion/libsvn_ra_dav/commit.c
===================================================================
--- subversion/libsvn_ra_dav/commit.c	(revision 9300)
+++ subversion/libsvn_ra_dav/commit.c	(working copy)
@@ -47,6 +47,8 @@
 #include "svn_dav.h"
 #include "svn_base64.h"
 
+#include "svn_private_config.h"
+
 #include "ra_dav.h"
 
 
@@ -145,7 +147,7 @@ static svn_error_t * simple_request(svn_
   if (req == NULL)
     {
       return svn_error_createf(SVN_ERR_RA_DAV_CREATING_REQUEST, NULL,
-                               "Could not create a request (%s '%s')",
+                               _("Could not create a request (%s '%s')"),
                                method, url);
     }
 
@@ -864,7 +866,7 @@ static svn_error_t * commit_add_file(con
         {
           /* If the PROPFIND succeeds the file already exists */
           return svn_error_createf(SVN_ERR_RA_DAV_ALREADY_EXISTS, NULL,
-                                   "File '%s' already exists", file->rsrc->url);
+                                   _("File '%s' already exists"), file->rsrc->url);
         }
       else if (err->apr_err == SVN_ERR_RA_DAV_PATH_NOT_FOUND)
         {
@@ -977,7 +979,7 @@ static svn_error_t * commit_stream_write
   /* drop the data into our temp file */
   status = apr_file_write_full(pb->tmpfile, data, *len, NULL);
   if (status)
-    return svn_error_wrap_apr(status, "Could not write svndiff to temp file");
+    return svn_error_wrap_apr(status, _("Could not write svndiff to temp file"));
 
   return SVN_NO_ERROR;
 }
@@ -1067,7 +1069,7 @@ static svn_error_t * commit_close_file(v
       if (req == NULL)
         {
           return svn_error_createf(SVN_ERR_RA_DAV_CREATING_REQUEST, NULL,
-                                   "Could not create a PUT request (%s)",
+                                   _("Could not create a PUT request (%s)"),
                                    url);
         }
       
@@ -1214,7 +1216,7 @@ static svn_error_t * apply_log_message(c
   rv = ne_proppatch(cc->ras->sess, baseline_rsrc.wr_url, po);
   if (rv != NE_OK)
     {
-      const char *msg = apr_psprintf(pool, "applying log message to %s",
+      const char *msg = apr_psprintf(pool, _("applying log message to %s"),
                                      baseline_rsrc.wr_url);
       return svn_ra_dav__convert_error(cc->ras->sess, msg, rv);
     }
Index: subversion/libsvn_ra_dav/fetch.c
===================================================================
--- subversion/libsvn_ra_dav/fetch.c	(revision 9300)
+++ subversion/libsvn_ra_dav/fetch.c	(working copy)
@@ -49,6 +49,8 @@
 #include "svn_dav.h"
 #include "svn_time.h"
 
+#include "svn_private_config.h"
+
 #include "ra_dav.h"
 
 
@@ -251,7 +253,7 @@ static svn_error_t *simple_store_vsn_url
   /* store the version URL as a property */
   SVN_ERR_W( (*setter)(baton, SVN_RA_DAV__LP_VSN_URL, 
                        svn_string_create(vsn_url, pool), pool),
-             "Could not save the URL of the version resource" );
+             _("Could not save the URL of the version resource") );
 
   return NULL;
 }
@@ -395,7 +397,7 @@ static svn_error_t *custom_get_request(n
   if (req == NULL)
     {
       return svn_error_createf(SVN_ERR_RA_DAV_CREATING_REQUEST, NULL,
-                               "Could not create a GET request for '%s'",
+                               _("Could not create a GET request for '%s'"),
                                url);
     }
 
@@ -459,7 +461,7 @@ static svn_error_t *custom_get_request(n
     {
        const char *msg;
 
-       msg = apr_psprintf(pool, "GET request failed for %s", url);
+       msg = apr_psprintf(pool, _("GET request failed for %s"), url);
        if (err)
          svn_error_clear (err);
        err = svn_ra_dav__convert_error(sess, msg, decompress_rv);
@@ -582,7 +584,7 @@ static svn_error_t *simple_fetch_file(ne
                                         pool,
                                         &frc.handler,
                                         &frc.handler_baton),
-             "Could not save file");
+             _("Could not save file"));
 
   /* Only bother with text-deltas if our caller cares. */
   if (! text_deltas)
@@ -631,7 +633,7 @@ static void get_file_reader(void *userda
       /* Uh oh, didn't write as many bytes as neon gave us. */
       return 
         svn_error_create(SVN_ERR_STREAM_UNEXPECTED_EOF, NULL,
-                         "Error writing to stream: unexpected EOF");
+                         _("Error writing to stream: unexpected EOF"));
     }
 #endif
       
@@ -816,9 +818,9 @@ svn_error_t *svn_ra_dav__get_file(void *
           if (strcmp (hex_digest, expected_checksum->data) != 0)
             return svn_error_createf
               (SVN_ERR_CHECKSUM_MISMATCH, NULL,
-               "Checksum mismatch for '%s':\n"
+               _("Checksum mismatch for '%s':\n"
                "   expected checksum:  %s\n"
-               "   actual checksum:    %s\n",
+               "   actual checksum:    %s\n"),
                path, expected_checksum->data, hex_digest);
         }
     }
@@ -1077,14 +1079,14 @@ svn_error_t *svn_ra_dav__get_dated_revis
                                           drev_start_element, drev_end_element,
                                           revision, NULL, NULL, pool);
   if (err && err->apr_err == SVN_ERR_UNSUPPORTED_FEATURE)
-    return svn_error_quick_wrap(err, "Server does not support date-based "
-                                "operations");
+    return svn_error_quick_wrap(err, _("Server does not support date-based "
+                                "operations"));
   else if (err)
     return err;
 
   if (*revision == SVN_INVALID_REVNUM)
     return svn_error_create(SVN_ERR_INCOMPLETE_DATA, NULL,
-                            "Invalid server response to dated-rev request");
+                            _("Invalid server response to dated-rev request"));
 
   return SVN_NO_ERROR;
 }
@@ -1171,8 +1173,8 @@ svn_error_t *svn_ra_dav__change_rev_prop
     return 
       svn_error_create
       (SVN_ERR_RA_DAV_REQUEST_FAILED, err,
-       "DAV request failed; it's possible that the repository's "
-       "pre-revprop-change hook either failed or is non-existent");
+       _("DAV request failed; it's possible that the repository's "
+       "pre-revprop-change hook either failed or is non-existent"));
 
   return SVN_NO_ERROR;
 }
@@ -1913,7 +1915,7 @@ static int cdata_handler(void *userdata,
           {
             /* Short write without associated error?  "Can't happen." */
             CHKERR( svn_error_createf(SVN_ERR_STREAM_UNEXPECTED_EOF, NULL,
-                                      "Error writing to '%s': unexpected EOF",
+                                      _("Error writing to '%s': unexpected EOF"),
                                       rb->namestr->data) );
           }
       }
@@ -2050,7 +2052,7 @@ static int end_element(void *userdata, i
         else
           {
             CHKERR( svn_error_createf(SVN_ERR_XML_UNKNOWN_ENCODING, NULL,
-                                      "Unknown XML encoding: '%s'",
+                                      _("Unknown XML encoding: '%s'"),
                                       rb->encoding->data) );
             abort(); /* Not reached. */
           }
@@ -2310,7 +2312,7 @@ static svn_error_t * reporter_finish_rep
     {
       return svn_error_createf 
         (SVN_ERR_RA_DAV_REQUEST_FAILED, NULL,
-         "REPORT response handling failed to complete the editor drive");
+         _("REPORT response handling failed to complete the editor drive"));
     }
 
   /* store auth info if we can. */
Index: subversion/libsvn_ra_dav/options.c
===================================================================
--- subversion/libsvn_ra_dav/options.c	(revision 9300)
+++ subversion/libsvn_ra_dav/options.c	(working copy)
@@ -27,6 +27,8 @@
 #include "svn_error.h"
 #include "svn_ra.h"
 
+#include "svn_private_config.h"
+
 #include "ra_dav.h"
 
 
@@ -127,10 +129,10 @@ svn_error_t * svn_ra_dav__get_activity_c
     {
       /* ### error */
       return svn_error_create(SVN_ERR_RA_DAV_OPTIONS_REQ_FAILED, NULL,
-                              "The OPTIONS response did not include the "
+                              _("The OPTIONS response did not include the "
                               "requested activity-collection-set; "
                               "this often means that "
-                              "the URL is not WebDAV-enabled");
+                              "the URL is not WebDAV-enabled"));
     }
 
   *activity_coll = oc.activity_coll;
Index: subversion/libsvn_ra_dav/util.c
===================================================================
--- subversion/libsvn_ra_dav/util.c	(revision 9300)
+++ subversion/libsvn_ra_dav/util.c	(working copy)
@@ -30,6 +30,8 @@
 #include "svn_path.h"
 #include "svn_config.h"
 
+#include "svn_private_config.h"
+
 #include "ra_dav.h"
 
 
@@ -265,15 +267,15 @@ svn_error_t *svn_ra_dav__convert_error(n
     {
     case NE_AUTH:
       errcode = SVN_ERR_RA_NOT_AUTHORIZED;
-      msg = "authorization failed";
+      msg = _("authorization failed");
       break;
       
     case NE_CONNECT:
-      msg = "could not connect to server";
+      msg = _("could not connect to server");
       break;
 
     case NE_TIMEOUT:
-      msg = "timed out waiting for server";
+      msg = _("timed out waiting for server");
       break;
 
     default:
@@ -443,7 +445,7 @@ svn_error_t *svn_ra_dav__set_neon_body_p
          size for buffered files. */
   status = apr_file_info_get(&finfo, APR_FINFO_SIZE, body_file);
   if (status)
-    return svn_error_wrap_apr(status, "Can't calculate the request body size");
+    return svn_error_wrap_apr(status, _("Can't calculate the request body size"));
 
   ne_set_request_body_provider(req, (size_t) finfo.size,
                                ra_dav_body_provider, body_file);
@@ -629,12 +631,12 @@ parsed_request(ne_session *sess,
     {
       if (code == 404)
       {
-        msg = apr_psprintf(pool, "'%s' path not found", url);
+        msg = apr_psprintf(pool, _("'%s' path not found"), url);
         err = svn_error_create(SVN_ERR_RA_DAV_PATH_NOT_FOUND, NULL, msg);
       }
       else
       {
-        msg = apr_psprintf(pool, "%s of '%s'", method, url);
+        msg = apr_psprintf(pool, _("%s of '%s'"), method, url);
         err = svn_ra_dav__convert_error(sess, msg, rv);
       }
       goto cleanup;
@@ -645,8 +647,8 @@ parsed_request(ne_session *sess,
   if (msg != NULL && *msg != '\0')
     {
       err = svn_error_createf(SVN_ERR_RA_DAV_REQUEST_FAILED, NULL,
-                              "The %s request returned invalid XML "
-                              "in the response: %s (%s)",
+                              _("The %s request returned invalid XML "
+                              "in the response: %s (%s)"),
                               method, msg, url);
       goto cleanup;
     }
@@ -659,7 +661,7 @@ parsed_request(ne_session *sess,
   ne_xml_destroy(error_parser);
   if (err)
     return svn_error_createf(err->apr_err, err,
-                             "%s request failed on '%s'", method, url );
+                             _("%s request failed on '%s'"), method, url );
   return SVN_NO_ERROR;
 }
 
@@ -777,6 +779,6 @@ svn_ra_dav__request_dispatch(int *code_p
 
   /* We either have a neon error, or some other error
      that we didn't expect. */
-  msg = apr_psprintf(pool, "%s of %s", method, url);
+  msg = apr_psprintf(pool, _("%s of %s"), method, url);
   return svn_ra_dav__convert_error(session, msg, rv);
 }
Index: subversion/svnversion/main.c
===================================================================
--- subversion/svnversion/main.c	(revision 9300)
+++ subversion/svnversion/main.c	(working copy)
@@ -22,6 +22,8 @@
 #include "svn_opt.h"
 #include <apr_tables.h>
 
+#include "svn_private_config.h"
+
 #define SVNVERSION_OPT_VERSION SVN_OPT_FIRST_LONGOPT_ID
 
 struct status_baton
@@ -119,7 +121,7 @@ static void
 usage(const apr_getopt_option_t *options, apr_pool_t *pool)
 {
   fprintf(stderr, 
-          "usage: svnversion [options] wc_path [trail_url]\n\n"
+          _("usage: svnversion [options] wc_path [trail_url]\n\n"
           "  Produce a compact \"version number\" for the working copy path\n"
           "  WC_PATH.  TRAIL_URL is the trailing portion of the URL used to\n"
           "  determine if WC_PATH itself is switched (detection of switches\n"
@@ -142,7 +144,7 @@ usage(const apr_getopt_option_t *options
           "  If invoked on a directory that is not a working copy, an\n"
           "  exported directory say, the program will output \"exported\".\n"
           "\n"
-          "Valid options:\n");
+          "Valid options:\n"));
   while (options->description)
     {
       const char *optstr;
@@ -175,9 +177,9 @@ main(int argc, const char *argv[])
   apr_getopt_t *os;
   const apr_getopt_option_t options[] =
     {
-      {"no-newline", 'n', 0, "do not output the trailing newline"},
-      {"committed",  'c', 0, "last changed rather than current revisions"},
-      {"version", SVNVERSION_OPT_VERSION, 0, "show version information"},
+      {"no-newline", 'n', 0, N_("do not output the trailing newline")},
+      {"committed",  'c', 0, N_("last changed rather than current revisions")},
+      {"version", SVNVERSION_OPT_VERSION, 0, N_("show version information")},
       {0,             0,  0,  0}
     };
 
@@ -259,7 +261,7 @@ main(int argc, const char *argv[])
         }
       else
         {
-          fprintf (stderr, "'%s' not versioned, and not exported\n", wc_path);
+          fprintf (stderr, _("'%s' not versioned, and not exported\n"), wc_path);
           svn_pool_destroy (pool);
           return EXIT_FAILURE;
         }


