Global Development and Computing Portal Global Development and Computing Portal

Ask Dr. International

Column #6

Just in time for the holidays, Dr. International's e-mail account has been fixed. For a moment, he thought maybe he had been fired and they forgot to tell him? In any case, you can once again submit your international questions via Ask Dr. International form and the Doctor will do his best to answer them. And this way if any reindeer need directions, Dr. International will be able to oblige them.

On This Page
How does one find the time?How does one find the time?
Multilingual Addresses in Outlook?Multilingual Addresses in Outlook?
Setting up keyboards when you are not aroundSetting up keyboards when you are not around
Column 5: Word Macro & Encodings, MLang & Font Linking, Language Support in WinME, Multilingual Windows 2000, CodepagesColumn 7: LangIDs, Reversed Icons, ExtTextOut & Digit Substitution, Print Keyboards, i18n Process
*

How does one find the time?

Dear Dr. International,

I am developing an application that is going to be used by many people throughout the world, and I am worried about how to handle the issues with different time zones. How can I compare two different times from people that are in different parts of the world effectively?

Sincerely,

No Time

Dr. International replies:

Well, No Time, the Doctor is glad you asked this question. The model adopted by many programs, including Exchange Server and Outlook, is to store data in the Coordinated Universal Time (UTC) and simply display the local time as needed in the user interface. This does require a few steps, though:

When a time is entered, it must be converted from the local time to the UTC time. Assuming you are using the SYSTEMTIME format for times, this is done by calling the SystemTimeToFileTime , LocalFileTimeToFileTime, and FileTimeToSystemTime APIs.

When you need to display a time on a particular user's machine, you will reverse the operation and call the SystemTimeToFileTime, FileTimeToLocalFileTime, and FileTimeToSystemTime APIs.

If you are dealing with COM and databases, you will probably need to convert to and from the VT_DATE format, which you can easily do by calling the VariantTimeToSystemTime and SystemTimeToVariantTime APIs.

You never need to worry about trying to do the math yourself to display dates and times properly, yet the dates and times you store can be easily compared!

Top of pageTop of page

Multilingual Addresses in Outlook?

Dear Dr. International

I am having problems getting the Outlook Address book to support multilingual data. Is there something I need to install?

(from the Internet)

Dr. International replies:

Unfortunately, there is not. Outlook does not support Unicode for its address book. Both your server's and client's default system code pages must be able to support the characters you wish to enter.

Unicode enabling is a constant struggle, and with each version of Microsoft products, they get a little better. But you can at least be reassured that the long term strategy is to have everyone in Unicode, following the example of Windows 2000, Word 2000, and many other applications that have provided such excellent multilingual support.

Top of pageTop of page

Setting up keyboards when you are not around

Dear Dr. International,

We need to prepare an unattended setup procedure that installs a Windows 2000 machine with multiple keyboard layouts available. Does someone know if this is possible in unattended mode ?

(from the Internet)

Dr. International replies:

Under [Regional Settings] you modify the entry "InputLocale". For example:

InputLocale=0807:00000807,100c:0000100c,810:0000100c

This example installs Swiss German, Swiss French, and Italian on SwissFrench Keyboard. You can use this technique to assign any keyboard to any locale setting you choose.

Top of pageTop of page

Well, Dr. International is leaving early today (it is never too soon to start a three day weekend), but he will be back to help with international issues soon. Enjoy your holidays (whichever you celebrate!) and your new year (if your calendar has a new year coming up!).

See you next time!

Dr. International
Windows International Division

Column 5: Word Macro & Encodings, MLang & Font Linking, Language Support in WinME, Multilingual Windows 2000, CodepagesColumn 7: LangIDs, Reversed Icons, ExtTextOut & Digit Substitution, Print Keyboards, i18n Process
Top of pageTop of page