47 Creating a Localized Version of BRM

Learn how to use the Oracle Communications Billing and Revenue Management (BRM) Localization Software Developers Kit (SDK) to create localized versions of BRM client applications.

Topics in this document:

About the Localization SDK

The Localization SDK is for:

  • Localization agencies who make the localized versions of BRM.

  • Customers who develop localized versions of BRM client applications for languages that are not supported by BRM.

You can use the SDK to:

  • Translate menus, dialog boxes, and online Help for BRM clients, including those written using Microsoft Foundation Class (MFC) and those written in Java.

  • Note:

    You cannot translate the installation screens for an application. When you create an application with the SDK, the application's installation screens use the same language as the version of the SDK you used.

    For example, if you use the English SDK to translate an application into another language, the installation for the translated application is in English. If you use the French SDK to modify a French version of an application, the installation is in French.

Localization SDK Contents

This section describes localization SDK contents.

Java Client Applications

The Localization SDK contains all the Java properties files, Help files, and installation files that need to be translated for the following BRM applications:

  • Business Configuration Center, which includes Field Validation Editor

  • Number Administration Center

  • Permissioning Center

  • Pricing Center, which includes Resource Editor and Zone Mapper

  • Revenue Assurance Center

  • SIM Administration Center

  • Suspense Management Center

  • Voucher Administration Center

BRM Server Files

The Localization SDK also contains these BRM server files:

Localizations Supported

BRM supports localization into any language that is both non-complex text and single-direction (left-to-right), including:

  • Languages written with the Roman alphabet, including Western European languages.

  • Other European languages, including Russian and Greek.

  • Multi-byte or East Asian languages, such as Korean, Japanese, Traditional Chinese, and Simplified Chinese.

    Note:

    Creating localized tools can represent a significant customization effort, especially for certain languages, including Norwegian, Danish, Russian, and Greek.

BRM does not support localization into complex text languages, including:

  • Complex text languages that use bi-directional writing systems, such as Arabic and Hebrew.

  • Other complex text languages, such as Thai and Indic languages.

System Requirements for the Localization SDK

To use the SDK, you need the following minimum requirements:

  • System hardware:

    • 256 MB RAM

    • 500 MB of disk space for your build tree and zip files, preferably on one dedicated drive

  • The client application you want to localize.

  • Tools

    You need some or all of these tools, depending on the files you are localizing. For many of these tools, you can find the version compatible with the current BRM release in BRM Compatibility Matrix.

    • Microsoft Visual C++ plus the special files for your locale

    • Microsoft HTML Help Workshop or a Help authoring tool compatible with Microsoft HTML Help

    • Java 2 SDK, Standard Edition, international version

    • Java Runtime Environment (JRE), international version

    • MKS Toolkit

    • Command-line version of the zip file utility PKZIP

      Note:

      Before using the SDK, install all the applications listed in their default locations on the local drive of the source build machine.

To test your translated applications, you also need to run them on Windows in the target locale. That computer also needs to have, or have network access to, a machine with a complete BRM installation.

Building the Clients

This section describes how to create localized versions of BRM Java client applications.

To build a Java client application, do the following:
  1. Localize the BRM client application’s properties files.
  2. Optionally, add custom currency symbols to the BRM client application. See "Changing the Currency Format".
  3. Create a JAR file of your translated properties files. See “Building Properties Files”
  4. Add your localized files to a BRM client application. See “Packaging Your BRM Client Localizations”.

Changing the Currency Format

To add a currency format into BRM Clients Application, add the following lines to the CustomizedResources.properties file:

resourceID=currencySymbol:currencyCode:groupSep:decSep:posFmt;[negFmt]

where:
  • resourceID is the unique ID of the currency resource.
  • currencySymbol is the character that represents the currency, for example, $ or €.
  • currencyCode is the three-letter code for the currency.
  • groupSep is the group separator, for example, the character to use between the numbers for thousands and hundreds.
  • decSep is the separator to use between the whole and decimal parts of the amount.
  • posFmt is the format to indicate positive numbers.
  • negFmt is the optional format to indicate negative numbers.
For example:
840=$:USD:,:.:M#,##0.00;(M#,##0.00)

Building Properties Files

You can create all the JAR files with the same command or create them individually.

To create a JAR file of your translated properties files:

  1. At a Windows command prompt, go to the JAVA_PROJECTS directory.

  2. Set up an environment variable:

    set CLIENTS_DEST=W:\Client_dest 
  3. Go to W:\SDK_locale\JAVA_PROJECTS and run makecertificate.bat.

    where SDK_locale is the Windows locale for the version of the Localization SDK you installed.

    You can do this from the command line or through Windows Explorer.

    When you run makecertificate.bat, you create a keystore password and a key password.

  4. Enter the passwords you created when running makecertificate.bat into the signjar.bat file, located in the same folder:

    • Enter the keystore password for STOREPASSWORD.

    • Enter the key password for KEYPASSWORD.

  5. Run the makeResourceJars command:

    W:\SDK_locale\JAVA_PROJECTS> makeResourceJars Java_locale [app_name]

    where

    • Java_locale is the two-letter ISO 639 language code.

    • app_name is the abbreviated name of an application; for example, ebrowser. Specify this only if you are building a JAR file for a single application. Table 47-1 shows the names of JAR files for applications.

    Table 47-1 Names of JAR Files for Applications

    Application Name for makeResourceJars
    Invoice Viewer invoice
    Config Center bmf
    Field Validation Editor (Config Center) fve
    Resource Editor (Config Center) re
    Bulk Accounts (Config Center IPT) bat
    Zone Mapper (Config Center) zmp
    WebKit webkit
    SIM Administrator sim
    Number Administrator num

    If a filename is not specified, this command builds a locale-specific JAR file for each application and puts the JAR files in the Client_dest directory.

    If a filename is specified, the command builds a single locale-specific JAR file and places it in the Client_dest directory.

    Tip:

    Enter makeResourceJars with no arguments to see its syntax.

Packaging Your BRM Client Localizations

To add the localized client files to a BRM client application:

  1. Verify that you have the W drive mapped to C:\Program Files\Portal Software\Localization SDK.

  2. Create the W:\SDK_locale\zips directory.

  3. Download the zip file for the BRM application.

  4. In a command window, go to the W:\SDK_locale\bin directory.

  5. Enter the following command, replacing the variables with the actual package name and local names.

    W:\SDK_locale\bin> package_name Java_locale Windows_locale
    

    For example, to package a German version of Pricing Center, enter:

    W:\SDK_locale\bin> Package_PricingCenter.bat de deu 
    

    This creates a zip file in the zips directory. This zip file has the same name as the original application zip file, but with the Java locale added.

    See "Locale Names" for a list of Java and Windows locales.

    The following BRM packages are available.

    • Package_ConfigurationCenter.bat packages Field Validation Editor and Configuration Center.

    • Package_NumAdmin.bat packages Number Administration Center.

    • Package_PermissionCenter.bat packages Permissioning Center.

    • Package_PricingCenter.bat packages Pricing Center, Resource Editor, and Zone Mapper.

    • Package_SIMAdmin.bat packages SIM Administration Center.

    • Package_RevenueAssurance.bat packages Revenue Assurance Center.

    • Package_SuspenseManagement.bat packages Suspense Management Center.

    • Package_VoucherAdministration.bat packages Voucher Administration Center.

      Note:

      These packages assume you are using the English Localization SDK. If you are using a different version of the SDK, you need to edit these .bat files to add the correct Windows locale to the name of the zip files. For example, if you are using the French SDK, change 7.5_PaymentTool.zip to 7.5_PaymentTool_FRA.zip.

Localizing and Customizing Strings

Table 47-2 lists the files that you can customize to support your business model. For example, you can add new reasons to the reasons.locale file or new payment channels to the payment_channel.locale file. These files are all located in BRM_home/sys/msgs.

Table 47-2 Files Associated with Localization and String Customization

File in BRM_home/sys/msgs/ Contains

active_mediation/active_mediation.en_US

List of subscriber preferences used for active mediation.

businessprofiles/business_profile_descr.en_US

List of business profile descriptions to display in a third-party CRM application.

devicestates/device_states.en_US

List of names you use for device states in the Device Management framework.

eradescr/era_descr.en_US

Names and descriptions of extended rating attribute values and promotion profile types. Billing Care displays the promotion profile name in the UI. Other BRM clients can use the names and descriptions.

errorcodes/errors.en_US

Server error messages.

lifecycle_states/lifecycle_states.en_US

List of life cycle states used for subscriber life cycle management.

localedescr/locale_descr.en_US

Descriptions of the locales that BRM supports, used by Customer Center.

newsfeed/newsfeed.en_US

List of localized strings for News Feed.

note/note.en_US

List of types and permissible statuses of a /note object.

numcategories/num_categories.en_US

Number attributes for Number Administration Center.

numdevicestates/num_device_states.en_US

List of status settings for a number in Number Administration Center.

numvanities/num_vanities.en_US

List of vanity numbers in Number Administration Center.

ordersimstatus/order_sim_status.en_US

List of status settings for an order in SIM Administration Center.

paymentchannel/payment_channel.en_US

List of payment channel IDs that can be included in payments received by BRM.

revenueassurance/ra_alert_message.en_US

List of alert messages that BRM uses when notifying analysts that a revenue assurance threshold has been exceeded.

simcardtypes/sim_card_types.en_US

List of SIM card types for SIM Administration Center.

simdevicestates/sim_device_states.en_US

List of status settings for SIM devices in SIM Administration Center.

suspense_reason_code/suspense_reason_code.en_US

List of reasons for call failures in Suspense Management Center.

system_filter_set/system_filterset_edr_field_values.en_US

List of EDR fields and values that Pipeline Manager uses as filtering criteria for system products and discounts.

voucher_devicestates/device_state_voucher.en_US

List of status settings for voucher devices in Voucher Administration Center.

voucher_orderstates/order_state_voucher.en_US

List of order statuses to display in Voucher Administration Center.

Creating New Strings and Customizing Existing Strings

To create new strings or customize existing strings:

  1. Open the appropriate file.

  2. Locate and edit any existing strings you want to customize.

  3. Add any new strings using the standard format.

  4. Save the file.

  5. Load the strings using the load_localized_strings utility. See "Loading Localized or Customized Strings".

    Note:

    Use the appropriate file suffix for the locale. For example, to load SIM card formats in the German language, use the file named sim_card_types.de. See "Locale Names".

Localizing Existing Strings

Note:

If you are only localizing the strings:

  • Do not edit the ID, DOMAIN, or VERSION strings in these files.

  • Be sure to preserve the double quotes (") and semicolon (;) around any strings that you change.

  • There must be a space before a semicolon (;).

To localize any of these files:

  1. Make a copy of the file and open it.

  2. Change the LOCALE to the BRM name for the new locale.

    For BRM locale names, see "Locale Names".

  3. Translate the text strings for STRING and HELPSTR.

  4. Rename the file by changing the suffix from .en_US to the BRM locale name for your locale. For example, a Traditional Chinese version of errors.en_US is named errors.zh_TW.

  5. Convert the file to UTF8 encoding.

Loading Localized or Customized Strings

You use the load_localized_strings utility to load the contents of a string file into a /strings object in the BRM database.

Caution:

When loading reason codes from the reasons.locale file, load_localized_strings also loads information from this file into the /config/map_glid object. If customized to specify service types and event types for event-level adjustments, the utility also loads information into the /config/reason_code_scope object. Though the utility does not overwrite existing strings in the /strings object unless you direct it to, it does overwrite the /config/reason_code_scope and /config/map_glid objects.

Note:

  • The load_localized_strings utility needs a configuration file in the directory from which you run the utility. See the discussion about creating configuration files for BRM utilities in BRM System Administrator's Guide.

  1. Use the following command to run the load_localized_strings utility:

    load_localized_strings string_file_name.locale
    

    For example:

    load_localized_strings sim_device_states.en_US
    
  2. Look in the load_localized_strings.log file to find any errors. The log file is either in the directory from which the utility was started or in a directory specified in the configuration file.

  3. Verify that the strings were loaded by displaying the /strings objects using the Object Browser or the robj command with the testnap utility. See "Reading an Object and Writing Its Contents to a File" for information on how to use Object Browser. See "Using the testnap Utility to Test BRM" for general instructions on using testnap.

    Note:

    For the reasons.locale file, you should also use one of these methods to check the /config/map_glid and /config/reason_code_scope objects.

  4. Stop and restart the Connection Manager (CM). For more information, see Starting and Stopping the BRM System in BRM System Administrator's Guide.

  5. If the strings are displayed in a GUI application, stop and restart the application to display the strings.

Localizing BRM Reports

To create localized versions of BRM report templates, use their conversion routines. For more information, see "Localizing BRM Reports".

About Customizing Server Software

This section provides an introduction to customizing server software.

Setting the Default Language for Customer Accounts

The /account object contains the PIN_FLD_LOCALE field. During BRM account creation, the CSR can set the value of this field using the BRM locale list in Customer Center. By default in Customer Center, the PIN_FLD_LOCALE field is set to the locale of the CSR's system.

The PIN_FLD_LOCALE field is set by the PCM_OP_CUST_SET_LOCALE opcode. This opcode reads the PCM_OP_CUST_POL_PREP_LOCALE and PCM_OP_CUST_POL_VALID_LOCALE policy opcodes. When you develop a Web page for creating customer accounts, you need to set this field.

Customizing Canonicalization

To customize canonicalization, use the PCM_OP_CUST_POL_CANONICALIZE opcode.

This opcode is called by PCM_OP_CUST_COMMIT_CUSTOMER, PCM_OP_CUST_SET_NAMEINFO, and the Billing Care search screen. PCM_OP_CUST_POL_CANONICALIZE searches for localized (non-English) customer input string fields.

The default implementation of the PCM_OP_CUST_POL_CANONICALIZE opcode is the en_US locale. Canonicalization handles Latin-based characters only. You must customize this opcode for other languages.

Exporting Data to an LDAP Server

For languages other than English, the data exported to the directory structure using Lightweight Directory Access Protocol (LDAP) is in UTF8 format. If you need native encodings, you must write conversion applications that operate on the data in the directory server to convert it in place.

Locale Names

Following is a list of locales for which BRM supports canonicalization. You can also use this list to get common BRM, Linux, and Java locale names. For information on canonicalization, see "About Localizing and Internationalizing".

In naming localized files, use the more general two-letter locale names when possible, but in some cases the more specific four-letter locale names are needed. For example:

  • Use zh_TW for Traditional Chinese.

  • Use en_US for English files.

  • Use pt_BR for Brazilian Portuguese.

Table 47-3 lists many common locale names. You can get complete locale name lists on the Web.

Table 47-3 Common Locale Names

Language (ISO-639) Country (ISO-3166) Linux, Java, and BRM Locale Windows Locale

Chinese (Simplified)

People's Republic of China

zh_CN

CHS

Chinese (Traditional)

Republic of China (Taiwan)

zh_TW

CHT

Danish

Denmark

da_DK

DAN

Dutch

Netherlands

nl_NL

NLD

Dutch

Belgium

nl_BE

NLB

English

Australia

en_AU

ENA

English

Canada

en_CA

ENC

English

Ireland

en_IE

ENI

English

New Zealand

en_NZ

ENZ

English

South Africa

en_ZA

ENS

English

United Kingdom

en_GB (BRM, Java and Linux)

ENG

English

United States

en_US

ENU

Finnish

Finland

fi_FI

FIN

French

France

fr _FR

FRA

French

Belgium

fr_BE

FRB

French

Canada

fr_CA

FRC

French

Luxembourg

fr_LU

FRL

French

Switzerland

fr_CH

FRS

German

Germany

de_DE

DEU

German

Austria

de_AT

DEA

German

Luxembourg

de_LU

DEL

German

Switzerland

de_CH

DES

Japanese

Japan

ja_JP

JPN

Korean

Korea

ko_KR

KOR

Italian

Italy

it_IT

ITA

Italian

Switzerland

it_CH

ITS

Norwegian (Bokmal)

Norway

no_NO

NOR

Norwegian (Nynorsk)

Norway

no_NY (BRM and Linux)

no_NO_NY (Java)

NON

Portuguese

Portugal

pt_PT

PTG

Portuguese

Brazil

pt_BR

PTB

Spanish

Spain

es_ES

ESP

Spanish

Argentina

es_AR

ESS

Spanish

Bolivia

es_BO

ESB

Spanish

Chile

es_CL

ESL

Spanish

Colombia

es_CO

ESO

Spanish

Costa Rica

es_CR

ESC

Spanish

Dominican Republic

es_DO

ESD

Spanish

Ecuador

es_EC

ESF

Spanish

El Salvador

es_SV

ESE

Spanish

Guatemala

es_GT

ESG

Spanish

Mexico

es_MX

ESM

Spanish

Nicaragua

es_NI

ESI

Spanish

Panama

es_PA

ESA

Spanish

Paraguay

es_PY

ESZ

Spanish

Peru

es_PE

ESR

Spanish

Puerto Rico

es_PR

ESU

Spanish

Uruguay

es_UY

ESY

Spanish

Venezuela

es_VE

ESV

Swedish

Sweden

sv_SE

SVE