18.2.1 International Information in WIN.INI

The [Intl] section of the WIN.INI file contains the current country settings for Windows. The user can modify these settings through Control Panel. An application has access to the current country settings through the GetProfileInt and GetProfileString functions and can modify them through the WriteProfileString function. An application should read the required country settings at startup and should monitor the WM_WININICHANGE message to update its country settings in case the country settings in WIN.INI have changed.

Following are the country settings stored in WIN.INI:

iCountry

Country code. This value is based on the telephone country code. The only exception is Canada, which has 2 instead of 1 (1 is used by the United States). This setting controls country-dependent features not supported by Windows.

sCountry

String defining the selected country name.

sLanguage

National language code selected by the user. The International dialog box in Control Panel changes the language of the installed language-dependent module. Following are some of the language codes that Windows currently supports:

Code Language

DAN Danish
DEU German
ENG U.K. English
ENU U.S. English
ESN Modern Spanish
ESP Castilian Spanish
FIN Finnish
FRA French
FRC Canadian French
ISL Icelandic
ITA Italian
NLD Dutch
NOR Norwegian
PTG Portuguese
SVE Swedish

sList

List separator. This character separates elements in a list. The list separator must be different from the decimal separator to avoid conflicts with lists of numbers.

iMeasure

Measurement system selected by the user, where 0 equals metric and 1 equals English. This setting controls measurement-dependent features of an application.

iTime

Time format. This setting defines the time format: 12 hours or 24 hours, where 0 equals the 12-hour clock and 1 equals the 24-hour clock.

sTime

Time separator. This character is displayed between hours and minutes and between minutes and seconds.

s1159

Trailing string (A.M., for example) used in some countries for times between 00:00 and 11:59.

s2359

Trailing string (P.M., for example) for times between 12:00 and 23:59 when in 12-hour clock format or trailing string (GMT, for example) for any time when in 24-hour clock format.

iTLZero

Value specifying whether the hours displayed should have a leading zero, where 0 equals no leading zero (9:15, for example) and 1 equals a leading zero (09:15, for example).

iDate

Date format. Kept for compatibility with Windows 2.x. The values for this setting are: 0 equals Month-Day-Year, 1 equals Day-Month-Year, and 2 equals Year-Month-Day. The sShortDate setting should be used instead.

sDate

Date separator. Kept for compatibility with Windows 2.x. The sShortDate setting should be used instead.

sShortDate

Date picture of the short date format. The sShortDate setting accepts only the values m, mm, d, dd, yy and yyyy. For information about these values and the format of date pictures, see the sLongDate setting.

sLongDate

Date picture of the long date format, which is similar to the sShortDate setting, except it can also contain strings. Following are formats for different month (m), day (d), and year (y) values:

Value Format

m 1–12
mm 01–12
mmm Jan-Dec
mmmm January-December
d 1–31
dd 01–31
ddd Mon-Sun
dddd Monday-Sunday
yy 00–99
yyyy 1900–2040

Following are examples of different date pictures:

Date picture Example

d mmmm, yyyy 9 January, 1989
dddd, mmmm d, yyyy Friday, February 7, 1992
m/d/yy 3/18/89
dd-mm-yyyy 18-03-1989
d “of” mmmm, yyyy 9 of January, 1992

sCurrency

Currency symbol of a given country. Use of this setting requires care. If the currency symbol is changed through Control Panel, do not make global replacements of currency amounts in your application. Once the user has entered an amount using a particular currency, that currency should stay the same. This setting also requires special attention when files are shared among users or applications.

iCurrency

Currency format. The values for this setting are as follows:

Value Meaning

0 Currency symbol prefix with no separation ($1, for example)
1 Currency symbol suffix with no separation (1$, for example)
2 Currency symbol prefix with one character separation ($ 1, for example)
3 Currency symbol suffix with one character separation (1 $, for example)

iCurrDigits

Number of digits used for the fractional part of a currency amount.

iNegCurr

Negative currency format. The values for this setting are:

Value Negative format

0 ($1)
1 –$1
2 $–1
3 $1–
4 (1$)
5 –1$
6 1–$
7 1$–
8 –1 $
9 –$ 1
10 $ 1–

Note:

The dollar symbol represents any currency symbol defined by the sCurrency setting.

sThousand

Symbol used to separate thousands in numbers with more than three digits.

sDecimal

Character used to separate the integer part from the fractional part of a number.

iDigits

Value defining the number of decimal digits that should be used in a number.

iLzero

Value specifying whether a decimal value less than 1.0 (and greater than –1.0) should contain a leading zero, as follows:

Value Meaning

0 Do not use a leading zero (.7, for example).
1 Use a leading zero (0.7, for example).