This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: an i18n sample


On Mon, Oct 25, 2004 at 10:04:53PM +0200, Eli Zaretskii wrote:
> > Date: Sun, 24 Oct 2004 16:18:02 -0400
> > From: Daniel Jacobowitz <drow@false.org>
> > Cc: Baurjan Ismagulov <ibr@ata.cs.hun.edu.tr>,
> > 	gdb-patches@sources.redhat.com
> > 
> > I agree about partial translations, of course.  In this particular
> > case, it looks like the file needs type_sprint or type_to_string.
> 
> It is generally bad to produce strings in parts, because that prevents
> the translator from seing the full sentence or at least a full phrase.
> So I think type_sprint etc. will not solve the problem I was worried
> about.

> That's not what I meant.  I wanted to see something like this:
> 
>     if (TYPE_LENGTH (type) <= 0)
>       {
>         if (TYPE_NAME (rtype))
>            warning (_("Invalid type size for `%s' detected: %d."),
>                     TYPE_NAME (rtype), TYPE_LENGTH (type));
>         else
>            warning (_("Invalid type size for <unnamed> detected: %d."),
>                     TYPE_LENGTH (type));
>       }

Sorry, my wording was not clear; I understood your suggestion.  I still
disagree with it.  I think that a type whose name is "<unnamed>" or
_("<unnamed>") should recieve the same output as a type whose TYPE_NAME
is NULL.

A format string is a different sort of problem than a partial sentence.
It's a complete grammatical construct, but we have to take what steps
we can to make sure that the parts that get substituted in make sense
in any language.

Can you give an example where the two above sentences should have
different structure?  I can't think of one.

> > That said, the "when" is a partial sentence, and the \n%*s doesn't
> > need to be translated.
> 
> That's a very partial sentence, so it needs to be made a full sentence
> along the same lines as above.

I think this is just an extension of the same different point of
view... the "when" has to be dynamically generated, because it
expressing a computed property of the type.  This is equivalent to the
"instantiated from here" or "with T = " messages from G++ for
templates.

Although I see that the "instantiated from here" message is not marked from
translation in G++.  I thought it was.  There are a lot of similar
constructs which are, however.


-- 
Daniel Jacobowitz


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]