[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Some problematic strings in Subversion

From: Stefan Sperling <stsp_at_elego.de>
Date: Mon, 20 Oct 2008 19:34:35 +0100

On Mon, Oct 20, 2008 at 05:22:34PM +0200, Jens Seidel wrote:
> Hi,
>
> during the German translation of Subversion I noticed a few strings I
> do not properly understand or which are faulty. See also the small
> attached file.
>
> Here are my notes:
>
> #: ../libsvn_wc/tree_conflicts.c:144
> msgid "No delimiter after 'node_kind' in tree conflict description"
> #: ../libsvn_wc/tree_conflicts.c:177
> msgid "No delimiter after 'operation' in tree conflict description"
> #: ../libsvn_wc/tree_conflicts.c:210
> msgid "No delimiter after 'action' in tree conflict description"
>
> Should these error messages really get translated? Can they occur without
> manual editing of a repository (dump file, db, ...)?

No, when this error occurs, either there's a bug in Subversion,
or the working copy has been corrupted, or both.

> Please try to collect such messages into something as
> "No delimiter after '%s' in tree conflict description"
> to reduce work for translators.

OK. Can you make a patch?

> Similar:
> #: ../svn/main.c:1642
> msgid "--depth and --set-depth are mutually exclusive"
> #: ../svn/main.c:1652
> msgid "--with-all-revprops and --with-no-revprops are mutually exclusive"
> #: ../svn/main.c:1662
> msgid "--with-revprop and --with-no-revprops are mutually exclusive"
>
> Not clear:
> #: ../libsvn_wc/tree_conflicts.c:329
> msgid "Invalid tree conflict data in entries file, but no idea what went wrong"
>
> Should "entries" be translated or is it a filename (.svn/entries)? Quotes
> are missing in the latter case.

r33785.
"The entries file" is a general name for .svn/entries.

> Also: s/tree conflict data/tree conflict description/ for consistency?

Well, the data is made up of several conflict descriptions.

> #: ../libsvn_wc/tree_conflicts.c:383 ../svn/tree-conflicts.c:280
> msgid "Bad node_kind in tree conflict description"
> s/node_kind/'node_kind'/ (same for "operation", "action", "reason")

OK. Can you make a patch?

> #: ../svn/tree-conflicts.c:57
> #, c-format
> msgid ""
> " The update attempted to delete '%s'\n"
> " (possibly as part of a rename operation).\n"
>
> It's much better to avoid the indentation for translation and later
> to perform s/^/ /, s/\n[^$]/\n /. So it is easiely possible to
> change the indentaion later.

I don't understand.
Does this mean we have to change something in the code,
or that you will run sed commands on the translation files?

> #: ../svn/tree-conflicts.c:109
> #, c-format
> msgid ""
> "Either you have added '%s' locally, or it has been added in the\n"
> "history of the branch you are merging into.\n"
>
> s/into/from/?

No!!! 'Into' is correct.

> If the addition happend in the past of the current branch
> Subversion would know about it, right?

It has nothing to do with what Subversion knows about the file.

The file is present in the working copy, which interferes with
an operation carried out by an update/merge in such a way that
it causes a tree conflict.

The point is that the merge cannot succeed without conflict
because of the file's presence.

> A few times there occurs "victim" and I have trouble translating it. A victim
> is the item which caused a tree conflict, right? So a translation similar to
> "reason" would make sense? Do you have a small example (add it as translator
> comment in the source)?

Quoting libsvn_wc/tree_conflicts.h:

 * Each tree conflict is identified by the path of the file
 * or directory (both a.k.a node) that it affects.
 * We call this file or directory the "victim" of the tree conflict.
 *
 * For example, a file that is deleted by an update but locally
 * modified by the user is a victim of a tree conflict.

Basically, the victim is in danger. What that means exactly depends
on the tree conflict at hand. For example, local changes made to
the victim may disappear if a commit was made from its tree conflicted
state. Or the victim may disappear from the versioned tree altogether.
Or the victim is not in the tree but should be, because we have a text
delta for it (in case of files), or file or subdirectory additions (in
case of directories).

I hope this explains it. It's hard to come up with a general definition.

Since I speak German, let me make a suggestion which does not have
the same negative connotations as the literal translation "Opfer":
"(vom Baumkonflikt) betroffenes Objekt"

Would that do?

> #: ../libsvn_wc/tree_conflicts.c:357
> msgid "Empty victim path in tree conflict description"
> #: ../svn/tree-conflicts.c:242
> #, c-format
> msgid "Invalid tree conflict data for victim %s"
>
> PS: The German translation in trunk is now up-to-date (except two
> strings). Will merge it into 1.5.x soon ...

Great!

> Index: subversion/svn/notify.c
> ===================================================================
> --- subversion/svn/notify.c (Revision 33718)
> +++ subversion/svn/notify.c (Arbeitskopie)
> @@ -83,7 +83,7 @@
>
> if (nb->skipped_paths > 0)
> SVN_ERR(svn_cmdline_printf
> - (pool,_(" Skipped paths: %u\n"), nb->skipped_paths));
> + (pool,_(" Skipped paths: %u\n"), nb->skipped_paths));

Nice catch! But it should be:

 - (pool,_(" Skipped paths: %u\n"), skipped_paths));
 + (pool, _(" Skipped paths: %u\n"), skipped_paths));

Committed in r33784.

>
> return SVN_NO_ERROR;
> }
> Index: subversion/svnadmin/main.c
> ===================================================================
> --- subversion/svnadmin/main.c (Revision 33718)
> +++ subversion/svnadmin/main.c (Arbeitskopie)
> @@ -337,7 +337,7 @@
>
> {"dump", subcommand_dump, {0}, N_
> ("usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]\n\n"
> - "Dump the contents of filesystem to stdout in a 'dumpfile'\n"
> + "Dump the contents of the repository to stdout in a 'dumpfile'\n"

'svnadmin dump' really *only* dumps the filesystem! No config files,
no locks, no hook scripts, etc.

I'd strongly suggest we really make it dump the whole repository before
changing this message.

> "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"
> Index: subversion/libsvn_wc/tree_conflicts.c
> ===================================================================
> --- subversion/libsvn_wc/tree_conflicts.c (Revision 33718)
> +++ subversion/libsvn_wc/tree_conflicts.c (Arbeitskopie)
> @@ -75,7 +75,7 @@
>
> if (! (*start < end))
> return svn_error_create(SVN_ERR_WC_CORRUPT, NULL,
> - _("Unexpected end of tree conflict description, within escape "
> + _("Unexpected end of tree conflict description within escape "
> "sequence in 'victim_path'"));

That would make sense if it was German, but English has more lax comma
placing rules. The original string is fine.

Thanks,
Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-10-20 20:35:00 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.