Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Otput for different languages

9 views
Skip to first unread message

Reinhard Pagitsch

unread,
Aug 12, 2005, 4:33:56 AM8/12/05
to per...@perl.org
Hello,

I want to make my Win32 XS module ready for more than two languages. At
this time it supports german and english. To switch between these two
languages I use a function to get the language ID from the system and
then I use the correct string from a structure. But if I want to add
more languages (french, hungarian, taiwan, arabic, ... ) than I think to
use a structure would be a bad idea, isn't it?
What would be the best way to do this?

Creating include files with defines for each language? But how do I load
the correct one an runtime? Or have I to use language dll's which are
loaded at runtime? But how can I create and load this?

The structure I use:

static const struct
{
char *friendlyname_eng; //english
char *friendlyname_ger; /german
unsigned int id;
int docsummary; // 1 Document Summary 0 Summary Information
} SummaryInformation[] =
{
{ "Category", "Kategorie", PIDDSI_CATEGORY, 1 },
......
};

Thank you,
Reinhard

Jeff 'japhy' Pinyan

unread,
Aug 12, 2005, 9:56:11 AM8/12/05
to Reinhard Pagitsch, per...@perl.org
On Aug 12, Reinhard Pagitsch said:

> I want to make my Win32 XS module ready for more than two languages. At this
> time it supports german and english. To switch between these two languages I
> use a function to get the language ID from the system and then I use the
> correct string from a structure. But if I want to add more languages (french,
> hungarian, taiwan, arabic, ... ) than I think to use a structure would be a
> bad idea, isn't it?
> What would be the best way to do this?
>
> Creating include files with defines for each language? But how do I load the
> correct one an runtime? Or have I to use language dll's which are loaded at
> runtime? But how can I create and load this?

Perhaps you could ask for the language of choice in the process of 'make',
and then s/#include LANGUAGE STUB/#include "$file.h"/ in your XS file?

--
Jeff "japhy" Pinyan % How can we ever be the sold short or
RPI Acacia Brother #734 % the cheated, we who for every service
http://japhy.perlmonk.org/ % have long ago been overpaid?
http://www.perlmonks.org/ % -- Meister Eckhart

Reinhard Pagitsch

unread,
Aug 12, 2005, 10:06:33 AM8/12/05
to per...@perl.org, Jeff 'japhy' Pinyan, per...@perl.org
Jeff 'japhy' Pinyan wrote:
> On Aug 12, Reinhard Pagitsch said:
>
>> I want to make my Win32 XS module ready for more than two languages.
>> At this time it supports german and english. To switch between these
>> two languages I use a function to get the language ID from the system
>> and then I use the correct string from a structure. But if I want to
>> add more languages (french, hungarian, taiwan, arabic, ... ) than I
>> think to use a structure would be a bad idea, isn't it?
>> What would be the best way to do this?
>>
>> Creating include files with defines for each language? But how do I
>> load the correct one an runtime? Or have I to use language dll's which
>> are loaded at runtime? But how can I create and load this?
>
>
> Perhaps you could ask for the language of choice in the process of
> 'make', and then s/#include LANGUAGE STUB/#include "$file.h"/ in your XS
> file?
>
Not a good idea, because the module can be build as a ppm package. And
than all users which are downloading this having the same language as
the system where the module was build, e.g. arabic :)

regards,
Reinhard

0 new messages