[fpc-pascal] Resourcestring questions

Michael Van Canneyt michael at freepascal.org
Fri Sep 14 17:51:45 CEST 2007



On Thu, 13 Sep 2007, Adriaan van Os wrote:

> FPCs resourcestring feature is a great way to localize applications, yet I
> have the following questions.
> 
> 1. The tutorial at
> <http://wiki.lazarus.freepascal.org/Translations_/_i18n_/_localizations_for_programs>
> gives the following example
> 
>  resourcestring
>    Caption1 = 'Some text';
>    HelloWorld1 = 'Hello World';
> 
>  Label1.Caption := HelloWorld1;
> 
> Wouldn't it be simpler if resourcestrings could be defined and used directly
> by the form ? That would save a lot of code of the form Labelxx.Caption :=
> yyy. Of course, this implies a "reload form strings" method to reload form
> strings when the current language changes.
> 
> (my apologies if this is a Lazarus question, it seems related to the compiler
> also)

There is a hook for this, but the question is how to identify the string you
need.

> 
> 2. Previously, when using a "GetStringFromResource" routine, I could write
> something like
> 
> 	for n:=1 to 100 do ComboAdd( GetStringFromResource( kComboItemOffs +
> n))
> 
> This doesn't seem to be possible with resourcestring lists, because they use
> string constants, rather then numbers. Unless, of course, we extend the
> compiler to optionally attach a number or a number-constant to resourcestring
> entries rather than a string constant. Plus a standard function that converts
> the number into a string. This facilitates converting current applications
> (that still use resource IDs) also. Any comments ?

No applications use resource ID's at the moment. 

Changing this is not so easy; Allocating a resource ID per string is not an
easy algorithm, since you don't know in advance which strings will be
included in your application, and which ones are not.

Michael.



More information about the fpc-pascal mailing list