Localization on Device

  • Thread starter Thread starter B
  • Start date Start date
B

B

I am creating an application which has about 22 languages to be supported,
with further languages to be added in the future.

I have read through the Localization guide on MSDN:-

http://msdn.microsoft.com/en-us/library/1k15k55d.aspx

The area that is my main concern is the management of the User Interface
strings.

I want to be able to easily allow interpreters to receive any translation
that exist in the code. I had though of creating say a spreadsheet of all
translations for all languages. Then from this somehow create the resource
files. I am not sure if this is feasible or practible. Any suggestion from
people who have managed this activity would be appreciated.

As this is an embedded device, I want to ensure that all the languages are
stored in Flash/EEPROM and only the active language is loaded into RAM. Can
anyone give details on how to implement this.

There will be a need to change the languages during runtime from an menu
selection by the user. This would mean reading the languages from
Flash/EEPROM and updating the current display to reflect this language
update. As there any examples of how this can be achived?

Any advice or pointers to websites or further information would be really
appreciated.

TIA,BEN
 
Hello,

there are 3rd party solutions available for these things!
Look at www.multilizer.com and www.sisualizer.com for instance.
They can create language packs and will find the languages in your app.
They also can create packages for your translators.

Greetings

Markus
 
Hi Markus,

Thank you for your reply. Perhaps I did not make my question clear enough
but it is not the translations that I am worried about (we have in-house
cababilities to trnaslate complex language) rather it is that management of
that. i.e. providing the English strings to a translater and then feeding
that translation back into the code in a manner that is as non-interactive as
possible, from the developers perspective .

I thought I would add another point which I did not make clear in my first
question to help anyone else provide a solution. The device will boot
directly to this application so there will be no windows shell nor a file
system available. This I think makes things a bit more tricky.

TIA,BEN
 
This is handled fine by localized resource files and a resource manager.
We've created a few localized apps and while a bit tedious, it's
straightforward. Having a shell actually makes it more difficult.


--

Chris Tacke, Embedded MVP
OpenNETCF Consulting
Giving back to the embedded community
http://community.OpenNETCF.com
 
Hi Chris,

Do you specific examples or guidance on:

1. Managing translation text between translator and code
2. Storing languages in Flash/EEPROM
3. Changing languages during runtime

The big sell for Win CE and Comact Framework is that it is very powerful for
multiple language support, so I would hope to do this fairly easily and
without external tools. Am I expecting too much?

TIA,BEN
 
Hi

You can put all your strings to be translated into a text file, then
use the resource generator to compile that into a language specific
resource, then link that into a satellite assembly. When the culture
changes on the device the app will look for the satellite assembly
that is for that culture and if present it will use it.

Here are some articles about it:

http://www.codeguru.com/columns/vb/article.php/c5601
http://msdn.microsoft.com/en-us/library/21a15yht(VS.71).aspx

I believe you can force the change of language by setting the
currentUICulture of the thread to the specific language culture you
want if you want to test, or switch without changing the culture of
the whole device.

HTH

Matt
 
Ah, this may be an issue.
In the CF, there is no way (that we've found anyways) to
programatically change the UI culture independently of the device
Regional settings.
You can change the Device's Regional settings by writing the
appropriate values to the registry, but the only way to have them
"take" is to warm boot the device.
 
It's not relevant for the original poster. He stated that the device will
boot right to his app, so he never needs to change the device regional
settings. We typically just store the desired locale in the app itself.
When teh user changes it, they're using our app, so we know it's been
changed. I have a whole framework for doing this (it's really simple,
nothing magic about it). I really should blog it.


--

Chris Tacke, Embedded MVP
OpenNETCF Consulting
Giving back to the embedded community
http://community.OpenNETCF.com



Ah, this may be an issue.
In the CF, there is no way (that we've found anyways) to
programatically change the UI culture independently of the device
Regional settings.
You can change the Device's Regional settings by writing the
appropriate values to the registry, but the only way to have them
"take" is to warm boot the device.
 
Chris, I did say "There will be a need to change the languages during
runtime from an menu selection by the user. "

So I do not want to have to reboot the system for this to take affect.

Your Blog sounds like an excelent idea. If you have time do you think you
could do it?

THANKS,BEN
 
Hello,

the tools mentioned help you exactly! They will output resource files
you can use in your CF application and will extract all strings needed
to be translated from your CF application.

The other part they do is to help your translators to efficently
translate things as they hint e.g. when translated strings might be too
long or might miss format string tokens etc.

Greetings

Markus
 
Hi Markus,

Thansk for the information. Which tool do you think is the best - I assume
you have used both.

Do you have any suggestions on how the languages can be stored in
Flash/EEPROM?

Thanks,BEN
 
Hello,

no I only use one of both and only for my not MS based PC software
currently. But normally the output is a separate ressource file for
every language. You can load this resourcefile from your application
code. Don't ask me how this works, the experts here can surely tell you.
I only know that you can implement language switching at runtime with this.

Since those are resource files it's like with every file: copy it onto
your device and it's there. I'm not sure what type of device you're
developing but it it can connect via ActiveSync to a PC you can even
build installers (e.g. with InstallShield) which directly will install
onto your device and create the shortcut(s) etc.

Greetings

Markus
 
Back
Top