cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
bdwilliams
Level 3

1208 ANSI code page with Unicode Only Language

Hey folks, another language/localization issue here with IS 2008.

From other posts I've seen it seems that perhaps the Setup.exe does not support Unicode only code pages? I am not sure if this is the case, but if so could be detrimental to my project.

IS was missing several languages so I went ahead and created those languages. Since my user interface is English I did not need translations, I just needed 2 strings for each of these languages to have the proper code page so they could create the shortcuts.

I had to do some poking around to find out how to get the Add New Languages dialog to list some of the languages I needed to support but for some reason was not displaying itself. So I edited the language.dat in the IS2008 directory. Adding "Language=CodePage" so for Macedonian you've got "Macedonian=42f" etc. This actually worked, and I could then Add New Language and add the language to my project. Upon opening the project there it was, it had all the English strings by default, fine by me, pasted in my two Macedonian text strings and they appeared perfectly!

Built the installation to test it out and it functioned as expected creating the shortcuts properly.

This worked for a few other languages where it was necessary, 3 total I believe. Now however I am hung up on one language Hindi. Hindi is a Unicode only language and has no ANSI code page. This method therefore does not work for trying to create the language.

I don't believe this is a limitation of MSI because it supports Unicode so long as it's only a single code page for the MSI, which is why IS breaks it down into transforms and applies them at build time.

I receive the 1208 ANSI code page error when attempting to apply the Hindi transform through the Language selection dialog.

There is no way around this, since no ANSI code page exists for Hindi per Microsoft.

Any insight into how I can create an installer that supports Hindi would be appreciated. If this is simply unsupported and I can't do it, that's an acceptable answer as well, though alternatives would be nice.
Labels (1)
0 Kudos
(5) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Theoretically using the psuedo-codepage for UTF-8 would allow Hindi to be used. At this point InstallShield does not offer any way to do a UTF-8 codepage build. If you have a way of making GetLocaleInfo lie for LOCALE_IDEFAULTANSICODEPAGE (return 65001 instead of 0), that just might make it work (I've not tested). If you could get me a sample project that, other than this problem, is ready to build, I could try tweaking our code to see what it takes to make at least these languages use UTF-8.

Note that in the past Windows Installer support UTF-8 has been iffy, sometimes not setting the correct font, so even if we manage to build it, MSI may or may not show it.
0 Kudos
bdwilliams
Level 3

Michael,

Thanks for your willingness to investigate this issue. I have been working with Alpesh in support and we have been unable to move any further on the issue and he stated that InstallShield does not support Hindi. I have emailed you information on receiving the project files.

We can continue our discussion on the issue here whenever you have a chance to review the resources.

Addendum: We are investigating creating a DLL to perform the Shortcut creation and simply adding a UserLanguageID condition to the installation and if it is Hindi call the function to create and remove the shortcut instead of using the component. This would be a hack, but will be necessary if another solution isn’t available.

-Brett
0 Kudos
bdwilliams
Level 3

Is it possible to create a dummy entry in the Language Selection Dialog that would allow me to add Hindi and have it read Hindi as the system language (for default on that system) but have it use English so it doesn't break when applying the transform?

This would allow me to follow the standard procedure and use an external DLL or other resource to create the shortcuts, yet still maintain the same procedure as the other languages.

I am trying to avoid creating a separate installation for Hindi.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

I received your files and was able to reproduce your error. I was able to change our code to make the 1208 error go away, but this revealed a more fundamental problem: I don't see a way to add Hindi text to the install. It is changed into question marks as it gets added, and not just visually in our IDE, but as actual characters in the resulting database. I believe our IDE needs to become fully Unicode before we can support this.

For now I think you will have to investigate your alternate workarounds. You certainly could attempt to run custom actions based on conditions that are only true when Hindi is selected for their Windows UI Language. I'm not sure how to get past the 1208 runtime error if you actually use Hindi for this until we address the full Hindi process; the language selection dialog isn't currently designed to be extended by setup authors.

We have an Issue #IOC-000063090 tracking adding Hindi to the new language wizard, and I've added notes about some of these further changes that need to be made to support Hindi.
0 Kudos
bdwilliams
Level 3

We are working towards using an external DLL to create the shortcuts for Hindi, it is just going to have to base off of the English default language for now since we cannot modify that language selection dialog.

It's either that or create a launcher that determines if it's Hindi prior to launching the setup and launches an alternative setup for Hindi.

Thanks for taking the time to investigate the issue.
0 Kudos