SftPrintPreview/DLL 2.0

National Language Support

Softel vdm, Inc.

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

Building a Resource-Only 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. 

Primary Language ID

Primary 
Language 
ID

Windows
Predefined 
Symbol

 
Language
 

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

Sublanguage
ID
 

Windows
Predefined
Symbol

 
Language
 

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)


Feedback / comments / error reports for this topic
© 2016 - Softel vdm, Inc. - www.softelvdm.com