Developing multilingual installation programs using InstallShield for Windows Installer - PowerPoint PPT Presentation

About This Presentation
Title:

Developing multilingual installation programs using InstallShield for Windows Installer

Description:

(cards.dll) A demo of ISWI. 20. Localizing an install program ... Ensure that custom messages and dialogs reference string table entries ... – PowerPoint PPT presentation

Number of Views:577
Avg rating:3.0/5.0
Slides: 35
Provided by: david639
Learn more at: http://www.unicode.org
Category:

less

Transcript and Presenter's Notes

Title: Developing multilingual installation programs using InstallShield for Windows Installer


1
Developing multilingual installation programs
using InstallShield for Windows Installer
  • David L. Cole
  • IBM Corporation
  • Research Triangle Park, NC
  • deecole_at_us.ibm.com

2
Why were here...
No matter how good your application is, Your
customers first experience is...
The install program!
New technologies exist
Thats what were here to talk about!
3
Topics
  • A background on Microsofts Windows Installer
    service
  • A description of the InstallShield for Windows
    Installer tool
  • Examples of multilingual install programs
  • Details on how to design and develop multilingual
    install programs
  • Explanation of how and where Unicode is used in
    the process
  • Hints, tips, and gotchas
  • References

4
What is a multilingual installation program?
5
What is the Windows Installer?
  • Microsofts Windows Installer is a new
    installation service that consists of
  • an operating system resident installation service
  • a standard format for component management
  • a management API for applications and tools.
  • Is a key component of Windows 2000, also
    available for other Windows versions (Windows 95,
    98, and NT 4.0)
  • Also known as MSI
  • Not an authoring environment!
  • 3rd party vendors (e.g., InstallShield, Wise)
    provide development tools

6
Why Windows Installer?
  • Better management of shared resources
  • Consistent enforcement of installation rules
  • Easy customization by administrators
  • Facilitated selection of desired application
    features
  • Automatic repair of configuration problems
  • In essence
  • reduced support costs for software providers
  • a much improved experience for administrators and
    end-users

7
An operating system resident installation
service...
  • Part of the operating system!
  • Enforces consistent installation rules
  • Service is engine for install program data
  • Manages shared components on behalf of an
    application
  • Can run at elevated privilege level on Windows
    NT/2000
  • e.g., non-administrators may install services
  • Built-in to Windows 2000, and available on
    Windows 95, Windows 98, and Windows NT 4.0
  • Use is required for new Certified for Microsoft
    Windows logo (except for server products, for
    the time being)

8
A standard format...
  • Data for operating system install Engine
  • Install program is actually a collection of data
    tables
  • Establishes product / feature / component
    hierarchy
  • Incorporates standard actions such as
    installing fonts
  • Extendable with custom actions
  • .msi file extension
  • May be opened and extended with development tools
    such as InstallShield for Windows Installer

9
Components and features
Components
Features
  • Atomic unit of installation
  • Collection of files, registry keys, etc. that are
    all installed together
  • Uniquely defined and automatically shared by OS
  • Not visible to the user
  • Typical method of distinguishing OS-specific and
    language-specific resources
  • Groupings of components
  • How groups of components are selected to be
    installed or uninstalled
  • Exposed to the user
  • Maintains feature state
  • Install locally
  • Run from source
  • Install on demand
  • Do not install

10
Products, Features, Components
Product (Office)
11
Products, Features, Components
Product (MyProduct)
12
Feature selection example
13
Feature selection example...
14
Data table example
15
A management API for applications and tools...
  • Tightly coupled with the Windows Shell
  • Manages file paths on behalf of an application
  • enables roaming user support
  • Ensures that requested applications/features are
    both installed and complete
  • enables install-on-demand (Advertising)
  • enables self-repair
  • Maintains an inventory of installed
    applications/features
  • Plays role in enforcing system policies

16
InstallShield for Windows Installer (ISWI)
  • A development tool for authoring Windows
    Installer-based install programs
  • Creates data tables which compose the .msi file
  • Includes wizards for stepping you through
  • creating a standard project
  • compiling the .msi file and building the output
    media
  • creating custom action controls
  • creating components
  • adhering to best practices
  • Also includes support for creating multilingual
    installs!

17
ISWI input and output
ISWI
Note numerous different build options exist
18
Setup.exe function flow
  • Determine default language (via user locale)
  • Display language selection panel
  • Query Windows Installer version
  • Install Windows Installer service, if needed
  • Launch Windows Installer service (msiexec.exe)
  • Apply selected language transform
  • Install product
  • Pass command line parameters

19
A demo of ISWI
Product (Demo)
Resource (cards.dll)
20
Localizing an install program
  • Add entries to English (or default) string table
    for any translatable text used in messages or
    added to dialogs
  • Ensure that custom messages and dialogs reference
    string table entries
  • Export string table of default language and
    translate into supported languages
  • Import translated string table for each language
  • InstallShield-provided strings are already
    translated but may be edited
  • Verify controls on custom dialogs are properly
    sized
  • Thats it!!

21
Designing a multilingual install program - Type I
  • Language chosen at product build time
  • Set of supported languages selected via Project
    Wizard or Project Properties
  • Language-dependent components identified via
    Languages field of each component (Setup Design
    view)
  • At build time (using the Release Wizard),
  • filter application by selected language(Filtering
    Settings dialog)
  • Include only the selected language and make
    default(Setup Languages dialog)
  • Result single language version of application,
    with matching language of install program

22
Designing a multilingual install program - Type II
  • Language chosen at product install time
  • Set of supported languages selected via Project
    Wizard or Project Properties
  • Language-dependent components identified via
    Conditions field (ProductLanguage property) of
    each component (Setup Design view)
  • At build time (using the Release Wizard),
  • do not filter application by language
  • Include all languages, and check Display the
    Setup Languages dialog (Setup Languages dialog)
  • Result setup.exes language selection panel
    chooses language version of application and
    language of install program

23
Designing a multilingual install program - Type
III
  • Language chosen at product run time
  • Applications user interface should include
    controls to choose language (good to couple with
    install on demand)
  • Set of supported languages (for install program)
    selected via Project Wizard or Project Properties
  • Design feature/subfeature tree to list supported
    languages(allows user to easily add or remove
    languages)
  • At build time (using the Release Wizard),
  • do not filter application by language
  • Include all languages, and check Display the
    Setup Languages dialog (Setup Languages dialog)
  • Result setup.exes language selection panel
    chooses language of install program user
    selects language version(s) of application to be
    installed.

24
Use of Unicode
  • Character strings within the .msi file
  • Exported string files (both Unicode and ASCII
    text)
  • License Agreement text (.rtf file)
  • MSI program interfaces

25
Hints, tips, and gotchas
  • Must install Windows language resources
  • New Language Wizard
  • command syntax for logging
  • MsiZap
  • Additional tets scenarios
  • Multiple files of same name to same target
    directory
  • Filtering components with a property set in the
    UI sequence
  • Windows 95 bug re dropdown list on language
    selection panel
  • Adding language packs to an existing project

26
Resources
  • The Windows Installer Service, a white paper from
    Microsoft, available at http//www.microsoft.com/w
    indows/professional/technical/whitepapers/Installe
    r.asp
  • "Roadmap to Windows Installer Documentation" in
    the Microsoft Platform SDK, and online at
    http//msdn.microsoft.com/library/sdkdoc/msi/legli
    vt_5bxq.htm
  • Application Specification for Microsoft Windows
    2000 for distributed applications Version 1.0,
    available at http//msdn.microsoft.com/winlogo/win
    2000.asp
  • InstallShield for Windows installer web page at
    http//www.installshield.com/iswi/
  • InstallShield Knowledge Base at
    http//support.installshield.com/
  • InstallShield for Windows Installer news groups
    at news server news.installshield.com
  • installshield.iswi.general
  • installshield.iswi.customaction
  • installshield.iswi.international
  • InstallSite web site at http//www.installsite.org
    /

27
Supplemental Slides
The following slides show the language features
of InstallShield for Windows Installer, and the
accompanying text explains how these features are
used to create the different types of
multilingual installation programs.
28
Language features of ISWI
29
Language features of ISWI...
30
Language features of ISWI...
31
Language features of ISWI...
32
Language features of ISWI...
33
Language features of ISWI...
34
Language features of ISWI...
Write a Comment
User Comments (0)
About PowerShow.com