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" <[EMAIL PROTECTED]> 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


_______________________________________________
Demexp-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/demexp-dev

Répondre à