Thread (56 messages) flat view 56 messages, 5 authors, 2016-06-15

Re: [PATCH/RFC v4 1/7] Add infrastructure for translating Git with gettext

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:48:54

On Wed, Jun 2, 2010 at 09:12, Peter Krefting [off-list ref] wrote:
Ævar Arnfjörð Bjarmason:
quoted
+               color_fprintf_ln(s->fp, c, _("#   (use \"git rm --cached
<file>...\" to unstage)"));
+       color_fprintf_ln(s->fp, c, _("#   (use \"git add/rm <file>...\" as
appropriate to mark resolution)"));
+       color_fprintf_ln(s->fp, c, _("#"));
This is a multi-line string, and should be translated as such.

The trailing "#" should either be part of the translated multi-line string,
or be added explicitely, and untranslated, at the end.
quoted
+               color_fprintf_ln(s->fp, c, _("#   (use \"git rm --cached
<file>...\" to unstage)"));
+       color_fprintf_ln(s->fp, c, _("#"));
Determine how to handle the trailing "#" as above.
quoted
+               color_fprintf_ln(s->fp, c, _("#   (use \"git add/rm
<file>...\" to update what will be committed)"));
+       color_fprintf_ln(s->fp, c, _("#   (use \"git checkout --
<file>...\" to discard changes in working directory)"));
Multi-line.
quoted
+               color_fprintf_ln(s->fp, c, _("#   (commit or discard the
untracked or modified content in submodules)"));
+       color_fprintf_ln(s->fp, c, _("#"));
Trailing "#".
quoted
+       color_fprintf_ln(s->fp, c, _("#   (use \"git %s <file>...\" to
include in what will be committed)"), how);
+       color_fprintf_ln(s->fp, c, _("#"));
Ditto.
quoted
+       case 1: how = _("both deleted:"); break;
+       case 2: how = _("added by us:"); break;
+       case 3: how = _("deleted by them:"); break;
+       case 4: how = _("added by them:"); break;
+       case 5: how = _("deleted by us:"); break;
+       case 6: how = _("both added:"); break;
+       case 7: how = _("both modified:"); break;
       }
-       color_fprintf(s->fp, c, "%-20s%s\n", how, one);
+       color_fprintf(s->fp, c, _("%-20s%s\n"), how, one);
does color_fprintf() gracefully handle cutting text for multi-byte
encodings, and text width? Otherwise I can see this bite us for all
non-ASCII locales in general (if long translated are needed), and for CJK
locales in particular (for variable character widths).
quoted
-               color_fprintf(s->fp, color(WT_STATUS_HEADER, s), "%s",
extra.buf);
+               color_fprintf(s->fp, color(WT_STATUS_HEADER, s), _("%s"),
extra.buf);
Should not be in _()
quoted
-       fprintf(s->fp, "\n");
+       fprintf(s->fp, _("\n"));
Ditto.
quoted
+               color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s),
_("#"));
+               color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s), _("#
Initial commit"));
+               color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s),
_("#"));
Either a multi-line string, or untranslate the "#"s.
All of the points you raised are correct. This is a bad way to do
things.

It was added in Jeff in his original WIP patch as an example of
translation being possible, but I should just remove it. It's not
ready to go in for the reasons you cited.

I'll just remove the wt-status.c chunk out of the patch completely in
the next submission, and instead translate a few select strings in
some C program well.

Making things like wt-status.c translatable is going to be hard to do
properly. It uses a lot of lego (sticking strings incrementally
together), and due to the coloring of output this'll be particularly
hard to convert.

(Also, for reference, here's a general guide on how to translate C
programs well):

    http://gnu.april.org/software/automake/manual/gettext/Preparing-Strings.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help