In our previous episode, Lukasz Sokol said: > Me neither - but IIRC using gettext (dxgettext) was something /incredibly/ > easy : > the translating function is called '_()' :) (yes, function _([const] input: > string): string; ) > > (allegedly, in newer (dx)gettext, not even that- it's enough to have > (dx)gettext unit included, > but don't quote me on this one).
Afaik the dxgettext patched for D2009+ For resourcestrings yes, but using resourcestrings in structured constants and afaik also (D2010+) custom RTTI need updating manually. (while they don't with Delphi's own ITE) > Then the dxgettext handling program creates the strings to be translated > list out of that (saves to text .po file), together with programmatic > context they are used in, as a help for the translator - and then compiles > to .mo (pls sbdy correct me if I'm wrong) which are loaded at program > start/on demand/as resourcestrings, (and IIRC may already support > UTF-8/Unicode/multiple bytes per character strings too - do you)? Afaik it reads .po's directly, unicode only in D2009+ > The gettext program is out there for (almost) all platforms, AND there are > plethora of translation-handling programs compatible with it, out there > too, but you could well enough handle it by editing the po files in any > decent text editor. The dxgettext team has an own editor in pure Delphi code called GORM. It has some features like multiline comments. In the past its main attraction was a google translate connection, but that has died. Still if we want an own editor, converting gorm would be an option. > > I want to knof if the string was called the first time. > > But since I also get the pchar information of the textsnippets from the > > programmemory I can translate (make a list or whatever in the future) all > > snippets before they were called. > > > So you don't want to translate it all at the same time, is that what it is? > Only the strictly necessary portions/snippets as you call them? Since afaik with gettext, the gettext system is inbetween every lookup, you could simply maintain a database of looked up strings there. Since basically there are three levels: 1. sourcecode inspection: in practice also harvest strings from uncompiled code. 2. assembler inspection: in practice also harvests strings from compiled code that is never executed. 3. runtime detection, mark when a string is accessed: risky since certain codepaths might only be rarely stressed. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal