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

Re: [PATCH/RFC 05/17] gettext: make the simple parts of git-init localizable

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

On Tue, Aug 31, 2010 at 15:44, Jonathan Nieder [off-list ref] wrote:
Ævar Arnfjörð Bjarmason wrote:
quoted
The only way that could work is if I taught xgettext to extract
strings passed to die(), but then managing the false positives would
probably be more effort than just marking them manually, and it would
be a big load on the translators:

    $ ack 'die\("(.*?)"' --output '$1' *[ch] builtin/*[ch] | sort -u | wc -l
    1153
To pursue this a little further: would there be any false positives?
Maybe I can see a few probable plumbing messages here, but probably
nothing that's unmanagable: http://gist.github.com/559255
We could avoid overwhelming translators by waiting until a file has
been fulling gettextized before allowing xgettext to scavenge it
(i.e., temporarily using a hard-coded list of files in the xgettext
invocation).
Yeah we could go this route. But I'm a bit uneasy about it. The way
I'm doing it now I have to manually look at every message to determine
if it's a porcelain error or not.

But it's easier to accidentally mark something with a filelist like
that, or to mark a future plumbing die message that gets introduced
after a file has made the OK list.

Maybe we should have die_plumbing() and die_porcelain() functions to
indicate the nature of the message, although we could get the same
thing with die() and die(_()) once I'm done.
quoted
quoted
Will strerror() cope correctly without LC_CTYPE set up?  (Not part
of this series, just something I was reminded of.)
My GNU/Linux strerror(3) claims to use LC_MESSAGES, but I didn't test
it.
Sounds like no, then.

$ cat foo.c
#include <stdio.h>
#include <locale.h>
#include <errno.h>

int main(void)
{
       setlocale(LC_ALL, "");
       setlocale(LC_CTYPE, "C");
       errno = ENODEV;
       perror("test");
       return 0;
}
$ make foo
cc     foo.c   -o foo
$ ./foo
test: No such device
$ LANG=de_DE.UTF-8 ./foo
test: Kein passendes Ger?t gefunden
What about with MESSAGES instead of ALL, like we're doing?

    setlocale(LC_MESSAGES, "");
    setlocale(LC_CTYPE, "C");

I don't have a box here with a localized C library to test it on.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help