SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftMask/OCX 7.0 - Masked Edit Control
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftPrintPreview/DLL 2.0 - Print Preview Control (discontinued)
SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftDirectory 3.5 - File/Folder Control (discontinued)
SftMask/OCX 7.0 - Masked Edit Control
SftOptions 1.0 - Registry/INI Control (discontinued)
SftPrintPreview/OCX 1.0 - Print Preview Control (discontinued)
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftTabs/NET 6.0 - Tab Control (discontinued)
SftTree/NET 2.0 - Tree Control
SftPrintPreview/DLL is provided with built-in support for US English only.
Using resource-only DLLs, the product can be translated into any language supported by Windows. These resource-only DLLs are not included, but can be easily created using the product's included sample Resource project. The dialogs and strings defined by these DLLs can be edited using Visual C++/Visual Studio .NET and translated. Translating the resources into a new language takes about 30 minutes.
When a SftPrintPreview/DLL control is created, it inspects the current user's default language selection (see Windows API GetUserDefaultLangID) and attempts to load resource-only DLLs in the following order:
SftPrintPreview20Resources_primary_sub.dll
SftPrintPreview20Resources_primary_01.dll
SftPrintPreview20Resources_primary_00.dll
The most language specific DLL is loaded first. Whichever DLL is present and found first, will be used to locate all SftPrintPreview/DLL resources, that are language specific. If none of these resource-only DLLs can be found, the control's built-in US English resources are used instead.
primary and sub represent the primary language ID and sublanguage ID as defined by the Windows API GetUserDefaultLangID.
For example, if the user's current default language is LANG_GERMAN / SUBLANG_GERMAN_AUSTRIAN (see tables below), the following DLLs would be loaded in this order:
SftPrintPreview20Resources_07_03.dll
SftPrintPreview20Resources_07_01.dll
SftPrintPreview20Resources_07_00.dll
Copy the entire Resources directory, part of the SftPrintPreview/DLL installation, to a location of your choice. This insures that the original sample project in unchanged.
Depending on your target location, you may need to update the Project Settings reflecting the new paths.
Using Visual C++ or Visual Studio .NET, modify all resources found in Resources.rc, translating these to your language of choice. Strings can be extended within reason (for example, if a string is 80 bytes in the provided default US English resource, it can be safely extended to 300 bytes).
Change the Project Settings to produce (link) the final DLL with the proper name, using the following naming conventions:
SftPrintPreview20Resources_primary_sub.dll
primary and sub represent the primary language ID and sublanguage ID as defined by the Windows API GetUserDefaultLangID (see tables below).
Once the DLL has been completed, simply copy it to your application directory. SftPrintPreview/DLL will now use these resources if the language settings for the current user match the DLL's primary and sublanguage ID.
00 | LANG_NEUTRAL | Neutral |
01 | LANG_ARABIC | Arabic |
02 | LANG_BULGARIAN | Bulgarian |
03 | LANG_CATALAN | Catalan |
04 | LANG_CHINESE | Chinese |
05 | LANG_CZECH | Czech |
06 | LANG_DANISH | Danish |
07 | LANG_GERMAN | German |
08 | LANG_GREEK | Greek |
09 | LANG_ENGLISH | English |
0a | LANG_SPANISH | Spanish |
0b | LANG_FINNISH | Finnish |
0c | LANG_FRENCH | French |
0d | LANG_HEBREW | Hebrew |
0e | LANG_HUNGARIAN | Hungarian |
0f | LANG_ICELANDIC | Icelandic |
10 | LANG_ITALIAN | Italian |
11 | LANG_JAPANESE | Japanese |
12 | LANG_KOREAN | Korean |
13 | LANG_DUTCH | Dutch |
14 | LANG_NORWEGIAN | Norwegian |
15 | LANG_POLISH | Polish |
16 | LANG_PORTUGUESE | Portuguese |
18 | LANG_ROMANIAN | Romanian |
19 | LANG_RUSSIAN | Russian |
1a | LANG_CROATIAN | Croatian |
1a | LANG_SERBIAN | Serbian |
1b | LANG_SLOVAK | Slovak |
1c | LANG_ALBANIAN | Albanian |
1d | LANG_SWEDISH | Swedish |
1e | LANG_THAI | Thai |
1f | LANG_TURKISH | Turkish |
20 | LANG_URDU | Urdu |
21 | LANG_INDONESIAN | Indonesian |
22 | LANG_UKRAINIAN | Ukrainian |
23 | LANG_BELARUSIAN | Belarusian |
24 | LANG_SLOVENIAN | Slovenian |
25 | LANG_ESTONIAN | Estonian |
26 | LANG_LATVIAN | Latvian |
27 | LANG_LITHUANIAN | Lithuanian |
29 | LANG_FARSI | Farsi |
2a | LANG_VIETNAMESE | Vietnamese |
2b | LANG_ARMENIAN | Armenian |
2c | LANG_AZERI | Azeri |
2d | LANG_BASQUE | Basque |
2f | LANG_MACEDONIAN | FYRO Macedonian |
36 | LANG_AFRIKAANS | Afrikaans |
37 | LANG_GEORGIAN | Georgian |
38 | LANG_FAEROESE | Faeroese |
39 | LANG_HINDI | Hindi |
3e | LANG_MALAY | Malay |
3f | LANG_KAZAK | Kazak |
40 | LANG_KYRGYZ | Kyrgyz |
41 | LANG_SWAHILI | Swahili |
43 | LANG_UZBEK | Uzbek |
44 | LANG_TATAR | Tatar |
45 | LANG_BENGALI | Not supported. |
46 | LANG_PUNJABI | Punjabi |
47 | LANG_GUJARATI | Gujarati |
48 | LANG_ORIYA | Not supported. |
49 | LANG_TAMIL | Tamil |
4a | LANG_TELUGU | Telugu |
4b | LANG_KANNADA | Kannada |
4c | LANG_MALAYALAM | Not supported. |
4d | LANG_ASSAMESE | Not supported. |
4e | LANG_MARATHI | Marathi |
4f | LANG_SANSKRIT | Sanskrit |
50 | LANG_MONGOLIAN | Mongolian |
56 | LANG_GALICIAN | Galician |
57 | LANG_KONKANI | Konkani |
58 | LANG_MANIPURI | Not supported. |
59 | LANG_SINDHI | Not supported. |
5a | LANG_SYRIAC | Syriac |
60 | LANG_KASHMIRI | Not supported. |
61 | LANG_NEPALI | Not supported. |
65 | LANG_DIVEHI | Divehi |
7f | LANG_INVARIANT |
Sublanguage ID | Windows Predefined Symbol | |
---|---|---|
00 | SUBLANG_NEUTRAL | Language neutral |
01 | SUBLANG_DEFAULT | User Default |
02 | SUBLANG_SYS_DEFAULT | System Default |
01 | SUBLANG_ARABIC_SAUDI_ARABIA | Arabic (Saudi Arabia) |
02 | SUBLANG_ARABIC_IRAQ | Arabic (Iraq) |
03 | SUBLANG_ARABIC_EGYPT | Arabic (Egypt) |
04 | SUBLANG_ARABIC_LIBYA | Arabic (Libya) |
05 | SUBLANG_ARABIC_ALGERIA | Arabic (Algeria) |
06 | SUBLANG_ARABIC_MOROCCO | Arabic (Morocco) |
07 | SUBLANG_ARABIC_TUNISIA | Arabic (Tunisia) |
08 | SUBLANG_ARABIC_OMAN | Arabic (Oman) |
09 | SUBLANG_ARABIC_YEMEN | Arabic (Yemen) |
0a | SUBLANG_ARABIC_SYRIA | Arabic (Syria) |
0b | SUBLANG_ARABIC_JORDAN | Arabic (Jordan) |
0c | SUBLANG_ARABIC_LEBANON | Arabic (Lebanon) |
0d | SUBLANG_ARABIC_KUWAIT | Arabic (Kuwait) |
0e | SUBLANG_ARABIC_UAE | Arabic (U.A.E.) |
0f | SUBLANG_ARABIC_BAHRAIN | Arabic (Bahrain) |
10 | SUBLANG_ARABIC_QATAR | Arabic (Qatar) |
01 | SUBLANG_AZERI_LATIN | Azeri (Latin) |
02 | SUBLANG_AZERI_CYRILLIC | Azeri (Cyrillic) |
01 | SUBLANG_CHINESE_TRADITIONAL | Chinese (Traditional) |
02 | SUBLANG_CHINESE_SIMPLIFIED | Chinese (Simplified) |
03 | SUBLANG_CHINESE_HONGKONG | Chinese (Hong Kong SAR, PRC) |
04 | SUBLANG_CHINESE_SINGAPORE | Chinese (Singapore) |
05 | SUBLANG_CHINESE_MACAU | Chinese (Macau SAR) |
01 | SUBLANG_DUTCH | Dutch |
02 | SUBLANG_DUTCH_BELGIAN | Dutch (Belgian) |
01 | SUBLANG_ENGLISH_US | English (US) |
02 | SUBLANG_ENGLISH_UK | English (UK) |
03 | SUBLANG_ENGLISH_AUS | English (Australian) |
04 | SUBLANG_ENGLISH_CAN | English (Canadian) |
05 | SUBLANG_ENGLISH_NZ | English (New Zealand) |
06 | SUBLANG_ENGLISH_EIRE | English (Ireland) |
07 | SUBLANG_ENGLISH_SOUTH_AFRICA | English (South Africa) |
08 | SUBLANG_ENGLISH_JAMAICA | English (Jamaica) |
09 | SUBLANG_ENGLISH_CARIBBEAN | English (Caribbean) |
0a | SUBLANG_ENGLISH_BELIZE | English (Belize) |
0b | SUBLANG_ENGLISH_TRINIDAD | English (Trinidad) |
0c | SUBLANG_ENGLISH_ZIMBABWE | English (Zimbabwe) |
0d | SUBLANG_ENGLISH_PHILIPPINES | English (Philippines) |
01 | SUBLANG_FRENCH | French |
02 | SUBLANG_FRENCH_BELGIAN | French (Belgian) |
03 | SUBLANG_FRENCH_CANADIAN | French (Canadian) |
04 | SUBLANG_FRENCH_SWISS | French (Swiss) |
05 | SUBLANG_FRENCH_LUXEMBOURG | French (Luxembourg) |
06 | SUBLANG_FRENCH_MONACO | French (Monaco) |
01 | SUBLANG_GERMAN | German |
02 | SUBLANG_GERMAN_SWISS | German (Swiss) |
03 | SUBLANG_GERMAN_AUSTRIAN | German (Austrian) |
04 | SUBLANG_GERMAN_LUXEMBOURG | German (Luxembourg) |
05 | SUBLANG_GERMAN_LIECHTENSTEIN | German (Liechtenstein) |
01 | SUBLANG_ITALIAN | Italian |
02 | SUBLANG_ITALIAN_SWISS | Italian (Swiss) |
01 | SUBLANG_KOREAN | Korean |
01 | SUBLANG_LITHUANIAN | Lithuanian |
01 | SUBLANG_MALAY_MALAYSIA | Malay (Malaysia) |
02 | SUBLANG_MALAY_BRUNEI_DARUSSALAM | Malay (Brunei Darassalam) |
01 | SUBLANG_NORWEGIAN_BOKMAL | Norwegian (Bokmal) |
02 | SUBLANG_NORWEGIAN_NYNORSK | Norwegian (Nynorsk) |
01 | SUBLANG_PORTUGUESE_BRAZILIAN | Portuguese (Brazil) |
02 | SUBLANG_PORTUGUESE | Portuguese (Portugal) |
02 | SUBLANG_SERBIAN_LATIN | Serbian (Latin) |
03 | SUBLANG_SERBIAN_CYRILLIC | Serbian (Cyrillic) |
01 | SUBLANG_SPANISH | Spanish (Castilian) |
02 | SUBLANG_SPANISH_MEXICAN | Spanish (Mexican) |
03 | SUBLANG_SPANISH_MODERN | Spanish (Spain) |
04 | SUBLANG_SPANISH_GUATEMALA | Spanish (Guatemala) |
05 | SUBLANG_SPANISH_COSTA_RICA | Spanish (Costa Rica) |
06 | SUBLANG_SPANISH_PANAMA | Spanish (Panama) |
07 | SUBLANG_SPANISH_DOMINICAN_REPUBLIC | Spanish (Dominican Republic) |
08 | SUBLANG_SPANISH_VENEZUELA | Spanish (Venezuela) |
09 | SUBLANG_SPANISH_COLOMBIA | Spanish (Colombia) |
0a | SUBLANG_SPANISH_PERU | Spanish (Peru) |
0b | SUBLANG_SPANISH_ARGENTINA | Spanish (Argentina) |
0c | SUBLANG_SPANISH_ECUADOR | Spanish (Ecuador) |
0d | SUBLANG_SPANISH_CHILE | Spanish (Chile) |
0e | SUBLANG_SPANISH_URUGUAY | Spanish (Uruguay) |
0f | SUBLANG_SPANISH_PARAGUAY | Spanish (Paraguay) |
10 | SUBLANG_SPANISH_BOLIVIA | Spanish (Bolivia) |
11 | SUBLANG_SPANISH_EL_SALVADOR | Spanish (El Salvador) |
12 | SUBLANG_SPANISH_HONDURAS | Spanish (Honduras) |
13 | SUBLANG_SPANISH_NICARAGUA | Spanish (Nicaragua) |
14 | SUBLANG_SPANISH_PUERTO_RICO | Spanish (Puerto Rico) |
01 | SUBLANG_SWEDISH | Swedish |
02 | SUBLANG_SWEDISH_FINLAND | Swedish (Finland) |
01 | SUBLANG_URDU_PAKISTAN | Urdu (Pakistan) |
02 | SUBLANG_URDU_INDIA | Urdu (India) |
01 | SUBLANG_UZBEK_LATIN | Uzbek (Latin) |
02 | SUBLANG_UZBEK_CYRILLIC | Uzbek (Cyrillic) |