[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Demexp-dev] Re: Issue to use ocaml-gettext with lablgtk
From: |
Sylvain Le Gall |
Subject: |
[Demexp-dev] Re: Issue to use ocaml-gettext with lablgtk |
Date: |
Tue, 24 Jan 2006 22:05:35 +0100 |
User-agent: |
Mutt/1.5.11 |
Hello,
On Tue, Jan 24, 2006 at 09:53:55PM +0100, David MENTRE wrote:
> Sylvain,
>
> [ Could you keep demexp-dev in the Cc:? It allows archiving of emails
> for future people having same issue as me. ]
>
OK, sorry i don't have seen the CC.
> "Sylvain Le Gall" <address@hidden> writes:
>
> >> For example, if at the end of a module I put:
> >> let _ = Printf.printf "1.0 = %3.3f\n" 1.0
> >>
> >> I get as result when launching above program:
> >> 1.0 = 1,000
> >
> > Humm, i think that a C printf call is used in the Printf module, which
> > take into account that locale you have set using LANG.
>
> Hmmm, I'm quite suprised that Printf is using C printf. But I checked in
> 3.08.2 source code and you are indeed right: Printf.scan_format is
> calling external format_float which has a call to C sprintf.
>
> > Maybe, you should try something like "env LC_NUMERIC=C myprogram" which
> > should give you the expected result (if C is bind to english, otherwise
> > try LC_NUMERIC=en_US).
>
> Yes, using LANG=C when calling my program solves the issue. But for my
> autotests, I need to do that *from* the program. Do you see a way to set
> the locale from OCaml, for a given part of the code?
>
Humm, there is a way, but it is C code and it is not really clean:
/* Change language. */
setenv ("LANGUAGE", "fr", 1);
/* Make change known. */
{
extern int _nl_msg_cat_cntr;
++_nl_msg_cat_cntr;
}
(from the gettext manual:
http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC155
)
> >> > However, I'm also using "_s" functions. I suppose I have to define a
> >> > second module for those translations. How am I supposed to use both
> >> > modules? What should be the init sequence? (BTW, I would be nice to
> >> > put a word on this in your documentation)
> >>
> >> Ok, it seems that call to "f_" and the like are working with
> >> GettextStub.Native, so I don't need to use simultaneously
> >> GettextStub.Native and GettextCamomile.Map.
> >>
> >> Is it an issue to use GettextStub.Native?
> >>
> >
> > What are _s functions ?
>
> Sorry, I was confused, I meant s_, f_ & Co. functions.
>
No problem.
> > Why should it be an issue to use GettextStub.Native ?
>
> I don't know. :) I suppose that, as you have made gettext through
> Camomile available, there are some advantages to use it over the stub
> version?
>
Well, the avantage of camomile is that you can produce full ocaml native
application (almost without C binding). The only other advantage, is not
really "external developper" visible: it is a little bit cleaner because
you have better control of thread unsafe variable. But it is not an
issue, both implementation should work well.
Kind regard
Sylvain Le Gall