Cisco Cti Os Toolkit Iso Download 64
The CTI OS Toolkit contains source codes that can be compiled and used as a softphone. However, you'll need to have a lab or environment that will support the Cisco CTI OS softphone (ie. Pg w/ CTIOS / ICM. Phone system etc). Cisco CTI Programming for Cisco ICM and Cisco IPCC Cursusduur: 4 Dagen Cursuscode: CTIP. Learn the computer telephony integration (CTI) architecture and the various CIT interfaces available to the developer. IPCC Software and their effects on CTI Use the CTI toolkit and the CTI-OS software development kit (SDK) to construct softphones. Symptom: When removing an agent from a skill group using the Agent Reskilling Web Tool, the CTI OS Agent Desktop statistics toolkit grid does not get updated for approximately 20 seconds. When adding a skill using the Agent Re-skilling Web tool, the changes are seen within a second or two. How to deploy CTI OS Desktops This section describes how to install the CTI OS Desktop Release. CautionThe release installer package CAN NOT be used or replaced by any silent installation tool. Thank you cisco. WTF do you expect me to do with 15,000 clients? Send someone to the machines to do it manually? Apr 23, 2018 - Neuroactive Program Complete Brain Training Download Free. CTI Toolkit Desktop Client installation Important: The new CTI OS. Cisco Agent Desktop is a computer telephony integration (CTI) solution for single- and multisite. Write Data: Burn existing DVD folder or ISO image file to DVD writer,. Release Notes for Cisco CTI OS Software Release 6.0(0) CONTENTS Introduction 7 Note to CTI Desktop Customers 7 Cisco CTI Driver for Siebel 7 8 Supported Siebel Versions 8 Version Restrictions within a Peripheral Gateway 8 CTI OS/Siebel Driver Compatibility 8 Installation Packages and Version Support 9 Cisco Data Store 9 Siebel Release.
Cisco Cti Os Toolkit Iso Download Windows 7
CTI OS Internationalization Toolkit Version 7.0
Corporate Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (64387) Fax: 408 526-4100 Customer Order Number: Text Part Number: OL-3550-01
CTI OS Internationalization Toolkit
2 of 35
THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY. The following information is for FCC compliance of Class A devices: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to part 15 of the FCC rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio-frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference, in which case users will be required to correct the interference at their own expense. The following information is for FCC compliance of Class B devices: The equipment described in this manual generates and may radiate radio-frequency energy. If it is not installed in accordance with Cisco’s installation instructions, it may cause interference with radio and television reception. This equipment has been tested and found to comply with the limits for a Class B digital device in accordance with the specifications in part 15 of the FCC rules. These specifications are designed to provide reasonable protection against such interference in a residential installation. However, there is no guarantee that interference will not occur in a particular installation. Modifying the equipment without Cisco’s written authorization may result in the equipment no longer complying with FCC requirements for Class A or Class B digital devices. In that event, your right to use the equipment may be limited by FCC regulations, and you may be required to correct any interference to radio or television communications at your own expense. You can determine whether your equipment is causing interference by turning it off. If the interference stops, it was probably caused by the Cisco equipment or one of its peripheral devices. If the equipment causes interference to radio or television reception, try to correct the interference by using one or more of the following measures: • Turn the television or radio antenna until the interference stops. • Move the equipment to one side or the other of the television or radio. • Move the equipment farther away from the television or radio. • Plug the equipment into an outlet that is on a different circuit from the television or radio. (That is, make certain the equipment and the television or radio are on circuits controlled by different circuit breakers or fuses.) Modifications to this product not authorized by Cisco Systems, Inc. could void the FCC approval and negate your authority to operate the product. The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB’s public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California. NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS” WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. CCIP, the Cisco Arrow logo, the Cisco Powered Network mark, the Cisco Systems Verified logo, Cisco Unity, Follow Me Browsing, FormShare, iQ Breakthrough, iQ Expertise, iQ FastTrack, the iQ Logo, iQ Net Readiness Scorecard, Networking Academy, ScriptShare, SMARTnet, TransPath, and Voice LAN are trademarks of Cisco Systems, Inc.; Changing the Way We Work, Live, Play, and Learn, Discover All That’s Possible, The Fastest Way to Increase Your Internet Quotient, and iQuick Study are service marks of Cisco Systems, Inc.; and Aironet, ASIST, BPX, Catalyst, CCDA, CCDP, CCIE, CCNA, CCNP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, the Cisco IOS logo, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Empowering the Internet Generation, Enterprise/Solver, EtherChannel, EtherSwitch, Fast Step, GigaStack, Internet Quotient, IOS, IP/TV, LightStream, MGX, MICA, the Networkers logo, Network Registrar, Packet, PIX, Post-Routing, Pre-Routing, RateMUX, Registrar, SlideCast, StrataView Plus, Stratm, SwitchProbe, TeleRouter, and VCO are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and certain other countries. All other trademarks mentioned in this document or Web site are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0208R) CTI OS Internationalization Toolkit Copyright © 2003, Cisco Systems, Inc. All rights reserved.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
3 of 35
Table Of Contents 1 INTRODUCTION.......................................................................................................................... 5 1.1 Localization Process 5 1.2 What Is Provided on the CD 7 2 EDITING MESSAGE FILES ...................................................................................................... 10 2.1 Suggestion 10 2.2 Message File 10 2.3 Comments 11 2.4 LanguageNames 11 2.5 Message Definitions 12 3 BUILDING A LANGUAGE LIBRARY ....................................................................................... 12 3.1 Using Microsoft Visual Studio 6.0 12 Using Visual Studio .NET 2003 17 4 LOCALIZING YOUR APPLICATION ........................................................................................ 18 5 INSTALLING LOCALIZED LIBRARIES ................................................................................... 18 6 PROGRAMMER’S GUIDE......................................................................................................... 19 6.1 IGetLanguage Interface 19 6.2 Using the International Resource Loader in an Application 21 6.2.1 6.2.2 6.2.3
Localizing a VB 6.0 Application Localizing a Visual Basic.NET Application Localizing a C++ and COM Application
21 23 25
7 LOCALIZING CTI OS AGENT AND SUPERVISOR SOFTPHONES ....................................... 28 7.1 Level of Localization 28 7.2 Planning Localization 28 7.3 Translating *.mc File 31 7.4 Translating Column Headers 32 7.4.1 7.4.2 7.4.3 7.4.4
Column Headers for Call Appearance Column Headers for Agent Statistics Column Headers for Skill Group Statistics Column Headers for Blended Agent
Cisco Systems, Inc.
32 33 34 35
CTI OS Internationalization Toolkit
Cisco Systems, Inc.
4 of 35
CTI OS Internationalization Toolkit
5 of 35
1 Introduction The CTI OS Internationalization Toolkit is a general purpose tool that provides the mechanisms and utilities necessary for creating localized versions of client applications such as the CTI OS Toolkit Agent and IPCC Supervisor Desktops. The toolkit uses a message file that is converted into a language library used by the application to retrieve the translated text that is to be shown to the user. The CTI OS Internationalization Toolkit has the following features: Language selection automatically defaults to the operating system settings. No action is necessary by a user or administrator. An API is provided to access the localized string text from a language library. The API is exposed as an in-process COM server. A single application can be built with support for many different languages. The Toolkit supports double-byte and extended character languages, including Chinese, Japanese, Korean, Hebrew, Arabic, Cyrillic, and Latin. It provides a template project and a *.mc file that allows localization of the CTI OS Toolkit Agent and IPCC Supervisor Desktops 1.1
Localization Process
The localization process of an application starts with the creation of a message file that contains the language code and the localized text strings. The name of each message file must use the following convention: CtiOsLanguage..mc where is standard language code, see Figure 1. For a complete list of language codes and language identifiers refer to “Language Identifiers and Locale” in the Microsoft MSDN Library CD or on-line at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcelocal/htm/cerefLanguageIdentifiersLocales.asp
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6 of 35
CtiOsLanguagee.LANG.mc
MC Compiler
CtiOsLanguagee.LANG.res
Build Project
CtiOsLanguage.LANG.DLL
Figure 1. Localization workflow
This message file is compiled with Microsoft’s message compiler to produce a resource file that is then used to build the final language library. The language library name will be CtiOsLanguage..dll. The Toolkit provides a Microsoft Visual Studio 6.0 project template that can be used to build a language library. The instructions for building a library are provided in the next section. Examples of message files and language libraries are presented in Table 1: Language
Message File
Language Library
Chinese Simplified
CtiosLanguage.CHS.mc
CtiosLanguage.CHS.dll
Spanish
CtiosLanguage.ESP.mc
CtiosLanguage.ESP.dll
French
CtiosLanguage.FRA.mc
CtiosLanguage.FRA.dll
Table 1. Message files and language libraries
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7 of 35
After the language library is produced, the client application uses the toolkit’s API to access the localized strings text in the language library as in Figure 2. Dim objIntl
As New INTLRESOURCELOADERLib.GetLanguage
Const CTIOS_AGENTPHONE_APPNAME = &H702A Private Sub Form_Load() lstLaguages.ListIndex = 1 End Sub
Private Sub lstLaguages_Click() Dim strTranslatedStr As String objIntl.LanguageID = lstLaguages.ItemData(lstLaguages.ListIndex) strTranslatedStr = objIntl.TextStringDefault(CTIOS_AGENTPHONE_APPNAME, _ 'CISCO CTI OS Agent Phone') lblMessage.Caption = strTranslatedStr End Sub
Figure 2. Localized application 1.2
What Is Provided on the CD
The CTI OS Internationalization Toolkit is included within the distribution CD of the CTI OS Toolkit and its components are located in the Win32 CIL subdirectory. The parts that constitute the toolkit are listed in Table 2.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
Location
8 of 35
Part Name
InternationalizationKit CtiOsLanguage.dsp
Description
Microsoft Visual C++ 6.0 project template used to generate the new Language library. For details on how to migrate this project to Microsoft Visual Studio .NET 2003, please refer to Microsoft’s Visual Studio.NET help on
Visual C++ Porting and Upgrading ( InternationalizationKit CtiOsLanguage.mc
Message file template, contains all the string text and symbols used by the CTI OS Toolkit Agent and IPCC Supervisor Desktops.
InternationalizationKit CtiOsLanguage.cpp
Standard DLL callbacks
InternationalizationKit CtiOsLanguage.h
Auto generated files at compilation of *.mc file
CtiOsLanguage.rc COM Servers and Activex Controls
IntlResourceLoader.dll
.NETInterops
Cisco.INTLRESOURC Runtime Callable Wrapper (RCW) ELOADERLib.dll assembly used by .NET based application requiring to use the CTI OS Internationalization Kit
InternationalizationKit ctioslanguage.XXX.dll Languages
CTI OS International Resource Loader, registered at installation time
Prebuilt language libraries for” the following languages: CHS .- Chinese Simple KOR.- Korean GER .- German FRA.- French ESN.- Spanish Neutral ENU.-English USA PTB .- Portuguese Brazilian
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
Location
9 of 35
Part Name
Description
InternationalizationKit ConfigLanguages.reg.t Languages xt
Registry file to configure language libraries for the CTI OS Agent and Supervisor phones
InternationalizationKit agentstatistics.XXX.re Languages g.txt
Pre-translated standard grid column headers for” the following languages:
callappearance.XX.reg. CHS .- Chinese Simple txt KOR.- Korean skillgroupstatistics.XX GER .- German X.reg.txt blendedagent_addecc. XX.reg.txt
FRA.- French ESN.- Spanish Neutral ENU.-English USA PTB .- Portuguese Brazilian
Table 2. CTIOS Internationalization Toolkit components
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
10 of 35
2 Editing Message Files 2.1
Suggestion
Before creating a message file on your own, make a copy of the template message file provided with the toolkit and rename it to conform to the country or language you will be localizing to, for example, CtiOsLanguage.ESM.mc. 2.2
Message File
A message file is used to build a language library. The general format of a message file is a LanguageNames entry followed by several Message definition lines as shown in Figure 3. ;/* ///////////////////////////////////////////////////////////////////////////////// ; ; CTIOS Internationalization Toolkit ; ... (additional comments removed) ; ; LanguageNames=(afrikaans=0x0436:AFK_SouthAfrica) ; LanguageNames=(albanian=0x041c:SQI_Albania) ; LanguageNames=(arabic=0x0401:ARA_Arabic) ; ... (additional LanguageNames removed) ; ;///////////////////////////////////////////////////////////////////////////////// */ ; LanguageNames=(english=0x0409:ENU_UnitedStates) ;/*LanguageNames=(french=0x040c:FRA_France)*/ ; ;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; | Agent Phone Definitions | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ ; ;/* These keywords group buttons on the phone */ MessageId=0x7024 SymbolicName= CTIOS_AGENTPHONE_LOGINGROUP Language=English Login . MessageId=0x7025 SymbolicName= CTIOS_AGENTPHONE_AGENTSTATEGROUP Language=English Agent State . Figure 3. Message file Cisco Systems, Inc.
CTI OS Internationalization Toolkit
2.3
11 of 35
Comments
Comments must begin with a semi-colon, and must use the standard C++ comment syntax: either the /* … */ multiline syntax or // syntax, refer to Figure 4. ; // this is valid ; /* this is also valid */ // this is NOT valid (no semi-colon) ; this is NOT valid (no // for alternative syntax)
Figure 4. Comments 2.4
LanguageNames
The message file must contain only one LanguageNames entry, for example: LanguageNames=(english=0x0409:ENU_UnitedStates) If you use the message file provided in the Toolkit, you will find several predefined
LanguageNames entries listed in the form of comments. To select a language, remove the comment symbol where appropriate. Key points: The text in the LanguageNames line is critical and should not be changed under any circumstances. The values and language names match the values reported by the Microsoft Windows operating system. For a complete list refer to “Language Identifiers and Locale” in the MSDN Library CD or online. Changing any value will prevent the Toolkit from loading the correct message files. The language name for the selected language is the first term in the line. The remainder of the statement contains the language binary code, the language designator code, and the country code. The language name is used in the message definitions that follow.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
2.5
12 of 35
Message Definitions
Each message consists of a minimum of five (5) lines: MessageId, SymbolicName, Language, language-specific translation, end-of-message line (consisting of a period). ;/* These keywords group buttons on the phone */ MessageId=0x7024 SymbolicName= CTIOS_AGENTPHONE_LOGINGROUP Language=English Login . Figure 5. Message definition
Key points: For each message select a unique MessageId. This is what identifies the string text in the language library and is what you will use in the API to retrieve this string. For each message select a unique SymbolicName, this value will be used by the MC compiler to create an include file that is used by the resource compiler. The language entered in the Language= line must match the language name entered in the LanguageNames= line. Only the language name should be entered. The language-specific translation must follow the Language= line. The translation may consist of multiple lines. A line with a period defines the end of the translation for the entry.
3 Building a Language Library 3.1
Using Microsoft Visual Studio 6.0
Copy the template project provided with the Toolkit and rename it to conform to the country or language for which you will be generating the library. For example, CtiOsLanguage.ESM.dsp. 1. Start Microsoft Visual C++ 6.0. 2. Select File + Open Workspace … to open the Internationalization Toolkit Workspace.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
13 of 35
3. Double-click on the CtiOsLanguage.mc file, then select File Save As … and save the message file with a language specific name, such as CtiOsLanguage.ESM.mc.
4. Add the new file to the project by selecting Project, Add to Project…, Files…:
5. Remove CtiOsLanguage.mc from the project by deleting the entry from the project:
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
14 of 35
6. Select your new CtiOsLanguage.ESM.mc file. Do a right click over it with the mouse and from the pop up menu select Settings…:
Make sure that the Custom Build settings for this file are as shown in the following image:
Once you have filled in the Commands and Outputs text boxes click OK. 7. Now you need to configure the Linker and Resource compiler to produce your library using the appropriate settings. For this you need to select Project + Settings … to bring up the project settings dialog. Note that all the settings you will make in the following steps need to be executed for both Debug and Release configurations. For the sake of convenience, from here on Config will be used to indicate both Debug and Release. Cisco Systems, Inc.
CTI OS Internationalization Toolkit
8. In the settings dialog select the tab folder marked “Link“ and make sure that: The output file name is Config/ctioslanguage.EMS.dll
Cisco Systems, Inc.
15 of 35
CTI OS Internationalization Toolkit
16 of 35
The Program database name is Config/ctioslanguage.EMS.pdb
9. Select the tab folder marked “Resources”, and make sure that the Resource file name is Config/ctioslanguage.EMS.res and also make sure the Language selected corresponds.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
17 of 35
10. Save the project, by selecting File, Save Workspace 11. Edit the message file by selecting the proper LanguageNames= and entering translations for each message 12. Compile and test
Using Visual Studio .NET 2003
Start Microsoft Visual Studio .NET 2003 Port the Microsoft Visual C++ 6.0 *.dsp project template to the new Microsoft Visual C++ 7.0 *.vcproj format, open the *.dsp project selecting Open Project from the File command menu in Microsoft Visual Studio .NET. For details refer to Microsoft’s Visual Studio.NET help on Visual C++ Porting and Upgrading (http://msdn.microsoft.com/library/default.asp?url=/library/enus/vccore/html/_vc_porting_home.asp) Follow steps 3 to 12 as described in the previous section
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
18 of 35
4 Localizing your Application After building your language library, you need to modify your application in a way such that all the string text that will be shown to an end user is read from the language library. To be able to use the CTI OS Internationalization API, an application must: 1. Create an instance of the CTI OS International Resource Loader COM object 2. Set the language that will be used 3. Retrieve the string text using the MessageId associated with the string to be displayed 4. Display the retrieved string For more details see Chapter 6, Programmer’s Guide.
5 Installing Localized Libraries To install your libraries on the client workstations where your application is located, you need to make sure the following are done: 1. Copy your CtiosLanguage.ZZZ.dll and IntlResourceLoader.dll into the directory of your client application 2. In the registry add the information about the language and path to the library that you installed. For example: HKCUSOFTWARECisco SystemsCTIOSSharedLanguagesESM Language Code = dword:0x080a DLL = string:'c: Program FilesCisco SystemsCTIOS ClientCTIOS Desktop Phones CtiOsLanguage.ESM.dll'
3. To select a language, enter the language code (for example, 0x0409 for ENU (United States English): HKCUSOFTWARECisco SystemsCTIOSShared LanguagesLast Language Language Code = dword:0x080a
NOTE: If you omit Language Code and Last Language, the CTI OS Internationalization Resource Loader will use the system language locale.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
19 of 35
6 Programmer’s Guide In order to make use of the language libraries the CTI OS internationalization Toolkit provides the International Resource Loader. This is a COM object that exports the IGetLanguage public interface to enable programmers to access translated string text from a Language library built with the Toolkit. 6.1
IGetLanguage Interface
The interface consists of the following properties: Property
Access Type
Description
LanguageID
Read/Write
Contains the binary code corresponding to the current language library loaded. Setting a new code causes the International Resource Loader to unload the current language library and load the library specified with the new code.
LanguageText
Read-Only
Returns the name of the language that corresponds to the Language ID.
It publishes two methods: Method
Description
TextString
Retrieves a translated string from the current loaded language library. If there is no such string, this method returns a null string.
TextStringDefault
Retrieves a translated string from the current loaded language library. If there is no translation available, this method returns a default string passed in the parameter list.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
20 of 35
TextString
Retrieves a translated string from the current loaded language library. If there is no such string, this method returns a null string. Syntax VB 6.0:
TextString (ResourceID As Long) As String
COM: HRESULT TextString (int nResourceID , BSTR * bsrStringTxt )
Parameter
Description
ResourceID
Numeric ID that corresponds to the translated string text in the current language library
TextStringDefault
Retrieves a translated string from the current loaded language library. If there is no translation available, this method returns a default string passed in the parameter list Syntax VB 6.0:
TextString (ResourceID As Long, bstrDefaultTxt As String) As
String COM: HRESULT TextString (int nResourceID , BSTR bstDefaultTxt,
BSTR * bsrStringTxt ) Parameter
Description
ResourceID
Numeric ID that corresponds to the translated string text in the current language library
bstrDefaultTxt Text that will be used as default if no translation is found for the string specified by Resource ID
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6.2
21 of 35
Using the International Resource Loader in an Application
Using the International Resource Loader API is straightforward. This section shows how to use the object in VB 6.0, and in C++ with COM written using ATL. For these examples it is assumed that two language libraries exist and were successfully installed. One library is for English United States (ENU,code=0x409) and the other language library for Spanish Mexican (ESM,code 0x80a). For installation details, see Chapter 5.
6.2.1 Localizing a VB 6.0 Application 1. In your VB 6.0 Project, add a reference to the “Cisco COM CTIOS Inernational Resource Loader”:
2. Create an instance of a CTI OS Internationalization Resource Loader: 'CTI OS Internationalization Resource Loader Dim m_Intl As new INTLRESOURCELOADERLib.GetLanguage 'Resource Ids for the text strings in Language Library Const CTIOS_AGENTPHONE_APPNAME As Long = &H702A Const CTIOS_AGENTPHONE_PHONELOADING As Long = &H702B
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
22 of 35
3. Set the language code for the language library to load: Private Sub Form_Load() 'Sets the code for Mexican Spanish and Loads the Library m_Intl.LanguageID = &H80A
4. Retrieve translated text strings and display them: Private Sub Form_Load() Dim strTextStr As String 'Sets the title of the form strTextStr = m_Intl.TextStringDefault(CTIOS_AGENTPHONE_APPNAME, _ 'CISCO CTI OS Agent Phone') Me.Caption = strTextStr 'Sets the title of the form strTextStr = m_Intl.TextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, _ 'Phone is Loading…”) lblMessage = strTextStr End Sub
5. Changing language: Private Sub btnEnglish_Click() Dim strTextStr As String 'Sets the code for English USA and Loads the Library m_Intl.LanguageID = &H409
'Sets the title of the form strTextStr = m_Intl.TextString(CTIOS_AGENTPHONE_APPNAME) Me.Caption = strTextStr 'Sets the title of the form strTextStr = m_Intl.TextString(CTIOS_AGENTPHONE_PHONELOADING) lblMessage = strTextStr
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
23 of 35
6. Application running: Program at startup appears in Mexican Spanish:
After clicking the “English” button:
6.2.2 Localizing a Visual Basic.NET Application
Although Cisco recommends the use of .NET CIL for creating application targeting the .NET Framework and using the .NET localization model. An application written in Visual Basic 6.0 can be migrated to Visual Basic .NET (VB.NET) and still continue to use CTIOS Internationalization Toolkit. In order for a VB.NET application to be able to use CTIOS Internationalization Toolkit it is necessary to configure the Cisco CTI OS RCWs as described in the Cisco CTIOS Developer Guide in Chapter XY and to add a reference to the CTIOS Internationalization Toolkit RCW in the VB.NET Project references as follows:
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
24 of 35
1. From Visual Studio’s “Project” menu make sure to select the “Add Reference…” command 2. From the “Add Reference” dialog box select the “.NET” tab. Warning: Never select the COM tab from the “Add Reference” dialog box and never select the CTIOS Internationalization Toolkit COM component. Doing this will cause Microsoft Visual Studio .NET 2003 to automatically generate a set of private RCW that is not optimized a nor approved by Cisco and your application will probably have an unexpected behavior that could lead to the application to fail
3. From the list select the CTIOS Internationalization Toolkit RCW. The name of the RCW related to CTIOS Internationalization Toolkit is prefixed with “Cisco.” Such that the RCW for CTIOS Internationalization Toolkit is : Cisco.INTLRESOURCELOADERLib.dll
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
25 of 35
6.2.3 Localizing a C++ and COM Application
1. In your C++ project import the “Cisco CTI OS IntlResourceLoader 1.0” type library:
// IntResKitSample.h : Declaration of the CIntResKitSample #import 'D:CTIOSDEVComIntlResourceLoader.dll' using namespace INTLRESOURCELOADERLib; const long CTIOS_AGENTPHONE_APPNAME = 0x702A; const long CTIOS_AGENTPHONE_PHONELOADING = 0x702B;
2. Create an instance of a CTI OS Internationalization Resource Loader: ////////////////////////////////////////////////////////////////////// /////// // CIntResKitSample class CIntResKitSample : public CAxDialogImpl { private: IGetLanguagePtr m_IntKit; public: CIntResKitSample() { HRESULT hr = m_IntKit.CreateInstance(OLESTR('IntlResourceLoader.GetLanguage')); } BEGIN_MSG_MAP(CIntResKitSample) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) COMMAND_ID_HANDLER(IDOK, OnEnglishClicked) COMMAND_ID_HANDLER(IDCANCEL, OnCancel) END_MSG_MAP() }
3. Set the language code for the language library to load : LRESULT CIntResKitSample::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ _bstr_t bstrText = OLESTR('); //Sets the code for Mexican Spanish and Loads the Library m_IntKit->PutLanguageID(0x80a);
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
26 of 35
4. Retrieve translated text strings and display them: LRESULT CIntResKitSample::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_APPNAME, OLESTR('CTI OS Agent Softphone')); this->SetWindowText(bstrText); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, OLESTR('Phone Loading...')); ::SetWindowText(this->GetDlgItem(IDC_MESSAGE),bstrText); }//end OnInitdialog
5. Changing language: LRESULT CIntResKitSample::OnEnglishClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled){ m_IntKit->PutLanguageID(0x409); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_APPNAME, OLESTR('CTI OS Agent Softphone')); this->SetWindowText(bstrText); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, OLESTR('Phone Loading...')); ::SetWindowText(this->GetDlgItem(IDC_MESSAGE),bstrText); }//end OnEnglishClicked
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6. Application running: Program at startup appears in Mexican Spanish:
After clicking the “English” button:
Cisco Systems, Inc.
27 of 35
CTI OS Internationalization Toolkit
28 of 35
7 Localizing CTI OS Agent and Supervisor Softphones This section describes the procedure to localize the CTI OS Agent and Supervisor Softphones. The process involves the installation of new language libraries on both agent and supervisor desktop computers, and the reconfiguration of some settings under the CTI OS Enterprise Desktop Settings registry key at each CTI OS Server host machine. 7.1
Level of Localization
The CTI OS Agent and Supervisor Softphones are out of the box solutions. They can easily be localized by using the prebuilt language libraries provided with the Kit or by generating a new language library on the workstation where the application runs. The level of localization that can be achieved with the current implementation of the CTI OS Softphones and the CTI OS Internationalization kit is as follows: 1. Static Language Selection. This means a new language from any CTI OS Softphone cannot be selected at run time. The language selection must be specified before the Softphone is launched. See Chapter 5, Installing Localized Libraries. 2. Use of System Locale. As explained in Chapter 5, the CTI OS International Resource Loader will determine from the system what language code to use. If a language library exists for this language, the library will be used. Otherwise, English USA will be the default language. 3. Column Header Localization. With this release, localization of column headers for the Call Appearance, Agent and Skill Groups Statistics, and Blended Agent Call Variables is limited to CTI OS System level. This means that if a CTI OS Softphone in English connects to a CTI OS Server for which its Enterprise Desktop Settings have a Spanish translation for the column headers, the Softphone will display the columns headers in Spanish but the rest of the Softphone in English. 4. Text Messages from ICM use ICM locale. Some of the text messages displayed by the CTI OS Softphones are generated by Cisco ICM software. These messages will be shown in the language that ICM software used to generate them. 5. Text Messages from CTI OS Server are in English. In this release the CTI OS Server does not support localization. 7.2
Planning Localization
Before installing any new language libraries or modifying the CTI OS Enterprise Desktop Settings, define for each site the level of localization that is required, and identify the CTI OS components that are involved in each setup.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
29 of 35
For example, suppose that XYZ, Inc. has two call centers, one in Boston and the other in Mexico City. At each site, CTI OS (Server and Softphones) is installed. Management has decided that each center must use the Softphones in the native language at each site, and directs MIS to perform the localization for both sites. Assume that XYZ’s deployment of CTI OS is as in the diagram below.
Center in Boston
Cisco Cti Os. Srvr
Center in M exico
Corporate Network
Cisco Cti Os. Srvr
Agent Desktops
MIS will have to plan for the following tasks only for the call center in Mexico City—since in Boston, English USA will be the default. No.
Task
Activities
1
Create a new build project for the new Language Library
a) Make a copy of the project template provided with the CTI OS Internationalization Toolkit and rename all files to reflect the new language,. e.g. CtiOsLanguage.dsp CtiOsLanguage.mc
CtiOsLanguage.ESM.dsp CtiOsLanguage.ESM.mc
b) Follow the procedure in Chapter 3 to set up the project to build the appropriate language library 2
Translate “*.mc” File.
Cisco Systems, Inc.
Edit the “*.mc” file, translate all the strings in this file and make all entries Language= equal to the name of the language, see
CTI OS Internationalization Toolkit
30 of 35
Section 2.4. For example: CtiOsLanguage.ESM.mc 3
Build Language Library
For example: CtiOsLanguage.ESM.dll
4
Test Language Library
In your development environment, install your new language library as in Chapter 5, and run the CTI OS Agent and Supervisor Softphones to test the translation
5
Translate Column Headers
Using the column definition file templates, create a translated version of the header names for: 1) Call Appearance Grid 2) Agent & Skill Groups Statistics 3) Blended Agent Call Variables (only if Blended Agent functionality is available through Cisco ICM software) For more details about these templates, refer to the Cisco ICM Software CTI OS System Manager’s Guide
6
Load Translated Column Headers into CTI OS Server in Development
Using RegEdit.exe, import the translated column header definition files
7
System Test
Using the CTI OS Agent and Supervisor Softphone, log into the system and verify your localization is successful
8
Deploy Localization to Production
In Mexico City: a) Import the translated column headers into the CTI OS Server registry using RegEdit.exe b) On each agent and supervisor workstation install and configure the new language library for Spanish Mexican
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7.3
31 of 35
Translating *.mc File
The CtiOsLanguage.mc template message file contains the MessageIds and SymbolicNames as the CTI OS Agent and Supervisor Softphones use them. When translating the message text, make sure, in your copy, to only modify LanguageNames= to select the language code, the message text and Language=. Following is an example of how the CtiOsLanguage.ESM.mc will look: ;/* ///////////////////////////////////////////////////////////////////////////////// ; ; CTIOS Internationalization Toolkit ; ... (additional comments removed) ; ; LanguageNames=(afrikaans=0x0436:AFK_SouthAfrica) ; LanguageNames=(albanian=0x041c:SQI_Albania) ; LanguageNames=(arabic=0x0401:ARA_Arabic) ; ... (additional LanguageNames removed) ; ;///////////////////////////////////////////////////////////////////////////////// */ ;
LanguageNames=(spanish_mexican=0x080a:ESM_Mexico) ; ;/* Agent Phone Application Name */ ; MessageId=0x702A SymbolicName= CTIOS_AGENTPHONE_APPNAME Language=spanish_mexican Teléfono del Agente . ; ;/* Agent Phone Progress Messages */ ; MessageId=0x702B SymbolicName= CTIOS_AGENTPHONE_PHONELOADING Language=spanish_mexican Cargando Teléfono... . MessageId=0x702C SymbolicName= CTIOS_AGENTPHONE_DOWNLOADSETTINGS Language=spanish_mexican Bajando Opciones... . MessageId=0x702D SymbolicName= CTIOS_AGENTPHONE_DOWNLOADSETTINGSCOMPLETE Language=spanish_mexican Terminó de Bajar Opciones...
.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7.4
32 of 35
Translating Column Headers
To translate the column headers for the Call Appearance, Agent & Skill Groups Statistics, and the Blended Agent Call Variables, make copies of the following files, and make sure you rename them such that the new name indicates the language used for translation. callappearance.default.reg.txt agentstatistics.default.reg.txt skillgroupstatistics.default.reg.txt blendedagent_addecc.reg.txt
callappearance.ESM.reg.txt agentstatistics.ESM.reg.txt skillgroupstatistics.ESM.reg.txt blendedagent_addecc.ESM.txt
The localization of the column headers consists in editing each of the files listed above. Modify the Header attribute for each column such that the value is the text in the desired language. For more details on configuring column headers, refer to the Cisco ICM Software CTI OS System Manager’s Guide. 7.4.1 Column Headers for Call Appearance REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber1] 'Type'='CallID' 'Header'='Cve. Llamada' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber2] 'Type'='CallStatus' 'Header'='Estado' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber3] 'Type'='DNIS' 'Header'='DNIS' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber4] 'Type'='ANI' 'Header'='ANI' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber5] 'Type'='CED' 'Header'='CED' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber6] 'Type'='DialedNumber' 'Header'='Número Llamado'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
33 of 35
7.4.2 Column Headers for Agent Statistics REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGrid] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatistics] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber] 'DisableStatsMinimization'=dword:00000000 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber1] 'Type'='CallsHandledToday' 'Header'='Llamadas Atendidas Hoy' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber2] 'Type'='TimeLoggedInToday' 'Header'='Tiempo en el Sistema' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber3] 'Type'='TimeTalkingToday' 'Header'='Tiempo Hablando' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber4] 'Type'='TimeHoldingToday' 'Header'='Tiempo en Espera' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber5] 'Type'='TimeReadyToday' 'Header'='Tiempo Disponibe' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber6] 'Type'='TimeNotReadyToday' 'Header'='Tiempo No Disponible'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
34 of 35
7.4.3 Column Headers for Skill Group Statistics REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGrid] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatistics] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber] 'DisableStatsMinimization'=dword:00000000 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber1] 'Type'='SkillGroupNumber' 'Header'='Núm. Grupo' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber2] 'Type'='CallsQNow' 'Header'='Llamdas en Cola' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber3] 'Type'='CallsQTimeNow' 'Header'='Tiempo en Cola' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber4] 'Type'='LongestCallQNow' 'Header'='Cola mas Larga' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber5] 'Type'='AgentsLoggedOn' 'Header'='Agentes Firmados' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber6] 'Type'='AgentsAvail' 'Header'='Agentes Disp.'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
35 of 35
7.4.4 Column Headers for Blended Agent
REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearance] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber] ; ; Previous columns definition were deleted ; [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber7] 'Type'='ECC' 'Name'='BAResponse' 'Header'='Resp. Campaña' 'Maxchars'='24' 'ReadOnly'='false' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber8] 'Type'='ECC' 'Name'='BAStatus' 'Header'='Edo. Campaña' 'Maxchars'='3' 'ReadOnly'='true' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber10] 'Type'='ECC' 'Name'='BAAccountNumber' 'Header'='Campaña Num. Cuenta' 'Maxchars'='33' 'ReadOnly'='true' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber11] 'Type'='ECC' 'Name'='BATimeZone' 'Header'='Campaña Zone' 'Maxchars'='7'
Cisco Systems, Inc.
Corporate Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (64387) Fax: 408 526-4100 Customer Order Number: Text Part Number: OL-3550-01
CTI OS Internationalization Toolkit
2 of 35
THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY. The following information is for FCC compliance of Class A devices: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to part 15 of the FCC rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio-frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference, in which case users will be required to correct the interference at their own expense. The following information is for FCC compliance of Class B devices: The equipment described in this manual generates and may radiate radio-frequency energy. If it is not installed in accordance with Cisco’s installation instructions, it may cause interference with radio and television reception. This equipment has been tested and found to comply with the limits for a Class B digital device in accordance with the specifications in part 15 of the FCC rules. These specifications are designed to provide reasonable protection against such interference in a residential installation. However, there is no guarantee that interference will not occur in a particular installation. Modifying the equipment without Cisco’s written authorization may result in the equipment no longer complying with FCC requirements for Class A or Class B digital devices. In that event, your right to use the equipment may be limited by FCC regulations, and you may be required to correct any interference to radio or television communications at your own expense. You can determine whether your equipment is causing interference by turning it off. If the interference stops, it was probably caused by the Cisco equipment or one of its peripheral devices. If the equipment causes interference to radio or television reception, try to correct the interference by using one or more of the following measures: • Turn the television or radio antenna until the interference stops. • Move the equipment to one side or the other of the television or radio. • Move the equipment farther away from the television or radio. • Plug the equipment into an outlet that is on a different circuit from the television or radio. (That is, make certain the equipment and the television or radio are on circuits controlled by different circuit breakers or fuses.) Modifications to this product not authorized by Cisco Systems, Inc. could void the FCC approval and negate your authority to operate the product. The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB’s public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California. NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS” WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. CCIP, the Cisco Arrow logo, the Cisco Powered Network mark, the Cisco Systems Verified logo, Cisco Unity, Follow Me Browsing, FormShare, iQ Breakthrough, iQ Expertise, iQ FastTrack, the iQ Logo, iQ Net Readiness Scorecard, Networking Academy, ScriptShare, SMARTnet, TransPath, and Voice LAN are trademarks of Cisco Systems, Inc.; Changing the Way We Work, Live, Play, and Learn, Discover All That’s Possible, The Fastest Way to Increase Your Internet Quotient, and iQuick Study are service marks of Cisco Systems, Inc.; and Aironet, ASIST, BPX, Catalyst, CCDA, CCDP, CCIE, CCNA, CCNP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, the Cisco IOS logo, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Empowering the Internet Generation, Enterprise/Solver, EtherChannel, EtherSwitch, Fast Step, GigaStack, Internet Quotient, IOS, IP/TV, LightStream, MGX, MICA, the Networkers logo, Network Registrar, Packet, PIX, Post-Routing, Pre-Routing, RateMUX, Registrar, SlideCast, StrataView Plus, Stratm, SwitchProbe, TeleRouter, and VCO are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and certain other countries. All other trademarks mentioned in this document or Web site are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0208R) CTI OS Internationalization Toolkit Copyright © 2003, Cisco Systems, Inc. All rights reserved.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
3 of 35
Table Of Contents 1 INTRODUCTION.......................................................................................................................... 5 1.1 Localization Process 5 1.2 What Is Provided on the CD 7 2 EDITING MESSAGE FILES ...................................................................................................... 10 2.1 Suggestion 10 2.2 Message File 10 2.3 Comments 11 2.4 LanguageNames 11 2.5 Message Definitions 12 3 BUILDING A LANGUAGE LIBRARY ....................................................................................... 12 3.1 Using Microsoft Visual Studio 6.0 12 Using Visual Studio .NET 2003 17 4 LOCALIZING YOUR APPLICATION ........................................................................................ 18 5 INSTALLING LOCALIZED LIBRARIES ................................................................................... 18 6 PROGRAMMER’S GUIDE......................................................................................................... 19 6.1 IGetLanguage Interface 19 6.2 Using the International Resource Loader in an Application 21 6.2.1 6.2.2 6.2.3
Localizing a VB 6.0 Application Localizing a Visual Basic.NET Application Localizing a C++ and COM Application
21 23 25
7 LOCALIZING CTI OS AGENT AND SUPERVISOR SOFTPHONES ....................................... 28 7.1 Level of Localization 28 7.2 Planning Localization 28 7.3 Translating *.mc File 31 7.4 Translating Column Headers 32 7.4.1 7.4.2 7.4.3 7.4.4
Column Headers for Call Appearance Column Headers for Agent Statistics Column Headers for Skill Group Statistics Column Headers for Blended Agent
Cisco Systems, Inc.
32 33 34 35
CTI OS Internationalization Toolkit
Cisco Systems, Inc.
4 of 35
CTI OS Internationalization Toolkit
5 of 35
1 Introduction The CTI OS Internationalization Toolkit is a general purpose tool that provides the mechanisms and utilities necessary for creating localized versions of client applications such as the CTI OS Toolkit Agent and IPCC Supervisor Desktops. The toolkit uses a message file that is converted into a language library used by the application to retrieve the translated text that is to be shown to the user. The CTI OS Internationalization Toolkit has the following features: Language selection automatically defaults to the operating system settings. No action is necessary by a user or administrator. An API is provided to access the localized string text from a language library. The API is exposed as an in-process COM server. A single application can be built with support for many different languages. The Toolkit supports double-byte and extended character languages, including Chinese, Japanese, Korean, Hebrew, Arabic, Cyrillic, and Latin. It provides a template project and a *.mc file that allows localization of the CTI OS Toolkit Agent and IPCC Supervisor Desktops 1.1
Localization Process
The localization process of an application starts with the creation of a message file that contains the language code and the localized text strings. The name of each message file must use the following convention: CtiOsLanguage..mc where is standard language code, see Figure 1. For a complete list of language codes and language identifiers refer to “Language Identifiers and Locale” in the Microsoft MSDN Library CD or on-line at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcelocal/htm/cerefLanguageIdentifiersLocales.asp
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6 of 35
CtiOsLanguagee.LANG.mc
MC Compiler
CtiOsLanguagee.LANG.res
Build Project
CtiOsLanguage.LANG.DLL
Figure 1. Localization workflow
This message file is compiled with Microsoft’s message compiler to produce a resource file that is then used to build the final language library. The language library name will be CtiOsLanguage..dll. The Toolkit provides a Microsoft Visual Studio 6.0 project template that can be used to build a language library. The instructions for building a library are provided in the next section. Examples of message files and language libraries are presented in Table 1: Language
Message File
Language Library
Chinese Simplified
CtiosLanguage.CHS.mc
CtiosLanguage.CHS.dll
Spanish
CtiosLanguage.ESP.mc
CtiosLanguage.ESP.dll
French
CtiosLanguage.FRA.mc
CtiosLanguage.FRA.dll
Table 1. Message files and language libraries
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7 of 35
After the language library is produced, the client application uses the toolkit’s API to access the localized strings text in the language library as in Figure 2. Dim objIntl
As New INTLRESOURCELOADERLib.GetLanguage
Const CTIOS_AGENTPHONE_APPNAME = &H702A Private Sub Form_Load() lstLaguages.ListIndex = 1 End Sub
Private Sub lstLaguages_Click() Dim strTranslatedStr As String objIntl.LanguageID = lstLaguages.ItemData(lstLaguages.ListIndex) strTranslatedStr = objIntl.TextStringDefault(CTIOS_AGENTPHONE_APPNAME, _ 'CISCO CTI OS Agent Phone') lblMessage.Caption = strTranslatedStr End Sub
Figure 2. Localized application 1.2
What Is Provided on the CD
The CTI OS Internationalization Toolkit is included within the distribution CD of the CTI OS Toolkit and its components are located in the Win32 CIL subdirectory. The parts that constitute the toolkit are listed in Table 2.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
Location
8 of 35
Part Name
InternationalizationKit CtiOsLanguage.dsp
Description
Microsoft Visual C++ 6.0 project template used to generate the new Language library. For details on how to migrate this project to Microsoft Visual Studio .NET 2003, please refer to Microsoft’s Visual Studio.NET help on
Visual C++ Porting and Upgrading ( InternationalizationKit CtiOsLanguage.mc
Message file template, contains all the string text and symbols used by the CTI OS Toolkit Agent and IPCC Supervisor Desktops.
InternationalizationKit CtiOsLanguage.cpp
Standard DLL callbacks
InternationalizationKit CtiOsLanguage.h
Auto generated files at compilation of *.mc file
CtiOsLanguage.rc COM Servers and Activex Controls
IntlResourceLoader.dll
.NETInterops
Cisco.INTLRESOURC Runtime Callable Wrapper (RCW) ELOADERLib.dll assembly used by .NET based application requiring to use the CTI OS Internationalization Kit
InternationalizationKit ctioslanguage.XXX.dll Languages
CTI OS International Resource Loader, registered at installation time
Prebuilt language libraries for” the following languages: CHS .- Chinese Simple KOR.- Korean GER .- German FRA.- French ESN.- Spanish Neutral ENU.-English USA PTB .- Portuguese Brazilian
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
Location
9 of 35
Part Name
Description
InternationalizationKit ConfigLanguages.reg.t Languages xt
Registry file to configure language libraries for the CTI OS Agent and Supervisor phones
InternationalizationKit agentstatistics.XXX.re Languages g.txt
Pre-translated standard grid column headers for” the following languages:
callappearance.XX.reg. CHS .- Chinese Simple txt KOR.- Korean skillgroupstatistics.XX GER .- German X.reg.txt blendedagent_addecc. XX.reg.txt
FRA.- French ESN.- Spanish Neutral ENU.-English USA PTB .- Portuguese Brazilian
Table 2. CTIOS Internationalization Toolkit components
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
10 of 35
2 Editing Message Files 2.1
Suggestion
Before creating a message file on your own, make a copy of the template message file provided with the toolkit and rename it to conform to the country or language you will be localizing to, for example, CtiOsLanguage.ESM.mc. 2.2
Message File
A message file is used to build a language library. The general format of a message file is a LanguageNames entry followed by several Message definition lines as shown in Figure 3. ;/* ///////////////////////////////////////////////////////////////////////////////// ; ; CTIOS Internationalization Toolkit ; ... (additional comments removed) ; ; LanguageNames=(afrikaans=0x0436:AFK_SouthAfrica) ; LanguageNames=(albanian=0x041c:SQI_Albania) ; LanguageNames=(arabic=0x0401:ARA_Arabic) ; ... (additional LanguageNames removed) ; ;///////////////////////////////////////////////////////////////////////////////// */ ; LanguageNames=(english=0x0409:ENU_UnitedStates) ;/*LanguageNames=(french=0x040c:FRA_France)*/ ; ;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; | Agent Phone Definitions | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ ; ;/* These keywords group buttons on the phone */ MessageId=0x7024 SymbolicName= CTIOS_AGENTPHONE_LOGINGROUP Language=English Login . MessageId=0x7025 SymbolicName= CTIOS_AGENTPHONE_AGENTSTATEGROUP Language=English Agent State . Figure 3. Message file Cisco Systems, Inc.
CTI OS Internationalization Toolkit
2.3
11 of 35
Comments
Comments must begin with a semi-colon, and must use the standard C++ comment syntax: either the /* … */ multiline syntax or // syntax, refer to Figure 4. ; // this is valid ; /* this is also valid */ // this is NOT valid (no semi-colon) ; this is NOT valid (no // for alternative syntax)
Figure 4. Comments 2.4
LanguageNames
The message file must contain only one LanguageNames entry, for example: LanguageNames=(english=0x0409:ENU_UnitedStates) If you use the message file provided in the Toolkit, you will find several predefined
LanguageNames entries listed in the form of comments. To select a language, remove the comment symbol where appropriate. Key points: The text in the LanguageNames line is critical and should not be changed under any circumstances. The values and language names match the values reported by the Microsoft Windows operating system. For a complete list refer to “Language Identifiers and Locale” in the MSDN Library CD or online. Changing any value will prevent the Toolkit from loading the correct message files. The language name for the selected language is the first term in the line. The remainder of the statement contains the language binary code, the language designator code, and the country code. The language name is used in the message definitions that follow.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
2.5
12 of 35
Message Definitions
Each message consists of a minimum of five (5) lines: MessageId, SymbolicName, Language, language-specific translation, end-of-message line (consisting of a period). ;/* These keywords group buttons on the phone */ MessageId=0x7024 SymbolicName= CTIOS_AGENTPHONE_LOGINGROUP Language=English Login . Figure 5. Message definition
Key points: For each message select a unique MessageId. This is what identifies the string text in the language library and is what you will use in the API to retrieve this string. For each message select a unique SymbolicName, this value will be used by the MC compiler to create an include file that is used by the resource compiler. The language entered in the Language= line must match the language name entered in the LanguageNames= line. Only the language name should be entered. The language-specific translation must follow the Language= line. The translation may consist of multiple lines. A line with a period defines the end of the translation for the entry.
3 Building a Language Library 3.1
Using Microsoft Visual Studio 6.0
Copy the template project provided with the Toolkit and rename it to conform to the country or language for which you will be generating the library. For example, CtiOsLanguage.ESM.dsp. 1. Start Microsoft Visual C++ 6.0. 2. Select File + Open Workspace … to open the Internationalization Toolkit Workspace.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
13 of 35
3. Double-click on the CtiOsLanguage.mc file, then select File Save As … and save the message file with a language specific name, such as CtiOsLanguage.ESM.mc.
4. Add the new file to the project by selecting Project, Add to Project…, Files…:
5. Remove CtiOsLanguage.mc from the project by deleting the entry from the project:
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
14 of 35
6. Select your new CtiOsLanguage.ESM.mc file. Do a right click over it with the mouse and from the pop up menu select Settings…:
Make sure that the Custom Build settings for this file are as shown in the following image:
Once you have filled in the Commands and Outputs text boxes click OK. 7. Now you need to configure the Linker and Resource compiler to produce your library using the appropriate settings. For this you need to select Project + Settings … to bring up the project settings dialog. Note that all the settings you will make in the following steps need to be executed for both Debug and Release configurations. For the sake of convenience, from here on Config will be used to indicate both Debug and Release. Cisco Systems, Inc.
CTI OS Internationalization Toolkit
8. In the settings dialog select the tab folder marked “Link“ and make sure that: The output file name is Config/ctioslanguage.EMS.dll
Cisco Systems, Inc.
15 of 35
CTI OS Internationalization Toolkit
16 of 35
The Program database name is Config/ctioslanguage.EMS.pdb
9. Select the tab folder marked “Resources”, and make sure that the Resource file name is Config/ctioslanguage.EMS.res and also make sure the Language selected corresponds.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
17 of 35
10. Save the project, by selecting File, Save Workspace 11. Edit the message file by selecting the proper LanguageNames= and entering translations for each message 12. Compile and test
Using Visual Studio .NET 2003
Start Microsoft Visual Studio .NET 2003 Port the Microsoft Visual C++ 6.0 *.dsp project template to the new Microsoft Visual C++ 7.0 *.vcproj format, open the *.dsp project selecting Open Project from the File command menu in Microsoft Visual Studio .NET. For details refer to Microsoft’s Visual Studio.NET help on Visual C++ Porting and Upgrading (http://msdn.microsoft.com/library/default.asp?url=/library/enus/vccore/html/_vc_porting_home.asp) Follow steps 3 to 12 as described in the previous section
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
18 of 35
4 Localizing your Application After building your language library, you need to modify your application in a way such that all the string text that will be shown to an end user is read from the language library. To be able to use the CTI OS Internationalization API, an application must: 1. Create an instance of the CTI OS International Resource Loader COM object 2. Set the language that will be used 3. Retrieve the string text using the MessageId associated with the string to be displayed 4. Display the retrieved string For more details see Chapter 6, Programmer’s Guide.
5 Installing Localized Libraries To install your libraries on the client workstations where your application is located, you need to make sure the following are done: 1. Copy your CtiosLanguage.ZZZ.dll and IntlResourceLoader.dll into the directory of your client application 2. In the registry add the information about the language and path to the library that you installed. For example: HKCUSOFTWARECisco SystemsCTIOSSharedLanguagesESM Language Code = dword:0x080a DLL = string:'c: Program FilesCisco SystemsCTIOS ClientCTIOS Desktop Phones CtiOsLanguage.ESM.dll'
3. To select a language, enter the language code (for example, 0x0409 for ENU (United States English): HKCUSOFTWARECisco SystemsCTIOSShared LanguagesLast Language Language Code = dword:0x080a
NOTE: If you omit Language Code and Last Language, the CTI OS Internationalization Resource Loader will use the system language locale.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
19 of 35
6 Programmer’s Guide In order to make use of the language libraries the CTI OS internationalization Toolkit provides the International Resource Loader. This is a COM object that exports the IGetLanguage public interface to enable programmers to access translated string text from a Language library built with the Toolkit. 6.1
IGetLanguage Interface
The interface consists of the following properties: Property
Access Type
Description
LanguageID
Read/Write
Contains the binary code corresponding to the current language library loaded. Setting a new code causes the International Resource Loader to unload the current language library and load the library specified with the new code.
LanguageText
Read-Only
Returns the name of the language that corresponds to the Language ID.
It publishes two methods: Method
Description
TextString
Retrieves a translated string from the current loaded language library. If there is no such string, this method returns a null string.
TextStringDefault
Retrieves a translated string from the current loaded language library. If there is no translation available, this method returns a default string passed in the parameter list.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
20 of 35
TextString
Retrieves a translated string from the current loaded language library. If there is no such string, this method returns a null string. Syntax VB 6.0:
TextString (ResourceID As Long) As String
COM: HRESULT TextString (int nResourceID , BSTR * bsrStringTxt )
Parameter
Description
ResourceID
Numeric ID that corresponds to the translated string text in the current language library
TextStringDefault
Retrieves a translated string from the current loaded language library. If there is no translation available, this method returns a default string passed in the parameter list Syntax VB 6.0:
TextString (ResourceID As Long, bstrDefaultTxt As String) As
String COM: HRESULT TextString (int nResourceID , BSTR bstDefaultTxt,
BSTR * bsrStringTxt ) Parameter
Description
ResourceID
Numeric ID that corresponds to the translated string text in the current language library
bstrDefaultTxt Text that will be used as default if no translation is found for the string specified by Resource ID
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6.2
21 of 35
Using the International Resource Loader in an Application
Using the International Resource Loader API is straightforward. This section shows how to use the object in VB 6.0, and in C++ with COM written using ATL. For these examples it is assumed that two language libraries exist and were successfully installed. One library is for English United States (ENU,code=0x409) and the other language library for Spanish Mexican (ESM,code 0x80a). For installation details, see Chapter 5.
6.2.1 Localizing a VB 6.0 Application 1. In your VB 6.0 Project, add a reference to the “Cisco COM CTIOS Inernational Resource Loader”:
2. Create an instance of a CTI OS Internationalization Resource Loader: 'CTI OS Internationalization Resource Loader Dim m_Intl As new INTLRESOURCELOADERLib.GetLanguage 'Resource Ids for the text strings in Language Library Const CTIOS_AGENTPHONE_APPNAME As Long = &H702A Const CTIOS_AGENTPHONE_PHONELOADING As Long = &H702B
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
22 of 35
3. Set the language code for the language library to load: Private Sub Form_Load() 'Sets the code for Mexican Spanish and Loads the Library m_Intl.LanguageID = &H80A
4. Retrieve translated text strings and display them: Private Sub Form_Load() Dim strTextStr As String 'Sets the title of the form strTextStr = m_Intl.TextStringDefault(CTIOS_AGENTPHONE_APPNAME, _ 'CISCO CTI OS Agent Phone') Me.Caption = strTextStr 'Sets the title of the form strTextStr = m_Intl.TextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, _ 'Phone is Loading…”) lblMessage = strTextStr End Sub
5. Changing language: Private Sub btnEnglish_Click() Dim strTextStr As String 'Sets the code for English USA and Loads the Library m_Intl.LanguageID = &H409
'Sets the title of the form strTextStr = m_Intl.TextString(CTIOS_AGENTPHONE_APPNAME) Me.Caption = strTextStr 'Sets the title of the form strTextStr = m_Intl.TextString(CTIOS_AGENTPHONE_PHONELOADING) lblMessage = strTextStr
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
23 of 35
6. Application running: Program at startup appears in Mexican Spanish:
After clicking the “English” button:
6.2.2 Localizing a Visual Basic.NET Application
Although Cisco recommends the use of .NET CIL for creating application targeting the .NET Framework and using the .NET localization model. An application written in Visual Basic 6.0 can be migrated to Visual Basic .NET (VB.NET) and still continue to use CTIOS Internationalization Toolkit. In order for a VB.NET application to be able to use CTIOS Internationalization Toolkit it is necessary to configure the Cisco CTI OS RCWs as described in the Cisco CTIOS Developer Guide in Chapter XY and to add a reference to the CTIOS Internationalization Toolkit RCW in the VB.NET Project references as follows:
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
24 of 35
1. From Visual Studio’s “Project” menu make sure to select the “Add Reference…” command 2. From the “Add Reference” dialog box select the “.NET” tab. Warning: Never select the COM tab from the “Add Reference” dialog box and never select the CTIOS Internationalization Toolkit COM component. Doing this will cause Microsoft Visual Studio .NET 2003 to automatically generate a set of private RCW that is not optimized a nor approved by Cisco and your application will probably have an unexpected behavior that could lead to the application to fail
3. From the list select the CTIOS Internationalization Toolkit RCW. The name of the RCW related to CTIOS Internationalization Toolkit is prefixed with “Cisco.” Such that the RCW for CTIOS Internationalization Toolkit is : Cisco.INTLRESOURCELOADERLib.dll
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
25 of 35
6.2.3 Localizing a C++ and COM Application
1. In your C++ project import the “Cisco CTI OS IntlResourceLoader 1.0” type library:
// IntResKitSample.h : Declaration of the CIntResKitSample #import 'D:CTIOSDEVComIntlResourceLoader.dll' using namespace INTLRESOURCELOADERLib; const long CTIOS_AGENTPHONE_APPNAME = 0x702A; const long CTIOS_AGENTPHONE_PHONELOADING = 0x702B;
2. Create an instance of a CTI OS Internationalization Resource Loader: ////////////////////////////////////////////////////////////////////// /////// // CIntResKitSample class CIntResKitSample : public CAxDialogImpl { private: IGetLanguagePtr m_IntKit; public: CIntResKitSample() { HRESULT hr = m_IntKit.CreateInstance(OLESTR('IntlResourceLoader.GetLanguage')); } BEGIN_MSG_MAP(CIntResKitSample) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) COMMAND_ID_HANDLER(IDOK, OnEnglishClicked) COMMAND_ID_HANDLER(IDCANCEL, OnCancel) END_MSG_MAP() }
3. Set the language code for the language library to load : LRESULT CIntResKitSample::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ _bstr_t bstrText = OLESTR('); //Sets the code for Mexican Spanish and Loads the Library m_IntKit->PutLanguageID(0x80a);
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
26 of 35
4. Retrieve translated text strings and display them: LRESULT CIntResKitSample::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_APPNAME, OLESTR('CTI OS Agent Softphone')); this->SetWindowText(bstrText); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, OLESTR('Phone Loading...')); ::SetWindowText(this->GetDlgItem(IDC_MESSAGE),bstrText); }//end OnInitdialog
5. Changing language: LRESULT CIntResKitSample::OnEnglishClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled){ m_IntKit->PutLanguageID(0x409); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_APPNAME, OLESTR('CTI OS Agent Softphone')); this->SetWindowText(bstrText); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, OLESTR('Phone Loading...')); ::SetWindowText(this->GetDlgItem(IDC_MESSAGE),bstrText); }//end OnEnglishClicked
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6. Application running: Program at startup appears in Mexican Spanish:
After clicking the “English” button:
Cisco Systems, Inc.
27 of 35
CTI OS Internationalization Toolkit
28 of 35
7 Localizing CTI OS Agent and Supervisor Softphones This section describes the procedure to localize the CTI OS Agent and Supervisor Softphones. The process involves the installation of new language libraries on both agent and supervisor desktop computers, and the reconfiguration of some settings under the CTI OS Enterprise Desktop Settings registry key at each CTI OS Server host machine. 7.1
Level of Localization
The CTI OS Agent and Supervisor Softphones are out of the box solutions. They can easily be localized by using the prebuilt language libraries provided with the Kit or by generating a new language library on the workstation where the application runs. The level of localization that can be achieved with the current implementation of the CTI OS Softphones and the CTI OS Internationalization kit is as follows: 1. Static Language Selection. This means a new language from any CTI OS Softphone cannot be selected at run time. The language selection must be specified before the Softphone is launched. See Chapter 5, Installing Localized Libraries. 2. Use of System Locale. As explained in Chapter 5, the CTI OS International Resource Loader will determine from the system what language code to use. If a language library exists for this language, the library will be used. Otherwise, English USA will be the default language. 3. Column Header Localization. With this release, localization of column headers for the Call Appearance, Agent and Skill Groups Statistics, and Blended Agent Call Variables is limited to CTI OS System level. This means that if a CTI OS Softphone in English connects to a CTI OS Server for which its Enterprise Desktop Settings have a Spanish translation for the column headers, the Softphone will display the columns headers in Spanish but the rest of the Softphone in English. 4. Text Messages from ICM use ICM locale. Some of the text messages displayed by the CTI OS Softphones are generated by Cisco ICM software. These messages will be shown in the language that ICM software used to generate them. 5. Text Messages from CTI OS Server are in English. In this release the CTI OS Server does not support localization. 7.2
Planning Localization
Before installing any new language libraries or modifying the CTI OS Enterprise Desktop Settings, define for each site the level of localization that is required, and identify the CTI OS components that are involved in each setup.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
29 of 35
For example, suppose that XYZ, Inc. has two call centers, one in Boston and the other in Mexico City. At each site, CTI OS (Server and Softphones) is installed. Management has decided that each center must use the Softphones in the native language at each site, and directs MIS to perform the localization for both sites. Assume that XYZ’s deployment of CTI OS is as in the diagram below.
Center in Boston
Cisco Cti Os. Srvr
Center in M exico
Corporate Network
Cisco Cti Os. Srvr
Agent Desktops
MIS will have to plan for the following tasks only for the call center in Mexico City—since in Boston, English USA will be the default. No.
Task
Activities
1
Create a new build project for the new Language Library
a) Make a copy of the project template provided with the CTI OS Internationalization Toolkit and rename all files to reflect the new language,. e.g. CtiOsLanguage.dsp CtiOsLanguage.mc
CtiOsLanguage.ESM.dsp CtiOsLanguage.ESM.mc
b) Follow the procedure in Chapter 3 to set up the project to build the appropriate language library 2
Translate “*.mc” File.
Cisco Systems, Inc.
Edit the “*.mc” file, translate all the strings in this file and make all entries Language= equal to the name of the language, see
CTI OS Internationalization Toolkit
30 of 35
Section 2.4. For example: CtiOsLanguage.ESM.mc 3
Build Language Library
For example: CtiOsLanguage.ESM.dll
4
Test Language Library
In your development environment, install your new language library as in Chapter 5, and run the CTI OS Agent and Supervisor Softphones to test the translation
5
Translate Column Headers
Using the column definition file templates, create a translated version of the header names for: 1) Call Appearance Grid 2) Agent & Skill Groups Statistics 3) Blended Agent Call Variables (only if Blended Agent functionality is available through Cisco ICM software) For more details about these templates, refer to the Cisco ICM Software CTI OS System Manager’s Guide
6
Load Translated Column Headers into CTI OS Server in Development
Using RegEdit.exe, import the translated column header definition files
7
System Test
Using the CTI OS Agent and Supervisor Softphone, log into the system and verify your localization is successful
8
Deploy Localization to Production
In Mexico City: a) Import the translated column headers into the CTI OS Server registry using RegEdit.exe b) On each agent and supervisor workstation install and configure the new language library for Spanish Mexican
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7.3
31 of 35
Translating *.mc File
The CtiOsLanguage.mc template message file contains the MessageIds and SymbolicNames as the CTI OS Agent and Supervisor Softphones use them. When translating the message text, make sure, in your copy, to only modify LanguageNames= to select the language code, the message text and Language=. Following is an example of how the CtiOsLanguage.ESM.mc will look: ;/* ///////////////////////////////////////////////////////////////////////////////// ; ; CTIOS Internationalization Toolkit ; ... (additional comments removed) ; ; LanguageNames=(afrikaans=0x0436:AFK_SouthAfrica) ; LanguageNames=(albanian=0x041c:SQI_Albania) ; LanguageNames=(arabic=0x0401:ARA_Arabic) ; ... (additional LanguageNames removed) ; ;///////////////////////////////////////////////////////////////////////////////// */ ;
LanguageNames=(spanish_mexican=0x080a:ESM_Mexico) ; ;/* Agent Phone Application Name */ ; MessageId=0x702A SymbolicName= CTIOS_AGENTPHONE_APPNAME Language=spanish_mexican Teléfono del Agente . ; ;/* Agent Phone Progress Messages */ ; MessageId=0x702B SymbolicName= CTIOS_AGENTPHONE_PHONELOADING Language=spanish_mexican Cargando Teléfono... . MessageId=0x702C SymbolicName= CTIOS_AGENTPHONE_DOWNLOADSETTINGS Language=spanish_mexican Bajando Opciones... . MessageId=0x702D SymbolicName= CTIOS_AGENTPHONE_DOWNLOADSETTINGSCOMPLETE Language=spanish_mexican Terminó de Bajar Opciones...
.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7.4
32 of 35
Translating Column Headers
To translate the column headers for the Call Appearance, Agent & Skill Groups Statistics, and the Blended Agent Call Variables, make copies of the following files, and make sure you rename them such that the new name indicates the language used for translation. callappearance.default.reg.txt agentstatistics.default.reg.txt skillgroupstatistics.default.reg.txt blendedagent_addecc.reg.txt
callappearance.ESM.reg.txt agentstatistics.ESM.reg.txt skillgroupstatistics.ESM.reg.txt blendedagent_addecc.ESM.txt
The localization of the column headers consists in editing each of the files listed above. Modify the Header attribute for each column such that the value is the text in the desired language. For more details on configuring column headers, refer to the Cisco ICM Software CTI OS System Manager’s Guide. 7.4.1 Column Headers for Call Appearance REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber1] 'Type'='CallID' 'Header'='Cve. Llamada' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber2] 'Type'='CallStatus' 'Header'='Estado' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber3] 'Type'='DNIS' 'Header'='DNIS' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber4] 'Type'='ANI' 'Header'='ANI' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber5] 'Type'='CED' 'Header'='CED' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber6] 'Type'='DialedNumber' 'Header'='Número Llamado'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
33 of 35
7.4.2 Column Headers for Agent Statistics REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGrid] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatistics] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber] 'DisableStatsMinimization'=dword:00000000 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber1] 'Type'='CallsHandledToday' 'Header'='Llamadas Atendidas Hoy' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber2] 'Type'='TimeLoggedInToday' 'Header'='Tiempo en el Sistema' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber3] 'Type'='TimeTalkingToday' 'Header'='Tiempo Hablando' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber4] 'Type'='TimeHoldingToday' 'Header'='Tiempo en Espera' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber5] 'Type'='TimeReadyToday' 'Header'='Tiempo Disponibe' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber6] 'Type'='TimeNotReadyToday' 'Header'='Tiempo No Disponible'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
34 of 35
7.4.3 Column Headers for Skill Group Statistics REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGrid] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatistics] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber] 'DisableStatsMinimization'=dword:00000000 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber1] 'Type'='SkillGroupNumber' 'Header'='Núm. Grupo' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber2] 'Type'='CallsQNow' 'Header'='Llamdas en Cola' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber3] 'Type'='CallsQTimeNow' 'Header'='Tiempo en Cola' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber4] 'Type'='LongestCallQNow' 'Header'='Cola mas Larga' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber5] 'Type'='AgentsLoggedOn' 'Header'='Agentes Firmados' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber6] 'Type'='AgentsAvail' 'Header'='Agentes Disp.'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
35 of 35
7.4.4 Column Headers for Blended Agent
REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearance] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber] ; ; Previous columns definition were deleted ; [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber7] 'Type'='ECC' 'Name'='BAResponse' 'Header'='Resp. Campaña' 'Maxchars'='24' 'ReadOnly'='false' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber8] 'Type'='ECC' 'Name'='BAStatus' 'Header'='Edo. Campaña' 'Maxchars'='3' 'ReadOnly'='true' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber10] 'Type'='ECC' 'Name'='BAAccountNumber' 'Header'='Campaña Num. Cuenta' 'Maxchars'='33' 'ReadOnly'='true' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber11] 'Type'='ECC' 'Name'='BATimeZone' 'Header'='Campaña Zone' 'Maxchars'='7'
Cisco Systems, Inc.
Cisco Iso Download
CTI OS Internationalization Toolkit Version 7.0
Corporate Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (64387) Fax: 408 526-4100 Customer Order Number: Text Part Number: OL-3550-01
CTI OS Internationalization Toolkit
2 of 35
THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY. The following information is for FCC compliance of Class A devices: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to part 15 of the FCC rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio-frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference, in which case users will be required to correct the interference at their own expense. The following information is for FCC compliance of Class B devices: The equipment described in this manual generates and may radiate radio-frequency energy. If it is not installed in accordance with Cisco’s installation instructions, it may cause interference with radio and television reception. This equipment has been tested and found to comply with the limits for a Class B digital device in accordance with the specifications in part 15 of the FCC rules. These specifications are designed to provide reasonable protection against such interference in a residential installation. However, there is no guarantee that interference will not occur in a particular installation. Modifying the equipment without Cisco’s written authorization may result in the equipment no longer complying with FCC requirements for Class A or Class B digital devices. In that event, your right to use the equipment may be limited by FCC regulations, and you may be required to correct any interference to radio or television communications at your own expense. You can determine whether your equipment is causing interference by turning it off. If the interference stops, it was probably caused by the Cisco equipment or one of its peripheral devices. If the equipment causes interference to radio or television reception, try to correct the interference by using one or more of the following measures: • Turn the television or radio antenna until the interference stops. • Move the equipment to one side or the other of the television or radio. • Move the equipment farther away from the television or radio. • Plug the equipment into an outlet that is on a different circuit from the television or radio. (That is, make certain the equipment and the television or radio are on circuits controlled by different circuit breakers or fuses.) Modifications to this product not authorized by Cisco Systems, Inc. could void the FCC approval and negate your authority to operate the product. The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB’s public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California. NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS” WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. CCIP, the Cisco Arrow logo, the Cisco Powered Network mark, the Cisco Systems Verified logo, Cisco Unity, Follow Me Browsing, FormShare, iQ Breakthrough, iQ Expertise, iQ FastTrack, the iQ Logo, iQ Net Readiness Scorecard, Networking Academy, ScriptShare, SMARTnet, TransPath, and Voice LAN are trademarks of Cisco Systems, Inc.; Changing the Way We Work, Live, Play, and Learn, Discover All That’s Possible, The Fastest Way to Increase Your Internet Quotient, and iQuick Study are service marks of Cisco Systems, Inc.; and Aironet, ASIST, BPX, Catalyst, CCDA, CCDP, CCIE, CCNA, CCNP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, the Cisco IOS logo, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Empowering the Internet Generation, Enterprise/Solver, EtherChannel, EtherSwitch, Fast Step, GigaStack, Internet Quotient, IOS, IP/TV, LightStream, MGX, MICA, the Networkers logo, Network Registrar, Packet, PIX, Post-Routing, Pre-Routing, RateMUX, Registrar, SlideCast, StrataView Plus, Stratm, SwitchProbe, TeleRouter, and VCO are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and certain other countries. All other trademarks mentioned in this document or Web site are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0208R) CTI OS Internationalization Toolkit Copyright © 2003, Cisco Systems, Inc. All rights reserved.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
3 of 35
Table Of Contents 1 INTRODUCTION.......................................................................................................................... 5 1.1 Localization Process 5 1.2 What Is Provided on the CD 7 2 EDITING MESSAGE FILES ...................................................................................................... 10 2.1 Suggestion 10 2.2 Message File 10 2.3 Comments 11 2.4 LanguageNames 11 2.5 Message Definitions 12 3 BUILDING A LANGUAGE LIBRARY ....................................................................................... 12 3.1 Using Microsoft Visual Studio 6.0 12 Using Visual Studio .NET 2003 17 4 LOCALIZING YOUR APPLICATION ........................................................................................ 18 5 INSTALLING LOCALIZED LIBRARIES ................................................................................... 18 6 PROGRAMMER’S GUIDE......................................................................................................... 19 6.1 IGetLanguage Interface 19 6.2 Using the International Resource Loader in an Application 21 6.2.1 6.2.2 6.2.3
Localizing a VB 6.0 Application Localizing a Visual Basic.NET Application Localizing a C++ and COM Application
21 23 25
7 LOCALIZING CTI OS AGENT AND SUPERVISOR SOFTPHONES ....................................... 28 7.1 Level of Localization 28 7.2 Planning Localization 28 7.3 Translating *.mc File 31 7.4 Translating Column Headers 32 7.4.1 7.4.2 7.4.3 7.4.4
Column Headers for Call Appearance Column Headers for Agent Statistics Column Headers for Skill Group Statistics Column Headers for Blended Agent
Cisco Systems, Inc.
32 33 34 35
CTI OS Internationalization Toolkit
Cisco Systems, Inc.
4 of 35
CTI OS Internationalization Toolkit
5 of 35
1 Introduction The CTI OS Internationalization Toolkit is a general purpose tool that provides the mechanisms and utilities necessary for creating localized versions of client applications such as the CTI OS Toolkit Agent and IPCC Supervisor Desktops. The toolkit uses a message file that is converted into a language library used by the application to retrieve the translated text that is to be shown to the user. The CTI OS Internationalization Toolkit has the following features: Language selection automatically defaults to the operating system settings. No action is necessary by a user or administrator. An API is provided to access the localized string text from a language library. The API is exposed as an in-process COM server. A single application can be built with support for many different languages. The Toolkit supports double-byte and extended character languages, including Chinese, Japanese, Korean, Hebrew, Arabic, Cyrillic, and Latin. It provides a template project and a *.mc file that allows localization of the CTI OS Toolkit Agent and IPCC Supervisor Desktops 1.1
Localization Process
The localization process of an application starts with the creation of a message file that contains the language code and the localized text strings. The name of each message file must use the following convention: CtiOsLanguage..mc where is standard language code, see Figure 1. For a complete list of language codes and language identifiers refer to “Language Identifiers and Locale” in the Microsoft MSDN Library CD or on-line at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcelocal/htm/cerefLanguageIdentifiersLocales.asp
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6 of 35
CtiOsLanguagee.LANG.mc
MC Compiler
CtiOsLanguagee.LANG.res
Build Project
CtiOsLanguage.LANG.DLL
Figure 1. Localization workflow
This message file is compiled with Microsoft’s message compiler to produce a resource file that is then used to build the final language library. The language library name will be CtiOsLanguage..dll. The Toolkit provides a Microsoft Visual Studio 6.0 project template that can be used to build a language library. The instructions for building a library are provided in the next section. Examples of message files and language libraries are presented in Table 1: Language
Message File
Language Library
Chinese Simplified
CtiosLanguage.CHS.mc
CtiosLanguage.CHS.dll
Spanish
CtiosLanguage.ESP.mc
CtiosLanguage.ESP.dll
French
CtiosLanguage.FRA.mc
CtiosLanguage.FRA.dll
Table 1. Message files and language libraries
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7 of 35
After the language library is produced, the client application uses the toolkit’s API to access the localized strings text in the language library as in Figure 2. Dim objIntl
As New INTLRESOURCELOADERLib.GetLanguage
Const CTIOS_AGENTPHONE_APPNAME = &H702A Private Sub Form_Load() lstLaguages.ListIndex = 1 End Sub
Private Sub lstLaguages_Click() Dim strTranslatedStr As String objIntl.LanguageID = lstLaguages.ItemData(lstLaguages.ListIndex) strTranslatedStr = objIntl.TextStringDefault(CTIOS_AGENTPHONE_APPNAME, _ 'CISCO CTI OS Agent Phone') lblMessage.Caption = strTranslatedStr End Sub
Figure 2. Localized application 1.2
What Is Provided on the CD
The CTI OS Internationalization Toolkit is included within the distribution CD of the CTI OS Toolkit and its components are located in the Win32 CIL subdirectory. The parts that constitute the toolkit are listed in Table 2.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
Location
8 of 35
Part Name
InternationalizationKit CtiOsLanguage.dsp
Description
Microsoft Visual C++ 6.0 project template used to generate the new Language library. For details on how to migrate this project to Microsoft Visual Studio .NET 2003, please refer to Microsoft’s Visual Studio.NET help on
Visual C++ Porting and Upgrading ( InternationalizationKit CtiOsLanguage.mc
Message file template, contains all the string text and symbols used by the CTI OS Toolkit Agent and IPCC Supervisor Desktops.
InternationalizationKit CtiOsLanguage.cpp
Standard DLL callbacks
InternationalizationKit CtiOsLanguage.h
Auto generated files at compilation of *.mc file
CtiOsLanguage.rc COM Servers and Activex Controls
IntlResourceLoader.dll
.NETInterops
Cisco.INTLRESOURC Runtime Callable Wrapper (RCW) ELOADERLib.dll assembly used by .NET based application requiring to use the CTI OS Internationalization Kit
InternationalizationKit ctioslanguage.XXX.dll Languages
CTI OS International Resource Loader, registered at installation time
Prebuilt language libraries for” the following languages: CHS .- Chinese Simple KOR.- Korean GER .- German FRA.- French ESN.- Spanish Neutral ENU.-English USA PTB .- Portuguese Brazilian
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
Location
9 of 35
Part Name
Description
InternationalizationKit ConfigLanguages.reg.t Languages xt
Registry file to configure language libraries for the CTI OS Agent and Supervisor phones
InternationalizationKit agentstatistics.XXX.re Languages g.txt
Pre-translated standard grid column headers for” the following languages:
callappearance.XX.reg. CHS .- Chinese Simple txt KOR.- Korean skillgroupstatistics.XX GER .- German X.reg.txt blendedagent_addecc. XX.reg.txt
FRA.- French ESN.- Spanish Neutral ENU.-English USA PTB .- Portuguese Brazilian
Table 2. CTIOS Internationalization Toolkit components
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
10 of 35
2 Editing Message Files 2.1
Suggestion
Before creating a message file on your own, make a copy of the template message file provided with the toolkit and rename it to conform to the country or language you will be localizing to, for example, CtiOsLanguage.ESM.mc. 2.2
Message File
A message file is used to build a language library. The general format of a message file is a LanguageNames entry followed by several Message definition lines as shown in Figure 3. ;/* ///////////////////////////////////////////////////////////////////////////////// ; ; CTIOS Internationalization Toolkit ; ... (additional comments removed) ; ; LanguageNames=(afrikaans=0x0436:AFK_SouthAfrica) ; LanguageNames=(albanian=0x041c:SQI_Albania) ; LanguageNames=(arabic=0x0401:ARA_Arabic) ; ... (additional LanguageNames removed) ; ;///////////////////////////////////////////////////////////////////////////////// */ ; LanguageNames=(english=0x0409:ENU_UnitedStates) ;/*LanguageNames=(french=0x040c:FRA_France)*/ ; ;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; | Agent Phone Definitions | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ ; ;/* These keywords group buttons on the phone */ MessageId=0x7024 SymbolicName= CTIOS_AGENTPHONE_LOGINGROUP Language=English Login . MessageId=0x7025 SymbolicName= CTIOS_AGENTPHONE_AGENTSTATEGROUP Language=English Agent State . Figure 3. Message file Cisco Systems, Inc.
CTI OS Internationalization Toolkit
2.3
11 of 35
Comments
Comments must begin with a semi-colon, and must use the standard C++ comment syntax: either the /* … */ multiline syntax or // syntax, refer to Figure 4. ; // this is valid ; /* this is also valid */ // this is NOT valid (no semi-colon) ; this is NOT valid (no // for alternative syntax)
Figure 4. Comments 2.4
LanguageNames
The message file must contain only one LanguageNames entry, for example: LanguageNames=(english=0x0409:ENU_UnitedStates) If you use the message file provided in the Toolkit, you will find several predefined
LanguageNames entries listed in the form of comments. To select a language, remove the comment symbol where appropriate. Key points: The text in the LanguageNames line is critical and should not be changed under any circumstances. The values and language names match the values reported by the Microsoft Windows operating system. For a complete list refer to “Language Identifiers and Locale” in the MSDN Library CD or online. Changing any value will prevent the Toolkit from loading the correct message files. The language name for the selected language is the first term in the line. The remainder of the statement contains the language binary code, the language designator code, and the country code. The language name is used in the message definitions that follow.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
2.5
12 of 35
Message Definitions
Each message consists of a minimum of five (5) lines: MessageId, SymbolicName, Language, language-specific translation, end-of-message line (consisting of a period). ;/* These keywords group buttons on the phone */ MessageId=0x7024 SymbolicName= CTIOS_AGENTPHONE_LOGINGROUP Language=English Login . Figure 5. Message definition
Key points: For each message select a unique MessageId. This is what identifies the string text in the language library and is what you will use in the API to retrieve this string. For each message select a unique SymbolicName, this value will be used by the MC compiler to create an include file that is used by the resource compiler. The language entered in the Language= line must match the language name entered in the LanguageNames= line. Only the language name should be entered. The language-specific translation must follow the Language= line. The translation may consist of multiple lines. A line with a period defines the end of the translation for the entry.
3 Building a Language Library 3.1
Using Microsoft Visual Studio 6.0
Copy the template project provided with the Toolkit and rename it to conform to the country or language for which you will be generating the library. For example, CtiOsLanguage.ESM.dsp. 1. Start Microsoft Visual C++ 6.0. 2. Select File + Open Workspace … to open the Internationalization Toolkit Workspace.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
13 of 35
3. Double-click on the CtiOsLanguage.mc file, then select File Save As … and save the message file with a language specific name, such as CtiOsLanguage.ESM.mc.
4. Add the new file to the project by selecting Project, Add to Project…, Files…:
5. Remove CtiOsLanguage.mc from the project by deleting the entry from the project:
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
14 of 35
6. Select your new CtiOsLanguage.ESM.mc file. Do a right click over it with the mouse and from the pop up menu select Settings…:
Make sure that the Custom Build settings for this file are as shown in the following image:
Once you have filled in the Commands and Outputs text boxes click OK. 7. Now you need to configure the Linker and Resource compiler to produce your library using the appropriate settings. For this you need to select Project + Settings … to bring up the project settings dialog. Note that all the settings you will make in the following steps need to be executed for both Debug and Release configurations. For the sake of convenience, from here on Config will be used to indicate both Debug and Release. Cisco Systems, Inc.
CTI OS Internationalization Toolkit
8. In the settings dialog select the tab folder marked “Link“ and make sure that: The output file name is Config/ctioslanguage.EMS.dll
Cisco Systems, Inc.
15 of 35
CTI OS Internationalization Toolkit
16 of 35
The Program database name is Config/ctioslanguage.EMS.pdb
9. Select the tab folder marked “Resources”, and make sure that the Resource file name is Config/ctioslanguage.EMS.res and also make sure the Language selected corresponds.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
17 of 35
10. Save the project, by selecting File, Save Workspace 11. Edit the message file by selecting the proper LanguageNames= and entering translations for each message 12. Compile and test
Using Visual Studio .NET 2003
Start Microsoft Visual Studio .NET 2003 Port the Microsoft Visual C++ 6.0 *.dsp project template to the new Microsoft Visual C++ 7.0 *.vcproj format, open the *.dsp project selecting Open Project from the File command menu in Microsoft Visual Studio .NET. For details refer to Microsoft’s Visual Studio.NET help on Visual C++ Porting and Upgrading (http://msdn.microsoft.com/library/default.asp?url=/library/enus/vccore/html/_vc_porting_home.asp) Follow steps 3 to 12 as described in the previous section
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
18 of 35
4 Localizing your Application After building your language library, you need to modify your application in a way such that all the string text that will be shown to an end user is read from the language library. To be able to use the CTI OS Internationalization API, an application must: 1. Create an instance of the CTI OS International Resource Loader COM object 2. Set the language that will be used 3. Retrieve the string text using the MessageId associated with the string to be displayed 4. Display the retrieved string For more details see Chapter 6, Programmer’s Guide.
5 Installing Localized Libraries To install your libraries on the client workstations where your application is located, you need to make sure the following are done: 1. Copy your CtiosLanguage.ZZZ.dll and IntlResourceLoader.dll into the directory of your client application 2. In the registry add the information about the language and path to the library that you installed. For example: HKCUSOFTWARECisco SystemsCTIOSSharedLanguagesESM Language Code = dword:0x080a DLL = string:'c: Program FilesCisco SystemsCTIOS ClientCTIOS Desktop Phones CtiOsLanguage.ESM.dll'
3. To select a language, enter the language code (for example, 0x0409 for ENU (United States English): HKCUSOFTWARECisco SystemsCTIOSShared LanguagesLast Language Language Code = dword:0x080a
NOTE: If you omit Language Code and Last Language, the CTI OS Internationalization Resource Loader will use the system language locale.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
19 of 35
6 Programmer’s Guide In order to make use of the language libraries the CTI OS internationalization Toolkit provides the International Resource Loader. This is a COM object that exports the IGetLanguage public interface to enable programmers to access translated string text from a Language library built with the Toolkit. 6.1
IGetLanguage Interface
The interface consists of the following properties: Property
Access Type
Description
LanguageID
Read/Write
Contains the binary code corresponding to the current language library loaded. Setting a new code causes the International Resource Loader to unload the current language library and load the library specified with the new code.
LanguageText
Read-Only
Returns the name of the language that corresponds to the Language ID.
It publishes two methods: Method
Description
TextString
Retrieves a translated string from the current loaded language library. If there is no such string, this method returns a null string.
TextStringDefault
Retrieves a translated string from the current loaded language library. If there is no translation available, this method returns a default string passed in the parameter list.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
20 of 35
TextString
Retrieves a translated string from the current loaded language library. If there is no such string, this method returns a null string. Syntax VB 6.0:
TextString (ResourceID As Long) As String
COM: HRESULT TextString (int nResourceID , BSTR * bsrStringTxt )
Parameter
Description
ResourceID
Numeric ID that corresponds to the translated string text in the current language library
TextStringDefault
Retrieves a translated string from the current loaded language library. If there is no translation available, this method returns a default string passed in the parameter list Syntax VB 6.0:
TextString (ResourceID As Long, bstrDefaultTxt As String) As
String COM: HRESULT TextString (int nResourceID , BSTR bstDefaultTxt,
BSTR * bsrStringTxt ) Parameter
Description
ResourceID
Numeric ID that corresponds to the translated string text in the current language library
bstrDefaultTxt Text that will be used as default if no translation is found for the string specified by Resource ID
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6.2
21 of 35
Using the International Resource Loader in an Application
Using the International Resource Loader API is straightforward. This section shows how to use the object in VB 6.0, and in C++ with COM written using ATL. For these examples it is assumed that two language libraries exist and were successfully installed. One library is for English United States (ENU,code=0x409) and the other language library for Spanish Mexican (ESM,code 0x80a). For installation details, see Chapter 5.
6.2.1 Localizing a VB 6.0 Application 1. In your VB 6.0 Project, add a reference to the “Cisco COM CTIOS Inernational Resource Loader”:
2. Create an instance of a CTI OS Internationalization Resource Loader: 'CTI OS Internationalization Resource Loader Dim m_Intl As new INTLRESOURCELOADERLib.GetLanguage 'Resource Ids for the text strings in Language Library Const CTIOS_AGENTPHONE_APPNAME As Long = &H702A Const CTIOS_AGENTPHONE_PHONELOADING As Long = &H702B
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
22 of 35
3. Set the language code for the language library to load: Private Sub Form_Load() 'Sets the code for Mexican Spanish and Loads the Library m_Intl.LanguageID = &H80A
4. Retrieve translated text strings and display them: Private Sub Form_Load() Dim strTextStr As String 'Sets the title of the form strTextStr = m_Intl.TextStringDefault(CTIOS_AGENTPHONE_APPNAME, _ 'CISCO CTI OS Agent Phone') Me.Caption = strTextStr 'Sets the title of the form strTextStr = m_Intl.TextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, _ 'Phone is Loading…”) lblMessage = strTextStr End Sub
5. Changing language: Private Sub btnEnglish_Click() Dim strTextStr As String 'Sets the code for English USA and Loads the Library m_Intl.LanguageID = &H409
'Sets the title of the form strTextStr = m_Intl.TextString(CTIOS_AGENTPHONE_APPNAME) Me.Caption = strTextStr 'Sets the title of the form strTextStr = m_Intl.TextString(CTIOS_AGENTPHONE_PHONELOADING) lblMessage = strTextStr
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
23 of 35
6. Application running: Program at startup appears in Mexican Spanish:
After clicking the “English” button:
6.2.2 Localizing a Visual Basic.NET Application
Although Cisco recommends the use of .NET CIL for creating application targeting the .NET Framework and using the .NET localization model. An application written in Visual Basic 6.0 can be migrated to Visual Basic .NET (VB.NET) and still continue to use CTIOS Internationalization Toolkit. In order for a VB.NET application to be able to use CTIOS Internationalization Toolkit it is necessary to configure the Cisco CTI OS RCWs as described in the Cisco CTIOS Developer Guide in Chapter XY and to add a reference to the CTIOS Internationalization Toolkit RCW in the VB.NET Project references as follows:
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
24 of 35
1. From Visual Studio’s “Project” menu make sure to select the “Add Reference…” command 2. From the “Add Reference” dialog box select the “.NET” tab. Warning: Never select the COM tab from the “Add Reference” dialog box and never select the CTIOS Internationalization Toolkit COM component. Doing this will cause Microsoft Visual Studio .NET 2003 to automatically generate a set of private RCW that is not optimized a nor approved by Cisco and your application will probably have an unexpected behavior that could lead to the application to fail
3. From the list select the CTIOS Internationalization Toolkit RCW. The name of the RCW related to CTIOS Internationalization Toolkit is prefixed with “Cisco.” Such that the RCW for CTIOS Internationalization Toolkit is : Cisco.INTLRESOURCELOADERLib.dll
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
25 of 35
6.2.3 Localizing a C++ and COM Application
1. In your C++ project import the “Cisco CTI OS IntlResourceLoader 1.0” type library:
// IntResKitSample.h : Declaration of the CIntResKitSample #import 'D:CTIOSDEVComIntlResourceLoader.dll' using namespace INTLRESOURCELOADERLib; const long CTIOS_AGENTPHONE_APPNAME = 0x702A; const long CTIOS_AGENTPHONE_PHONELOADING = 0x702B;
2. Create an instance of a CTI OS Internationalization Resource Loader: ////////////////////////////////////////////////////////////////////// /////// // CIntResKitSample class CIntResKitSample : public CAxDialogImpl { private: IGetLanguagePtr m_IntKit; public: CIntResKitSample() { HRESULT hr = m_IntKit.CreateInstance(OLESTR('IntlResourceLoader.GetLanguage')); } BEGIN_MSG_MAP(CIntResKitSample) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) COMMAND_ID_HANDLER(IDOK, OnEnglishClicked) COMMAND_ID_HANDLER(IDCANCEL, OnCancel) END_MSG_MAP() }
3. Set the language code for the language library to load : LRESULT CIntResKitSample::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ _bstr_t bstrText = OLESTR('); //Sets the code for Mexican Spanish and Loads the Library m_IntKit->PutLanguageID(0x80a);
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
26 of 35
4. Retrieve translated text strings and display them: LRESULT CIntResKitSample::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_APPNAME, OLESTR('CTI OS Agent Softphone')); this->SetWindowText(bstrText); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, OLESTR('Phone Loading...')); ::SetWindowText(this->GetDlgItem(IDC_MESSAGE),bstrText); }//end OnInitdialog
5. Changing language: LRESULT CIntResKitSample::OnEnglishClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled){ m_IntKit->PutLanguageID(0x409); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_APPNAME, OLESTR('CTI OS Agent Softphone')); this->SetWindowText(bstrText); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, OLESTR('Phone Loading...')); ::SetWindowText(this->GetDlgItem(IDC_MESSAGE),bstrText); }//end OnEnglishClicked
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6. Application running: Program at startup appears in Mexican Spanish:
After clicking the “English” button:
Cisco Systems, Inc.
27 of 35
CTI OS Internationalization Toolkit
28 of 35
7 Localizing CTI OS Agent and Supervisor Softphones This section describes the procedure to localize the CTI OS Agent and Supervisor Softphones. The process involves the installation of new language libraries on both agent and supervisor desktop computers, and the reconfiguration of some settings under the CTI OS Enterprise Desktop Settings registry key at each CTI OS Server host machine. 7.1
Level of Localization
The CTI OS Agent and Supervisor Softphones are out of the box solutions. They can easily be localized by using the prebuilt language libraries provided with the Kit or by generating a new language library on the workstation where the application runs. The level of localization that can be achieved with the current implementation of the CTI OS Softphones and the CTI OS Internationalization kit is as follows: 1. Static Language Selection. This means a new language from any CTI OS Softphone cannot be selected at run time. The language selection must be specified before the Softphone is launched. See Chapter 5, Installing Localized Libraries. 2. Use of System Locale. As explained in Chapter 5, the CTI OS International Resource Loader will determine from the system what language code to use. If a language library exists for this language, the library will be used. Otherwise, English USA will be the default language. 3. Column Header Localization. With this release, localization of column headers for the Call Appearance, Agent and Skill Groups Statistics, and Blended Agent Call Variables is limited to CTI OS System level. This means that if a CTI OS Softphone in English connects to a CTI OS Server for which its Enterprise Desktop Settings have a Spanish translation for the column headers, the Softphone will display the columns headers in Spanish but the rest of the Softphone in English. 4. Text Messages from ICM use ICM locale. Some of the text messages displayed by the CTI OS Softphones are generated by Cisco ICM software. These messages will be shown in the language that ICM software used to generate them. 5. Text Messages from CTI OS Server are in English. In this release the CTI OS Server does not support localization. 7.2
Planning Localization
Before installing any new language libraries or modifying the CTI OS Enterprise Desktop Settings, define for each site the level of localization that is required, and identify the CTI OS components that are involved in each setup.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
29 of 35
For example, suppose that XYZ, Inc. has two call centers, one in Boston and the other in Mexico City. At each site, CTI OS (Server and Softphones) is installed. Management has decided that each center must use the Softphones in the native language at each site, and directs MIS to perform the localization for both sites. Assume that XYZ’s deployment of CTI OS is as in the diagram below.
Center in Boston
Cisco Cti Os. Srvr
Center in M exico
Corporate Network
Cisco Cti Os. Srvr
Agent Desktops
MIS will have to plan for the following tasks only for the call center in Mexico City—since in Boston, English USA will be the default. No.
Task
Activities
1
Create a new build project for the new Language Library
a) Make a copy of the project template provided with the CTI OS Internationalization Toolkit and rename all files to reflect the new language,. e.g. CtiOsLanguage.dsp CtiOsLanguage.mc
CtiOsLanguage.ESM.dsp CtiOsLanguage.ESM.mc
b) Follow the procedure in Chapter 3 to set up the project to build the appropriate language library 2
Translate “*.mc” File.
Cisco Systems, Inc.
Edit the “*.mc” file, translate all the strings in this file and make all entries Language= equal to the name of the language, see
CTI OS Internationalization Toolkit
30 of 35
Section 2.4. For example: CtiOsLanguage.ESM.mc 3
Build Language Library
For example: CtiOsLanguage.ESM.dll
4
Test Language Library
In your development environment, install your new language library as in Chapter 5, and run the CTI OS Agent and Supervisor Softphones to test the translation
5
Translate Column Headers
Using the column definition file templates, create a translated version of the header names for: 1) Call Appearance Grid 2) Agent & Skill Groups Statistics 3) Blended Agent Call Variables (only if Blended Agent functionality is available through Cisco ICM software) For more details about these templates, refer to the Cisco ICM Software CTI OS System Manager’s Guide
6
Load Translated Column Headers into CTI OS Server in Development
Using RegEdit.exe, import the translated column header definition files
7
System Test
Using the CTI OS Agent and Supervisor Softphone, log into the system and verify your localization is successful
8
Deploy Localization to Production
In Mexico City: a) Import the translated column headers into the CTI OS Server registry using RegEdit.exe b) On each agent and supervisor workstation install and configure the new language library for Spanish Mexican
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7.3
31 of 35
Translating *.mc File
The CtiOsLanguage.mc template message file contains the MessageIds and SymbolicNames as the CTI OS Agent and Supervisor Softphones use them. When translating the message text, make sure, in your copy, to only modify LanguageNames= to select the language code, the message text and Language=. Following is an example of how the CtiOsLanguage.ESM.mc will look: ;/* ///////////////////////////////////////////////////////////////////////////////// ; ; CTIOS Internationalization Toolkit ; ... (additional comments removed) ; ; LanguageNames=(afrikaans=0x0436:AFK_SouthAfrica) ; LanguageNames=(albanian=0x041c:SQI_Albania) ; LanguageNames=(arabic=0x0401:ARA_Arabic) ; ... (additional LanguageNames removed) ; ;///////////////////////////////////////////////////////////////////////////////// */ ;
LanguageNames=(spanish_mexican=0x080a:ESM_Mexico) ; ;/* Agent Phone Application Name */ ; MessageId=0x702A SymbolicName= CTIOS_AGENTPHONE_APPNAME Language=spanish_mexican Teléfono del Agente . ; ;/* Agent Phone Progress Messages */ ; MessageId=0x702B SymbolicName= CTIOS_AGENTPHONE_PHONELOADING Language=spanish_mexican Cargando Teléfono... . MessageId=0x702C SymbolicName= CTIOS_AGENTPHONE_DOWNLOADSETTINGS Language=spanish_mexican Bajando Opciones... . MessageId=0x702D SymbolicName= CTIOS_AGENTPHONE_DOWNLOADSETTINGSCOMPLETE Language=spanish_mexican Terminó de Bajar Opciones...
.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7.4
32 of 35
Translating Column Headers
To translate the column headers for the Call Appearance, Agent & Skill Groups Statistics, and the Blended Agent Call Variables, make copies of the following files, and make sure you rename them such that the new name indicates the language used for translation. callappearance.default.reg.txt agentstatistics.default.reg.txt skillgroupstatistics.default.reg.txt blendedagent_addecc.reg.txt
callappearance.ESM.reg.txt agentstatistics.ESM.reg.txt skillgroupstatistics.ESM.reg.txt blendedagent_addecc.ESM.txt
The localization of the column headers consists in editing each of the files listed above. Modify the Header attribute for each column such that the value is the text in the desired language. For more details on configuring column headers, refer to the Cisco ICM Software CTI OS System Manager’s Guide. 7.4.1 Column Headers for Call Appearance REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber1] 'Type'='CallID' 'Header'='Cve. Llamada' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber2] 'Type'='CallStatus' 'Header'='Estado' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber3] 'Type'='DNIS' 'Header'='DNIS' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber4] 'Type'='ANI' 'Header'='ANI' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber5] 'Type'='CED' 'Header'='CED' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber6] 'Type'='DialedNumber' 'Header'='Número Llamado'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
33 of 35
7.4.2 Column Headers for Agent Statistics REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGrid] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatistics] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber] 'DisableStatsMinimization'=dword:00000000 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber1] 'Type'='CallsHandledToday' 'Header'='Llamadas Atendidas Hoy' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber2] 'Type'='TimeLoggedInToday' 'Header'='Tiempo en el Sistema' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber3] 'Type'='TimeTalkingToday' 'Header'='Tiempo Hablando' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber4] 'Type'='TimeHoldingToday' 'Header'='Tiempo en Espera' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber5] 'Type'='TimeReadyToday' 'Header'='Tiempo Disponibe' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber6] 'Type'='TimeNotReadyToday' 'Header'='Tiempo No Disponible'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
34 of 35
7.4.3 Column Headers for Skill Group Statistics REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGrid] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatistics] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber] 'DisableStatsMinimization'=dword:00000000 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber1] 'Type'='SkillGroupNumber' 'Header'='Núm. Grupo' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber2] 'Type'='CallsQNow' 'Header'='Llamdas en Cola' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber3] 'Type'='CallsQTimeNow' 'Header'='Tiempo en Cola' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber4] 'Type'='LongestCallQNow' 'Header'='Cola mas Larga' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber5] 'Type'='AgentsLoggedOn' 'Header'='Agentes Firmados' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber6] 'Type'='AgentsAvail' 'Header'='Agentes Disp.'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
35 of 35
7.4.4 Column Headers for Blended Agent
REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearance] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber] ; ; Previous columns definition were deleted ; [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber7] 'Type'='ECC' 'Name'='BAResponse' 'Header'='Resp. Campaña' 'Maxchars'='24' 'ReadOnly'='false' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber8] 'Type'='ECC' 'Name'='BAStatus' 'Header'='Edo. Campaña' 'Maxchars'='3' 'ReadOnly'='true' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber10] 'Type'='ECC' 'Name'='BAAccountNumber' 'Header'='Campaña Num. Cuenta' 'Maxchars'='33' 'ReadOnly'='true' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber11] 'Type'='ECC' 'Name'='BATimeZone' 'Header'='Campaña Zone' 'Maxchars'='7'
Cisco Systems, Inc.
Corporate Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (64387) Fax: 408 526-4100 Customer Order Number: Text Part Number: OL-3550-01
CTI OS Internationalization Toolkit
2 of 35
THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY. The following information is for FCC compliance of Class A devices: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to part 15 of the FCC rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio-frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference, in which case users will be required to correct the interference at their own expense. The following information is for FCC compliance of Class B devices: The equipment described in this manual generates and may radiate radio-frequency energy. If it is not installed in accordance with Cisco’s installation instructions, it may cause interference with radio and television reception. This equipment has been tested and found to comply with the limits for a Class B digital device in accordance with the specifications in part 15 of the FCC rules. These specifications are designed to provide reasonable protection against such interference in a residential installation. However, there is no guarantee that interference will not occur in a particular installation. Modifying the equipment without Cisco’s written authorization may result in the equipment no longer complying with FCC requirements for Class A or Class B digital devices. In that event, your right to use the equipment may be limited by FCC regulations, and you may be required to correct any interference to radio or television communications at your own expense. You can determine whether your equipment is causing interference by turning it off. If the interference stops, it was probably caused by the Cisco equipment or one of its peripheral devices. If the equipment causes interference to radio or television reception, try to correct the interference by using one or more of the following measures: • Turn the television or radio antenna until the interference stops. • Move the equipment to one side or the other of the television or radio. • Move the equipment farther away from the television or radio. • Plug the equipment into an outlet that is on a different circuit from the television or radio. (That is, make certain the equipment and the television or radio are on circuits controlled by different circuit breakers or fuses.) Modifications to this product not authorized by Cisco Systems, Inc. could void the FCC approval and negate your authority to operate the product. The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB’s public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California. NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS” WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. CCIP, the Cisco Arrow logo, the Cisco Powered Network mark, the Cisco Systems Verified logo, Cisco Unity, Follow Me Browsing, FormShare, iQ Breakthrough, iQ Expertise, iQ FastTrack, the iQ Logo, iQ Net Readiness Scorecard, Networking Academy, ScriptShare, SMARTnet, TransPath, and Voice LAN are trademarks of Cisco Systems, Inc.; Changing the Way We Work, Live, Play, and Learn, Discover All That’s Possible, The Fastest Way to Increase Your Internet Quotient, and iQuick Study are service marks of Cisco Systems, Inc.; and Aironet, ASIST, BPX, Catalyst, CCDA, CCDP, CCIE, CCNA, CCNP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, the Cisco IOS logo, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Empowering the Internet Generation, Enterprise/Solver, EtherChannel, EtherSwitch, Fast Step, GigaStack, Internet Quotient, IOS, IP/TV, LightStream, MGX, MICA, the Networkers logo, Network Registrar, Packet, PIX, Post-Routing, Pre-Routing, RateMUX, Registrar, SlideCast, StrataView Plus, Stratm, SwitchProbe, TeleRouter, and VCO are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and certain other countries. All other trademarks mentioned in this document or Web site are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0208R) CTI OS Internationalization Toolkit Copyright © 2003, Cisco Systems, Inc. All rights reserved.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
3 of 35
Table Of Contents 1 INTRODUCTION.......................................................................................................................... 5 1.1 Localization Process 5 1.2 What Is Provided on the CD 7 2 EDITING MESSAGE FILES ...................................................................................................... 10 2.1 Suggestion 10 2.2 Message File 10 2.3 Comments 11 2.4 LanguageNames 11 2.5 Message Definitions 12 3 BUILDING A LANGUAGE LIBRARY ....................................................................................... 12 3.1 Using Microsoft Visual Studio 6.0 12 Using Visual Studio .NET 2003 17 4 LOCALIZING YOUR APPLICATION ........................................................................................ 18 5 INSTALLING LOCALIZED LIBRARIES ................................................................................... 18 6 PROGRAMMER’S GUIDE......................................................................................................... 19 6.1 IGetLanguage Interface 19 6.2 Using the International Resource Loader in an Application 21 6.2.1 6.2.2 6.2.3
Localizing a VB 6.0 Application Localizing a Visual Basic.NET Application Localizing a C++ and COM Application
21 23 25
7 LOCALIZING CTI OS AGENT AND SUPERVISOR SOFTPHONES ....................................... 28 7.1 Level of Localization 28 7.2 Planning Localization 28 7.3 Translating *.mc File 31 7.4 Translating Column Headers 32 7.4.1 7.4.2 7.4.3 7.4.4
Column Headers for Call Appearance Column Headers for Agent Statistics Column Headers for Skill Group Statistics Column Headers for Blended Agent
Cisco Systems, Inc.
32 33 34 35
CTI OS Internationalization Toolkit
Cisco Systems, Inc.
4 of 35
CTI OS Internationalization Toolkit
5 of 35
1 Introduction The CTI OS Internationalization Toolkit is a general purpose tool that provides the mechanisms and utilities necessary for creating localized versions of client applications such as the CTI OS Toolkit Agent and IPCC Supervisor Desktops. The toolkit uses a message file that is converted into a language library used by the application to retrieve the translated text that is to be shown to the user. The CTI OS Internationalization Toolkit has the following features: Language selection automatically defaults to the operating system settings. No action is necessary by a user or administrator. An API is provided to access the localized string text from a language library. The API is exposed as an in-process COM server. A single application can be built with support for many different languages. The Toolkit supports double-byte and extended character languages, including Chinese, Japanese, Korean, Hebrew, Arabic, Cyrillic, and Latin. It provides a template project and a *.mc file that allows localization of the CTI OS Toolkit Agent and IPCC Supervisor Desktops 1.1
Localization Process
The localization process of an application starts with the creation of a message file that contains the language code and the localized text strings. The name of each message file must use the following convention: CtiOsLanguage..mc where is standard language code, see Figure 1. For a complete list of language codes and language identifiers refer to “Language Identifiers and Locale” in the Microsoft MSDN Library CD or on-line at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcelocal/htm/cerefLanguageIdentifiersLocales.asp
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6 of 35
CtiOsLanguagee.LANG.mc
MC Compiler
CtiOsLanguagee.LANG.res
Build Project
CtiOsLanguage.LANG.DLL
Figure 1. Localization workflow
This message file is compiled with Microsoft’s message compiler to produce a resource file that is then used to build the final language library. The language library name will be CtiOsLanguage..dll. The Toolkit provides a Microsoft Visual Studio 6.0 project template that can be used to build a language library. The instructions for building a library are provided in the next section. Examples of message files and language libraries are presented in Table 1: Language
Message File
Language Library
Chinese Simplified
CtiosLanguage.CHS.mc
CtiosLanguage.CHS.dll
Spanish
CtiosLanguage.ESP.mc
CtiosLanguage.ESP.dll
French
CtiosLanguage.FRA.mc
CtiosLanguage.FRA.dll
Table 1. Message files and language libraries
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7 of 35
After the language library is produced, the client application uses the toolkit’s API to access the localized strings text in the language library as in Figure 2. Dim objIntl
As New INTLRESOURCELOADERLib.GetLanguage
Const CTIOS_AGENTPHONE_APPNAME = &H702A Private Sub Form_Load() lstLaguages.ListIndex = 1 End Sub
Private Sub lstLaguages_Click() Dim strTranslatedStr As String objIntl.LanguageID = lstLaguages.ItemData(lstLaguages.ListIndex) strTranslatedStr = objIntl.TextStringDefault(CTIOS_AGENTPHONE_APPNAME, _ 'CISCO CTI OS Agent Phone') lblMessage.Caption = strTranslatedStr End Sub
Figure 2. Localized application 1.2
What Is Provided on the CD
The CTI OS Internationalization Toolkit is included within the distribution CD of the CTI OS Toolkit and its components are located in the Win32 CIL subdirectory. The parts that constitute the toolkit are listed in Table 2.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
Location
8 of 35
Part Name
InternationalizationKit CtiOsLanguage.dsp
Description
Microsoft Visual C++ 6.0 project template used to generate the new Language library. For details on how to migrate this project to Microsoft Visual Studio .NET 2003, please refer to Microsoft’s Visual Studio.NET help on
Visual C++ Porting and Upgrading ( InternationalizationKit CtiOsLanguage.mc
Message file template, contains all the string text and symbols used by the CTI OS Toolkit Agent and IPCC Supervisor Desktops.
InternationalizationKit CtiOsLanguage.cpp
Standard DLL callbacks
InternationalizationKit CtiOsLanguage.h
Auto generated files at compilation of *.mc file
CtiOsLanguage.rc COM Servers and Activex Controls
IntlResourceLoader.dll
.NETInterops
Cisco.INTLRESOURC Runtime Callable Wrapper (RCW) ELOADERLib.dll assembly used by .NET based application requiring to use the CTI OS Internationalization Kit
InternationalizationKit ctioslanguage.XXX.dll Languages
CTI OS International Resource Loader, registered at installation time
Prebuilt language libraries for” the following languages: CHS .- Chinese Simple KOR.- Korean GER .- German FRA.- French ESN.- Spanish Neutral ENU.-English USA PTB .- Portuguese Brazilian
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
Location
9 of 35
Part Name
Description
InternationalizationKit ConfigLanguages.reg.t Languages xt
Registry file to configure language libraries for the CTI OS Agent and Supervisor phones
InternationalizationKit agentstatistics.XXX.re Languages g.txt
Pre-translated standard grid column headers for” the following languages:
callappearance.XX.reg. CHS .- Chinese Simple txt KOR.- Korean skillgroupstatistics.XX GER .- German X.reg.txt blendedagent_addecc. XX.reg.txt
FRA.- French ESN.- Spanish Neutral ENU.-English USA PTB .- Portuguese Brazilian
Table 2. CTIOS Internationalization Toolkit components
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
10 of 35
2 Editing Message Files 2.1
Suggestion
Before creating a message file on your own, make a copy of the template message file provided with the toolkit and rename it to conform to the country or language you will be localizing to, for example, CtiOsLanguage.ESM.mc. 2.2
Message File
A message file is used to build a language library. The general format of a message file is a LanguageNames entry followed by several Message definition lines as shown in Figure 3. ;/* ///////////////////////////////////////////////////////////////////////////////// ; ; CTIOS Internationalization Toolkit ; ... (additional comments removed) ; ; LanguageNames=(afrikaans=0x0436:AFK_SouthAfrica) ; LanguageNames=(albanian=0x041c:SQI_Albania) ; LanguageNames=(arabic=0x0401:ARA_Arabic) ; ... (additional LanguageNames removed) ; ;///////////////////////////////////////////////////////////////////////////////// */ ; LanguageNames=(english=0x0409:ENU_UnitedStates) ;/*LanguageNames=(french=0x040c:FRA_France)*/ ; ;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; | Agent Phone Definitions | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ ; ;/* These keywords group buttons on the phone */ MessageId=0x7024 SymbolicName= CTIOS_AGENTPHONE_LOGINGROUP Language=English Login . MessageId=0x7025 SymbolicName= CTIOS_AGENTPHONE_AGENTSTATEGROUP Language=English Agent State . Figure 3. Message file Cisco Systems, Inc.
CTI OS Internationalization Toolkit
2.3
11 of 35
Comments
Comments must begin with a semi-colon, and must use the standard C++ comment syntax: either the /* … */ multiline syntax or // syntax, refer to Figure 4. ; // this is valid ; /* this is also valid */ // this is NOT valid (no semi-colon) ; this is NOT valid (no // for alternative syntax)
Figure 4. Comments 2.4
LanguageNames
The message file must contain only one LanguageNames entry, for example: LanguageNames=(english=0x0409:ENU_UnitedStates) If you use the message file provided in the Toolkit, you will find several predefined
LanguageNames entries listed in the form of comments. To select a language, remove the comment symbol where appropriate. Key points: The text in the LanguageNames line is critical and should not be changed under any circumstances. The values and language names match the values reported by the Microsoft Windows operating system. For a complete list refer to “Language Identifiers and Locale” in the MSDN Library CD or online. Changing any value will prevent the Toolkit from loading the correct message files. The language name for the selected language is the first term in the line. The remainder of the statement contains the language binary code, the language designator code, and the country code. The language name is used in the message definitions that follow.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
2.5
12 of 35
Message Definitions
Each message consists of a minimum of five (5) lines: MessageId, SymbolicName, Language, language-specific translation, end-of-message line (consisting of a period). ;/* These keywords group buttons on the phone */ MessageId=0x7024 SymbolicName= CTIOS_AGENTPHONE_LOGINGROUP Language=English Login . Figure 5. Message definition
Key points: For each message select a unique MessageId. This is what identifies the string text in the language library and is what you will use in the API to retrieve this string. For each message select a unique SymbolicName, this value will be used by the MC compiler to create an include file that is used by the resource compiler. The language entered in the Language= line must match the language name entered in the LanguageNames= line. Only the language name should be entered. The language-specific translation must follow the Language= line. The translation may consist of multiple lines. A line with a period defines the end of the translation for the entry.
3 Building a Language Library 3.1
Using Microsoft Visual Studio 6.0
Copy the template project provided with the Toolkit and rename it to conform to the country or language for which you will be generating the library. For example, CtiOsLanguage.ESM.dsp. 1. Start Microsoft Visual C++ 6.0. 2. Select File + Open Workspace … to open the Internationalization Toolkit Workspace.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
13 of 35
3. Double-click on the CtiOsLanguage.mc file, then select File Save As … and save the message file with a language specific name, such as CtiOsLanguage.ESM.mc.
4. Add the new file to the project by selecting Project, Add to Project…, Files…:
5. Remove CtiOsLanguage.mc from the project by deleting the entry from the project:
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
14 of 35
6. Select your new CtiOsLanguage.ESM.mc file. Do a right click over it with the mouse and from the pop up menu select Settings…:
Make sure that the Custom Build settings for this file are as shown in the following image:
Once you have filled in the Commands and Outputs text boxes click OK. 7. Now you need to configure the Linker and Resource compiler to produce your library using the appropriate settings. For this you need to select Project + Settings … to bring up the project settings dialog. Note that all the settings you will make in the following steps need to be executed for both Debug and Release configurations. For the sake of convenience, from here on Config will be used to indicate both Debug and Release. Cisco Systems, Inc.
CTI OS Internationalization Toolkit
8. In the settings dialog select the tab folder marked “Link“ and make sure that: The output file name is Config/ctioslanguage.EMS.dll
Cisco Systems, Inc.
15 of 35
CTI OS Internationalization Toolkit
16 of 35
The Program database name is Config/ctioslanguage.EMS.pdb
9. Select the tab folder marked “Resources”, and make sure that the Resource file name is Config/ctioslanguage.EMS.res and also make sure the Language selected corresponds.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
17 of 35
10. Save the project, by selecting File, Save Workspace 11. Edit the message file by selecting the proper LanguageNames= and entering translations for each message 12. Compile and test
Using Visual Studio .NET 2003
Start Microsoft Visual Studio .NET 2003 Port the Microsoft Visual C++ 6.0 *.dsp project template to the new Microsoft Visual C++ 7.0 *.vcproj format, open the *.dsp project selecting Open Project from the File command menu in Microsoft Visual Studio .NET. For details refer to Microsoft’s Visual Studio.NET help on Visual C++ Porting and Upgrading (http://msdn.microsoft.com/library/default.asp?url=/library/enus/vccore/html/_vc_porting_home.asp) Follow steps 3 to 12 as described in the previous section
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
18 of 35
4 Localizing your Application After building your language library, you need to modify your application in a way such that all the string text that will be shown to an end user is read from the language library. To be able to use the CTI OS Internationalization API, an application must: 1. Create an instance of the CTI OS International Resource Loader COM object 2. Set the language that will be used 3. Retrieve the string text using the MessageId associated with the string to be displayed 4. Display the retrieved string For more details see Chapter 6, Programmer’s Guide.
5 Installing Localized Libraries To install your libraries on the client workstations where your application is located, you need to make sure the following are done: 1. Copy your CtiosLanguage.ZZZ.dll and IntlResourceLoader.dll into the directory of your client application 2. In the registry add the information about the language and path to the library that you installed. For example: HKCUSOFTWARECisco SystemsCTIOSSharedLanguagesESM Language Code = dword:0x080a DLL = string:'c: Program FilesCisco SystemsCTIOS ClientCTIOS Desktop Phones CtiOsLanguage.ESM.dll'
3. To select a language, enter the language code (for example, 0x0409 for ENU (United States English): HKCUSOFTWARECisco SystemsCTIOSShared LanguagesLast Language Language Code = dword:0x080a
NOTE: If you omit Language Code and Last Language, the CTI OS Internationalization Resource Loader will use the system language locale.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
19 of 35
6 Programmer’s Guide In order to make use of the language libraries the CTI OS internationalization Toolkit provides the International Resource Loader. This is a COM object that exports the IGetLanguage public interface to enable programmers to access translated string text from a Language library built with the Toolkit. 6.1
IGetLanguage Interface
The interface consists of the following properties: Property
Access Type
Description
LanguageID
Read/Write
Contains the binary code corresponding to the current language library loaded. Setting a new code causes the International Resource Loader to unload the current language library and load the library specified with the new code.
LanguageText
Read-Only
Returns the name of the language that corresponds to the Language ID.
It publishes two methods: Method
Description
TextString
Retrieves a translated string from the current loaded language library. If there is no such string, this method returns a null string.
TextStringDefault
Retrieves a translated string from the current loaded language library. If there is no translation available, this method returns a default string passed in the parameter list.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
20 of 35
TextString
Retrieves a translated string from the current loaded language library. If there is no such string, this method returns a null string. Syntax VB 6.0:
TextString (ResourceID As Long) As String
COM: HRESULT TextString (int nResourceID , BSTR * bsrStringTxt )
Parameter
Description
ResourceID
Numeric ID that corresponds to the translated string text in the current language library
TextStringDefault
Retrieves a translated string from the current loaded language library. If there is no translation available, this method returns a default string passed in the parameter list Syntax VB 6.0:
TextString (ResourceID As Long, bstrDefaultTxt As String) As
String COM: HRESULT TextString (int nResourceID , BSTR bstDefaultTxt,
BSTR * bsrStringTxt ) Parameter
Description
ResourceID
Numeric ID that corresponds to the translated string text in the current language library
bstrDefaultTxt Text that will be used as default if no translation is found for the string specified by Resource ID
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6.2
21 of 35
Using the International Resource Loader in an Application
Using the International Resource Loader API is straightforward. This section shows how to use the object in VB 6.0, and in C++ with COM written using ATL. For these examples it is assumed that two language libraries exist and were successfully installed. One library is for English United States (ENU,code=0x409) and the other language library for Spanish Mexican (ESM,code 0x80a). For installation details, see Chapter 5.
6.2.1 Localizing a VB 6.0 Application 1. In your VB 6.0 Project, add a reference to the “Cisco COM CTIOS Inernational Resource Loader”:
2. Create an instance of a CTI OS Internationalization Resource Loader: 'CTI OS Internationalization Resource Loader Dim m_Intl As new INTLRESOURCELOADERLib.GetLanguage 'Resource Ids for the text strings in Language Library Const CTIOS_AGENTPHONE_APPNAME As Long = &H702A Const CTIOS_AGENTPHONE_PHONELOADING As Long = &H702B
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
22 of 35
3. Set the language code for the language library to load: Private Sub Form_Load() 'Sets the code for Mexican Spanish and Loads the Library m_Intl.LanguageID = &H80A
4. Retrieve translated text strings and display them: Private Sub Form_Load() Dim strTextStr As String 'Sets the title of the form strTextStr = m_Intl.TextStringDefault(CTIOS_AGENTPHONE_APPNAME, _ 'CISCO CTI OS Agent Phone') Me.Caption = strTextStr 'Sets the title of the form strTextStr = m_Intl.TextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, _ 'Phone is Loading…”) lblMessage = strTextStr End Sub
5. Changing language: Private Sub btnEnglish_Click() Dim strTextStr As String 'Sets the code for English USA and Loads the Library m_Intl.LanguageID = &H409
'Sets the title of the form strTextStr = m_Intl.TextString(CTIOS_AGENTPHONE_APPNAME) Me.Caption = strTextStr 'Sets the title of the form strTextStr = m_Intl.TextString(CTIOS_AGENTPHONE_PHONELOADING) lblMessage = strTextStr
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
23 of 35
6. Application running: Program at startup appears in Mexican Spanish:
After clicking the “English” button:
6.2.2 Localizing a Visual Basic.NET Application
Although Cisco recommends the use of .NET CIL for creating application targeting the .NET Framework and using the .NET localization model. An application written in Visual Basic 6.0 can be migrated to Visual Basic .NET (VB.NET) and still continue to use CTIOS Internationalization Toolkit. In order for a VB.NET application to be able to use CTIOS Internationalization Toolkit it is necessary to configure the Cisco CTI OS RCWs as described in the Cisco CTIOS Developer Guide in Chapter XY and to add a reference to the CTIOS Internationalization Toolkit RCW in the VB.NET Project references as follows:
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
24 of 35
1. From Visual Studio’s “Project” menu make sure to select the “Add Reference…” command 2. From the “Add Reference” dialog box select the “.NET” tab. Warning: Never select the COM tab from the “Add Reference” dialog box and never select the CTIOS Internationalization Toolkit COM component. Doing this will cause Microsoft Visual Studio .NET 2003 to automatically generate a set of private RCW that is not optimized a nor approved by Cisco and your application will probably have an unexpected behavior that could lead to the application to fail
3. From the list select the CTIOS Internationalization Toolkit RCW. The name of the RCW related to CTIOS Internationalization Toolkit is prefixed with “Cisco.” Such that the RCW for CTIOS Internationalization Toolkit is : Cisco.INTLRESOURCELOADERLib.dll
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
25 of 35
6.2.3 Localizing a C++ and COM Application
1. In your C++ project import the “Cisco CTI OS IntlResourceLoader 1.0” type library:
// IntResKitSample.h : Declaration of the CIntResKitSample #import 'D:CTIOSDEVComIntlResourceLoader.dll' using namespace INTLRESOURCELOADERLib; const long CTIOS_AGENTPHONE_APPNAME = 0x702A; const long CTIOS_AGENTPHONE_PHONELOADING = 0x702B;
2. Create an instance of a CTI OS Internationalization Resource Loader: ////////////////////////////////////////////////////////////////////// /////// // CIntResKitSample class CIntResKitSample : public CAxDialogImpl { private: IGetLanguagePtr m_IntKit; public: CIntResKitSample() { HRESULT hr = m_IntKit.CreateInstance(OLESTR('IntlResourceLoader.GetLanguage')); } BEGIN_MSG_MAP(CIntResKitSample) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) COMMAND_ID_HANDLER(IDOK, OnEnglishClicked) COMMAND_ID_HANDLER(IDCANCEL, OnCancel) END_MSG_MAP() }
3. Set the language code for the language library to load : LRESULT CIntResKitSample::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ _bstr_t bstrText = OLESTR('); //Sets the code for Mexican Spanish and Loads the Library m_IntKit->PutLanguageID(0x80a);
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
26 of 35
4. Retrieve translated text strings and display them: LRESULT CIntResKitSample::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_APPNAME, OLESTR('CTI OS Agent Softphone')); this->SetWindowText(bstrText); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, OLESTR('Phone Loading...')); ::SetWindowText(this->GetDlgItem(IDC_MESSAGE),bstrText); }//end OnInitdialog
5. Changing language: LRESULT CIntResKitSample::OnEnglishClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled){ m_IntKit->PutLanguageID(0x409); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_APPNAME, OLESTR('CTI OS Agent Softphone')); this->SetWindowText(bstrText); bstrText=m_IntKit->GetTextStringDefault(CTIOS_AGENTPHONE_PHONELOADING, OLESTR('Phone Loading...')); ::SetWindowText(this->GetDlgItem(IDC_MESSAGE),bstrText); }//end OnEnglishClicked
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
6. Application running: Program at startup appears in Mexican Spanish:
After clicking the “English” button:
Cisco Systems, Inc.
27 of 35
CTI OS Internationalization Toolkit
28 of 35
7 Localizing CTI OS Agent and Supervisor Softphones This section describes the procedure to localize the CTI OS Agent and Supervisor Softphones. The process involves the installation of new language libraries on both agent and supervisor desktop computers, and the reconfiguration of some settings under the CTI OS Enterprise Desktop Settings registry key at each CTI OS Server host machine. 7.1
Level of Localization
The CTI OS Agent and Supervisor Softphones are out of the box solutions. They can easily be localized by using the prebuilt language libraries provided with the Kit or by generating a new language library on the workstation where the application runs. The level of localization that can be achieved with the current implementation of the CTI OS Softphones and the CTI OS Internationalization kit is as follows: 1. Static Language Selection. This means a new language from any CTI OS Softphone cannot be selected at run time. The language selection must be specified before the Softphone is launched. See Chapter 5, Installing Localized Libraries. 2. Use of System Locale. As explained in Chapter 5, the CTI OS International Resource Loader will determine from the system what language code to use. If a language library exists for this language, the library will be used. Otherwise, English USA will be the default language. 3. Column Header Localization. With this release, localization of column headers for the Call Appearance, Agent and Skill Groups Statistics, and Blended Agent Call Variables is limited to CTI OS System level. This means that if a CTI OS Softphone in English connects to a CTI OS Server for which its Enterprise Desktop Settings have a Spanish translation for the column headers, the Softphone will display the columns headers in Spanish but the rest of the Softphone in English. 4. Text Messages from ICM use ICM locale. Some of the text messages displayed by the CTI OS Softphones are generated by Cisco ICM software. These messages will be shown in the language that ICM software used to generate them. 5. Text Messages from CTI OS Server are in English. In this release the CTI OS Server does not support localization. 7.2
Planning Localization
Before installing any new language libraries or modifying the CTI OS Enterprise Desktop Settings, define for each site the level of localization that is required, and identify the CTI OS components that are involved in each setup.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
29 of 35
For example, suppose that XYZ, Inc. has two call centers, one in Boston and the other in Mexico City. At each site, CTI OS (Server and Softphones) is installed. Management has decided that each center must use the Softphones in the native language at each site, and directs MIS to perform the localization for both sites. Assume that XYZ’s deployment of CTI OS is as in the diagram below.
Center in Boston
Cisco Cti Os. Srvr
Center in M exico
Corporate Network
Cisco Cti Os. Srvr
Agent Desktops
MIS will have to plan for the following tasks only for the call center in Mexico City—since in Boston, English USA will be the default. No.
Task
Activities
1
Create a new build project for the new Language Library
a) Make a copy of the project template provided with the CTI OS Internationalization Toolkit and rename all files to reflect the new language,. e.g. CtiOsLanguage.dsp CtiOsLanguage.mc
CtiOsLanguage.ESM.dsp CtiOsLanguage.ESM.mc
b) Follow the procedure in Chapter 3 to set up the project to build the appropriate language library 2
Translate “*.mc” File.
Cisco Systems, Inc.
Edit the “*.mc” file, translate all the strings in this file and make all entries Language= equal to the name of the language, see
CTI OS Internationalization Toolkit
30 of 35
Section 2.4. For example: CtiOsLanguage.ESM.mc 3
Build Language Library
For example: CtiOsLanguage.ESM.dll
4
Test Language Library
In your development environment, install your new language library as in Chapter 5, and run the CTI OS Agent and Supervisor Softphones to test the translation
5
Translate Column Headers
Using the column definition file templates, create a translated version of the header names for: 1) Call Appearance Grid 2) Agent & Skill Groups Statistics 3) Blended Agent Call Variables (only if Blended Agent functionality is available through Cisco ICM software) For more details about these templates, refer to the Cisco ICM Software CTI OS System Manager’s Guide
6
Load Translated Column Headers into CTI OS Server in Development
Using RegEdit.exe, import the translated column header definition files
7
System Test
Using the CTI OS Agent and Supervisor Softphone, log into the system and verify your localization is successful
8
Deploy Localization to Production
In Mexico City: a) Import the translated column headers into the CTI OS Server registry using RegEdit.exe b) On each agent and supervisor workstation install and configure the new language library for Spanish Mexican
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7.3
31 of 35
Translating *.mc File
The CtiOsLanguage.mc template message file contains the MessageIds and SymbolicNames as the CTI OS Agent and Supervisor Softphones use them. When translating the message text, make sure, in your copy, to only modify LanguageNames= to select the language code, the message text and Language=. Following is an example of how the CtiOsLanguage.ESM.mc will look: ;/* ///////////////////////////////////////////////////////////////////////////////// ; ; CTIOS Internationalization Toolkit ; ... (additional comments removed) ; ; LanguageNames=(afrikaans=0x0436:AFK_SouthAfrica) ; LanguageNames=(albanian=0x041c:SQI_Albania) ; LanguageNames=(arabic=0x0401:ARA_Arabic) ; ... (additional LanguageNames removed) ; ;///////////////////////////////////////////////////////////////////////////////// */ ;
LanguageNames=(spanish_mexican=0x080a:ESM_Mexico) ; ;/* Agent Phone Application Name */ ; MessageId=0x702A SymbolicName= CTIOS_AGENTPHONE_APPNAME Language=spanish_mexican Teléfono del Agente . ; ;/* Agent Phone Progress Messages */ ; MessageId=0x702B SymbolicName= CTIOS_AGENTPHONE_PHONELOADING Language=spanish_mexican Cargando Teléfono... . MessageId=0x702C SymbolicName= CTIOS_AGENTPHONE_DOWNLOADSETTINGS Language=spanish_mexican Bajando Opciones... . MessageId=0x702D SymbolicName= CTIOS_AGENTPHONE_DOWNLOADSETTINGSCOMPLETE Language=spanish_mexican Terminó de Bajar Opciones...
.
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
7.4
32 of 35
Translating Column Headers
To translate the column headers for the Call Appearance, Agent & Skill Groups Statistics, and the Blended Agent Call Variables, make copies of the following files, and make sure you rename them such that the new name indicates the language used for translation. callappearance.default.reg.txt agentstatistics.default.reg.txt skillgroupstatistics.default.reg.txt blendedagent_addecc.reg.txt
callappearance.ESM.reg.txt agentstatistics.ESM.reg.txt skillgroupstatistics.ESM.reg.txt blendedagent_addecc.ESM.txt
The localization of the column headers consists in editing each of the files listed above. Modify the Header attribute for each column such that the value is the text in the desired language. For more details on configuring column headers, refer to the Cisco ICM Software CTI OS System Manager’s Guide. 7.4.1 Column Headers for Call Appearance REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber1] 'Type'='CallID' 'Header'='Cve. Llamada' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber2] 'Type'='CallStatus' 'Header'='Estado' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber3] 'Type'='DNIS' 'Header'='DNIS' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber4] 'Type'='ANI' 'Header'='ANI' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber5] 'Type'='CED' 'Header'='CED' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCtiOsEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber6] 'Type'='DialedNumber' 'Header'='Número Llamado'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
33 of 35
7.4.2 Column Headers for Agent Statistics REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGrid] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatistics] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber] 'DisableStatsMinimization'=dword:00000000 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber1] 'Type'='CallsHandledToday' 'Header'='Llamadas Atendidas Hoy' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber2] 'Type'='TimeLoggedInToday' 'Header'='Tiempo en el Sistema' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber3] 'Type'='TimeTalkingToday' 'Header'='Tiempo Hablando' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber4] 'Type'='TimeHoldingToday' 'Header'='Tiempo en Espera' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber5] 'Type'='TimeReadyToday' 'Header'='Tiempo Disponibe' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridAgentStatisticsColumnsNumber6] 'Type'='TimeNotReadyToday' 'Header'='Tiempo No Disponible'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
34 of 35
7.4.3 Column Headers for Skill Group Statistics REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGrid] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatistics] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber] 'DisableStatsMinimization'=dword:00000000 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber1] 'Type'='SkillGroupNumber' 'Header'='Núm. Grupo' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber2] 'Type'='CallsQNow' 'Header'='Llamdas en Cola' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber3] 'Type'='CallsQTimeNow' 'Header'='Tiempo en Cola' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber4] 'Type'='LongestCallQNow' 'Header'='Cola mas Larga' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber5] 'Type'='AgentsLoggedOn' 'Header'='Agentes Firmados' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridSkillGroupStatisticsColumnsNumber6] 'Type'='AgentsAvail' 'Header'='Agentes Disp.'
Cisco Systems, Inc.
CTI OS Internationalization Toolkit
35 of 35
7.4.4 Column Headers for Blended Agent
REGEDIT4 [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearance] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumns] [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber] ; ; Previous columns definition were deleted ; [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber7] 'Type'='ECC' 'Name'='BAResponse' 'Header'='Resp. Campaña' 'Maxchars'='24' 'ReadOnly'='false' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber8] 'Type'='ECC' 'Name'='BAStatus' 'Header'='Edo. Campaña' 'Maxchars'='3' 'ReadOnly'='true' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber10] 'Type'='ECC' 'Name'='BAAccountNumber' 'Header'='Campaña Num. Cuenta' 'Maxchars'='33' 'ReadOnly'='true' [HKEY_LOCAL_MACHINESOFTWARECisco SystemsCTIOSEnterpriseDesktopSettingsAll DesktopsGridCallAppearanceColumnsNumber11] 'Type'='ECC' 'Name'='BATimeZone' 'Header'='Campaña Zone' 'Maxchars'='7'
Cisco Systems, Inc.