MUI Compliance requirements for MS Windows Vista

MUI Compliance requirements For MS Windows Vista and Corel Home Office

Version 1.3 July 8, 2008

Prepared by: Gerald Koenig Srinivas Nithyanandam Janet Sailor Hewlett Packard Company Vahid Pourlotfali Corel Corporation

HP Confidential5/29/2018 1 of 16 MUI Compliance requirements for MS Windows Vista

Revision History

Revision Date Author Description of Change 0.0 March 7, Srinivas First Draft 2007 Nithyanandam 0.1 March 7,2007 Srinivas Reviewed by EMB, Janet, Gerald and Nithyanandam updated 0.2 March 8,2007 Janet Sailor, Gerald Koenig 0.3 March 9,2007 Janet Sailor, Various edits 0.4 March 15, Srinivas Some more edits 2007 Nithyanandam 0.5 March 16, EMB 2007 0.6 March 22, EMB, Janet 2007 Sailor, Gerald Koenig 0.7 April 1, 2007 Srinivas Edits made based on meeting with SMB GBU 0.8 April 2, 2007 Janet Sailor Edits for DT Icons, Start menu, FAQ section 1.0 April 2, 2007 Janet Sailor Released and distributed document to GBU contacts. 1.1 April 6, 2007 EMB, Janet, Few edits to incorporate GBU feedback Gerald, Srini 1.2 April 11, 2007 Janet Sailor Additional feedback added 1.3 July 8, 2008 Vahid Pourlotfali Added Corel Home Office specific parts

This is a preliminary document and may be changed substantially prior to final commercial release. This document is provided for informational purposes only and Hewlett-Packard Company makes no warranties, either express or implied, in this document. The entire risk of the use or the results of the use of this document remains with the user. Companies, names, and data used in examples herein are fictitious unless otherwise noted. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Hewlett-Packard Company. Hewlett-Packard Company may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. The furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

HP Confidential5/29/2018 2 of 16 MUI Compliance requirements for MS Windows Vista

© 2003 Hewlett-Packard Company. All rights reserved. HP and HP-UX are registered trademarks of Hewlett-Packard Company in the USA and other countries. All other trademarks are the property of their respective owners.

HP Confidential5/29/2018 3 of 16 MUI Compliance requirements for MS Windows Vista

Contents

1. Introduction 5 2. Objectives 5 3. Benefits 5 4. Multilingual User Interface 7 4.1. Definitions of elements...... 7 4.1.1. Time and Currency format (User Locale)...... 7 4.1.2. Display language (OS UI Language)...... 8 4.1.3. Location...... 11 4.2. MUI Design Architecture...... 12 5. MUI Compliance Requirements 12 5.1. Application Install/Uninstall Time...... 12 5.2. Customer Run Time...... 13 5.3. Application Recovery...... 14 6. Appendix 15

HP Confidential5/29/2018 4 of 16 MUI Compliance requirements for MS Windows Vista

1. Introduction This document lists the requirements necessary to achieve MUI compliancy for software applications being bundled with HP Consumer and Commercial Windows Vista based platforms. HP expects its vendors to be able to comply with these requirements. In the event that an application cannot comply, a technical review on a case by case and cycle by cycle basis will be required.

This document does not list ship to country and languages as they can be product line and cycle specific. Please contact your HP Technical Resource or Component Owner to determine the specific languages and country combinations required.

2. Objectives Windows Vista is built around the Multi-lingual User Interface (MUI) concept which makes it possible for an OEM to create a single OS image that supports multiple languages. Implementing MUI based builds will help improve HP’s customer experience by giving the user the opportunity to dynamically switch between multiple languages while increasing HP’s image creation and distribution capabilities. This will allow HP to ship multiple languages in one software build.

All Software components delivered to HP, for distribution to more than one language, must be Windows Vista MUI compliant as specified by this document. Knowledge of the divisions country/language requirements must be considered.

Corel Home Office is a suite of three applications (Write, Calculate, Show) which will be bundled with HP Consumer Windows Vista platform, so it needs to comply with MUI specifications. In this document we discuss changes to these three applications to achieve MUI compliancy.

3. Benefits For HP Customers  Applications are presented in the display language (OS UI language) of the customer’s choice.  Improved quality of the first-boot experience for Multi-lingual builds  Reduction in the amount of time it takes to arrive to the Windows desktop.  Support for multiple languages on the same workstation (in case of Vista Ultimate, where user can download additional MUI packs from Windows Updates).

For Vendors  Reduction in development and testing costs by using single language neutral binary.  Risk reduction by having a single executable for all languages.  Ease of extending support to additional languages by adding language resources to a language neutral binary.

For HP

HP Confidential5/29/2018 5 of 16 MUI Compliance requirements for MS Windows Vista

 Creation of single OS build that can support: o Multiple languages for one country. e.g., Switzerland (Italian, French, German, English) o Multiple languages for multiple countries e.g., Pan Nordic (Countries: Norway, Sweden, Denmark, and Finland. Languages: Swedish, Danish, Finnish, English, Norwegian)  Reduced cost and complexity: o Fewer software block components need to be created and/or managed o Less complexity of every component by eliminating need to manage individual language specific binary for each build o Increased customer flexibility - users are able to select the language they want  Reduce first boot processing time, by eliminating need to delete other languages during first boot processing.  Improved quality of HP builds o Optimized testing capabilities by focusing on a single core application rather than multiple localized applications.

HP Confidential5/29/2018 6 of 16 MUI Compliance requirements for MS Windows Vista

4. Multilingual User Interface

Definitions of elements All elements are required to determine the appropriate requirements for installation. For instance, the location is necessary to determine the language dialect; Portuguese for Portugal is not the same as Portuguese for Brazil, as Spanish for Spain is different than Spanish for Latin America.

1.1.1. Time and Currency format (User Locale) The System information used to present the user with correct formatting of data (Date, Time, Currency, and Numbers) Each MUI based application that has regional dependencies should support the same format changes the OS provides.

English(United English(United English(India) States) Kingdom) Numbers 123,456,789.00 123,456,789.00 12,34,56,789.00 Currency $ £ Rs. Date 02/28/2007 28/02/2007 28/02/2007

Each of the three Corel Home Office applications has different behavior regarding User Locale.

HP Confidential5/29/2018 7 of 16 MUI Compliance requirements for MS Windows Vista

Corel Calculate (which mostly works with numbers, currencies, and dates) follows OS User Locale and shows numbers, currencies, and dates in a format that matches User Locale setting in most parts. There are only minor issues that we may be required to fix which are listed below: 1- There is no date format in Calculate that follows exact OS format and this is because we always overwrite some parts of date formats by user selection. These parts include: date separator character and Month-Day order. This is why when we change OS Locale and use a Locale that has different date separator character or Month-Day order, Calculate continues to use the user-defined settings. Below you can find screen captures of Calculate, one in English (US) and another in German (Germany) which shows this small issue more clearly. Please provide an estimate for adding an option to have these date settings follow the current Locale. (Quattro Pro can be used as a guideline, where the date setting is modified in the Settings dialog’s International page.)

2- There is a minor issue on displaying decimal point character that you can find in above screen capture. This issue should be addressed, if feasible.

Corel Write does not use User Locale because it has its own setting for Date and Time format, which is very similar to what MS Word does when you insert a Date into document. We don’t need to do any changes in Corel Write.

Corel Show does not provide Date or Currency insertion functionality, so there is no work to be done for User Locale.

1.1.2. Display language (OS UI Language) The system information used to present menus, dialogs and other text in a certain language

English Spanish French Welcome Bienvenido Bienvenue

HP Confidential5/29/2018 8 of 16 MUI Compliance requirements for MS Windows Vista

Thank you Gracias Merci

Fortunately Corel Home Office applications are designed in MUI-friendly manner which means it is very easy to provide UI language switching in a way that follows OS display language. Currently in all three application (Write, Calculate, Show), the user can change display language of each application independently so, for example, it is possible to change display (UI) language of Corel Calculate to Dutch but use English as display language of Corel Write.

This gives total freedom to the user to choose their application’s display language but it may also make some confusion for user. Imagine having OS display language as French, Corel Write in English, Corel Calculate in Dutch, and Corel Show in Italian!

HP Confidential5/29/2018 9 of 16 MUI Compliance requirements for MS Windows Vista

To simplify this for our users, we have two choices: 1- Remove language selection menu item form all three applications and in startup of each application detect OS display language and use that for application display (UI) language. 2- Add an item to display language menu (you can call it “OS language”) which is the default setting on installation and as long as user does change the application display language it will follows OS display language.

Another problem with option 2 is when user changes their UI language of the app there are still some OS UI elements that continue following OS UI language which makes for more confusion for our users. For example, if the user changes Corel Write’s UI language to French and they are using English as OS display language, all UI items of Corel Write are displayed in French language, but Open and Save dialogs continue to use OS UI language which is English.

Corel’s preference is for option 2. The following changes, then, are requested:  A new menu item is to be added amongst the list of languages. The English text would read “Match Operating System”, and that setting should be the default.  All three applications’ language settings should be synchronized. For example, if in Write the language is set to German, then the next time any of the three apps launch, then the language should be German. If multiple apps in the suite are open, and each has its language settings set differently, then the last-set preference should be the overriding one.  Finally, Corel prefers that the Language setting be moved to the Options dialog, rather than in the Options menu. Please provide an estimate for this latter request before proceeding.

HP Confidential5/29/2018 10 of 16 MUI Compliance requirements for MS Windows Vista

Location The system information to detect the current location (region/country) of the user.

HP Confidential5/29/2018 11 of 16 MUI Compliance requirements for MS Windows Vista

MUI Design Architecture Architecting your application to support the UI language by separating out “language resource” from the “binary code” and applying/using language resource based on the current Display language (OS UI Language).

In Corel Home Office applications, all the language resources have been separated from executable code (binary code). This is the reason that we already have UI language switching in all three Corel Home Office applications (Write, Calculate, and Show).

5. MUI Compliance Requirements The software must work as designed in all supported languages without requiring a separate set of bits for each language. As an example, if the software build image is being designed for English and Spanish in US Region, then HP requires a single set of bits that accommodates both languages. Vista Ultimate and Vista Enterprise support multiple MUI packs to be installed on a system. In this case, one user might choose to see ISV’s application/software menus, dialogs and other text in English, while another user logging onto the same system might prefer to see the corresponding text in Spanish. On every launch of the application the software must display based on the current user’s selected display language (OS UI language).

All three applications in Corel Home Office will be able to follow OS UI language with minor changes in startup code which will look at current user’s OS UI language and launch the application in same language. It is assumed that there is no requirement to switch languages ‘on the fly’. That is, if the user changes the OS UI language while on the three Corel Home Office applications is running, the new language is not shown until after the application has been shut down and restarted.

The Software must meet all of the following requirements:

Application Install/Uninstall Time 1. All the text presented to user in install/uninstall wizard screen should be localized in the Display Language (OS UI Language) . Installer/Uninstaller Title . Dialog Box Message Text . Dialog Box Action Text(links/buttons) . Add/Remove Text, Comments, support information

Install/Uninstall tools for Corel Home Office already support displaying their UI in OS UI Language and it seems that we don’t have any work to do in this area. Our test shows that Setup does not follow proper OS setting (UI Language and not System Locale, Country, or User Locale). This needs to be fixed in the Setup for Corel Home Office. (TBD: This work may have already been completed.)

2. Language resources for all supported languages should be retained and available for users wishing to change their display language (OS UI language).

HP Confidential5/29/2018 12 of 16 MUI Compliance requirements for MS Windows Vista

Corel Home Office will provide separate language setup modules for each supported language and this means the user/HP can install all those language modules in their machines at the same time.

Customer Run Time 1. Software should render all the region independent text in the language set as Display language (OS UI language) in the OS. . Desktop links . Start Menu links . Title . Menus . Content . Help . Tool Tips, Hover text, Mouse over text Below you can find list of UI languages that Corel Home Office applications will support:

English French Italian German Spanish Dutch Swedish Desktop We use language neutral names for desktop links which do not need translation. links Start Menu We use language neutral names for Start Menu links which do not need links translation. Title We use language neutral names for titles which do not need translation. Menus Ok Ok Ok Ok Ok Ok Ok Content Ok Ok Ok Ok Ok Ok Ok Help Ok Ok† Ok† Ok† Ok† Ok† Ok† Tool Tips… Ok Ok Ok Ok Ok Ok Ok

† There are screen shots of applications in help documents that are in English language only. These screen shots need to be fixed to match the language of documentation.

As you can see from above table, there is nothing to do in Corel Home Office applications to support this section of MUI spec.

When user changes their OS UI language, if the new language is one of the languages that Corel Home Office supports, it will be the language that Corel Home Office applications use to show their UI. In the case that OS UI language is not part of our supported language, we should fall back to a language that we support. (TBD: Corel will provide a spreadsheet detailing what language is to be used.)

There are also translatable strings used by Windows Explorer in context menus, such as when right-mouse clicking, and selecting, for example, File > New > ‘Corel Write Document’. These strings should change when the user changes their OS UI language. (TBD: The Suite may already support this.)

The only part of Corel Home Office suite that does not comply with this section of spec is an external utility for editing forms which might be removed from Corel Home Office suite as it is not necessary for our target customers.

HP Confidential5/29/2018 13 of 16 MUI Compliance requirements for MS Windows Vista

Removal of Form Editor needs to be discussed from other points of view than just MUI spec but the result should be reflected here. We understand this has already been addressed. (TBD: Corel to verify.)

2. Software should show/render region/country specific content (in Display language) using the OS Country setting . Marketing Content, Help Content rendered in the application . All the touch points in the application linked to external website and application.

E.g., on a French image when a privacy link in the application should launch a web URL then . For France, should launch a web url with privacy content for France in French language . For Belgium, should launch a web URL with privacy content Belgium in French language.

There are three external links in Corel Home Office applications which are under Help menu:  “Online Support”  “Check For Updates”  “Registration” (there is no specific item for registration but it triggers when user selects Check For Updates” for the first time).

All three URLs should include OS Country setting and OS UI language as parameters, so our web servers can direct users to proper web page, based on their OS location and UI language. TBD: Final format of the URLs.

After “First Boot” has completed 1. For Windows Ultimate and Enterprise versions, a user can download and change the OS UI Language. Applications/shortcuts in the start menu or desktop that are not regionally specific should change to the localized OS UI Language.

HP Confidential5/29/2018 14 of 16 MUI Compliance requirements for MS Windows Vista

In Corel Home Office we use language-neutral names for desktop links which do not need translation. No work needs to be done here.

2. If the application/link points to an external web page, the language used for both the link name and destination page content should match. If the page is not available in the users OS UI Language, the client side link or shortcut name should NOT be localized.

E.g.,: Extended service plan may be available for the United States build in English but if the user changes to Swedish, the desktop icon link should remain in English as there is no Swedish, US extended service plan web page

See above section related to external links in Corel Home Office.

Application Recovery 1. Application that are part of Application Recovery, should install silently and provide the same solution as was delivered in the base image.

This section does not apply to Corel Home Office. 6. Appendix

1. Where can I find a references and sample application for MUI Vista For reference, please click on the link below:

http://msdn2.microsoft.com/en-us/library/ms776201.aspx

The sample application provided by Microsoft on this site requires Visual Studio 2005 with Windows SDK 6000 on Windows Vista.

2. What APIs do I use to read Locale Display language and Country information? Time and Currency format (locale) GetUserDefaultLCID

Display language: displayLanguage = GetUserDefaultUILanguage();

Country/Location: gId = GetUserGeoID(GEOCLASS_NATION);

3. What APIs do I use to get string representation of Locale, Display language and Country? Time and Currency GetGeoInfo(gId, GEO_RFC1766 ,localeCode,32,NULL);

Display Language GetGeoInfo(gId, GEO_RFC1766 ,localeCode,32, displayLanguage);

Country

HP Confidential5/29/2018 15 of 16 MUI Compliance requirements for MS Windows Vista

GetGeoInfo(gId, GEO_FRIENDLYNAME , countryName,256, displayLanguage);

4. What APIs will I use if I was developing in .NET? In .Net use this .Net Object to Get Dispaly Language: System.Globalization.CultureInfo.CurrentUICulture .TwoLetterISOLanguageName, .LCID

to get country information: System.Globalization.RegionInfo.CurrentRegion .TwoLetterISORegionName .GeoId

======END DOCUMENT ======

HP Confidential5/29/2018 16 of 16