[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: |
David MENTRE |
Subject: |
[Demexp-dev] Re: Issue to use ocaml-gettext with lablgtk |
Date: |
Tue, 24 Jan 2006 19:52:16 +0100 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.4 (gnu/linux) |
Hello Sylvain,
I'm making progress, but more issues appear. :-)
David MENTRE <address@hidden> writes:
> 2006/1/23, Sylvain Le Gall <address@hidden>:
>> For a GTK2 program, i recommend to use codeset = Some "UTF-8".
>
> Ok. I'll fix that.
done.
>> If you use a ".glade" file, use GettextStub.Native (because the
>> translatable string stored in the file are translated using C gettext).
>
> Ok, that explains my issue.
Ok, using GettextStub.Native the translation works!
Here is my definition of my program's Gettext module:
module Gettext = Gettext.Program
(struct
let textdomain = "demexp"
let codeset = Some "UTF-8"
let dir = None
let dependencies = Gettext.init
end)
(GettextStub.Native)
The .glade translation works when calling my program with:
$ echo $LANG
fr_FR.UTF-8
$ ./gtk2-clnt/demexp-gtk2-client --gettext-dir build/share/locale/po/
A question: why do I need to give the final po/ directory? I though that
I should give "build/share/locale/", as the default for gettext-dir is
["/usr/share/locale"; "/usr/local/share/locale"].
But now working translation raises another issue: call to printf are
modified!!
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
It is obvious that the locale is taken into account for printing the
string. But this seems quite strange to me, as I do not use an _s
function in this call to printf.
This behaviour is a issue to me because:
- I want to control when a sentence is interpreted as translatable or
not;
- I'm having autotest where I check hard-coded results for certain
function calls. This behaviour breaks them.
> 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?
Best wishes,
d.
--
pub 1024D/A3AD7A2A 2004-10-03 David MENTRE <address@hidden>
5996 CC46 4612 9CA4 3562 D7AC 6C67 9E96 A3AD 7A2A