Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

Mobile Operator Extensibility SDK On-Premises

Localization support for custom integrations

Localization for Custom Integrations are now supported. Custom Integrations are available in the Procedure Builder>> List Manager section of the Management Center.

The localization for the Custom Integrations, where the UI rendering is driven from the database, is based on the XML column PropertyBagDefinition from the table ISMGT_APP_Type.  For Localization, the following tables in the database are used.

o   ISMGT_App_Type

o   SAT_ResourceGroups

o   SAT_InvariantResources

o   SAT_Languages

o   SAT_Resources

To support localization, you need to consider the following points:

  • Define the strings as ‘Key’ and ‘Value’ in the database.
    • The Key is defined in XML format. The key will contain the prefix ‘Label’ and will be stored in the ‘SAT_InvariantResources’ table.
    • The Value for the key will be stored in the ‘SAT_Resources ’ table.

 

  • The “Combobox” controltype does not support localization. Therefore, you must use “LocalizedCombobox”. 
    • The Value (DataItem) in English will be considered as the Key and will be stored as key in the SAT_InvariantResources table.
    • The Value for the corresponding language needs to be stored in the SAT_Resources table.
       

For example, in the following XML, Controltype is LocalizedCombobox. DataItem values “Yes” and “No” needs to be stored in the SAT_InvariantResources table. The value for the corresponding language should be stored in the SAT_Resources table.

Example:

Consider the following example, where you want to localize the ‘UserName’ and the value in the Combo box.

<PropertyBag>

<ItemLabel="UserName"ControlType="TextBox"MaxLength="25"PropertyBagAttributeName="CustomTagHostName"ToolTip="Enter the User Name."/>

<ItemLabel="TrueFalse"ControlType="ComboBox"PropertyBagAttributeName="truefalse">

<DataItemValue="True"/>

<DataItemValue="False"/>

</Item>

</PropertyBag>

 

To localize the strings, you will:

 

<PropertyBag>

<ItemLabel="Label_UserName"ControlType="TextBox"MaxLength="25"PropertyBagAttributeName="UserName"ToolTip="ToolTip_Label_UserName"/>/>

<ItemLabel="TrueFalse"ControlType="LocalizedComboBox"PropertyBagAttributeName="TrueFalse">

<DataItemValue="True"/>

<DataItemValue="False"/>

</Item>

</PropertyBag>

 

SAT_ResourceGroups

·        Create Resource Group for the custom integration.

Id

Application

Name

Description

19

IMC

App_Type_UI from ISMGT_App_Type table

Description for the Custom Integration

o  Id:Autogenerated value. It should be used as ResourceGroupId to store keys in SAT_InvariantResources table

o  Application:Value should be “IMC”

o  Name:Value from theApp_Type_UI column in ISMGT_App_Type table should be stored.

o  Description:Short description about the Custom Integration

SAT_InvariantResources

·        Store the Keys for the custom integration

Id

ResourceGroupId

Name

AlwaysUseInvariant

Comment

176

19

Label_UserName

0

NULL

177

19

Tooltip_Label_UserName

0

NULL

o  Id:Autogenerated value. It should be used as InvariantResourceId to store values in SAT_Resources table

o  ResourceGroupId:Value from the Id column in SAT_ResourceGroups table.

o  Name:Store the Keys identified from the PropertyBag definition column. Each key should be entered in a new row

o  AlwaysUseInvariant:Value should be 0

o  Comment:Provide short description about the key or keep it as NULL

Note: Key “AppTypeName” should be entered by default to store the Custom Integration Name which will be displayed in the UI.

SAT_Languages

  • Fetch the Language Id for which the localization needs to be configured.
  • Language Id can be fetched based on the LanguageName column.

SAT_Resources

Id

InvariantResourceId

LanguageId

Value

OverrideValue

901

176

1

UserName

NULL

902

177

1

Enter the User Name

NULL

o  Id:Autogenerated value.

o  InvariantResourceId:Value from the Id column in SAT_InvariantResources table.

o  LanguageId:Value from the Id column in SAT_Languages table.

o  Value:Store the Values for the corresponding keys.

o  OverrideValue:Storeit as NULL

Note: Value for the key “AppTypeName” should be entered by default for each language.

 

Sample Database Script

·        The following is a sample script:

DECLARE @Application nvarchar(20), @ResourceGroupName nvarchar(100), @ResourceDescription nvarchar(100)

          SET @Application= 'IMC'

          SET @ResourceGroupName='APP_Type_UI'

          SET @ResourceDescription = 'Custom Integration'

IF NOT EXISTS(SELECT * FROM SAT_ResourceGroups WHERE Application = @Application and name = @ResourceGroupName)

BEGIN

INSERT INTO SAT_ResourceGroups (Application, name, Description) VALUES (@Application, @ResourceGroupName, @ResourceDescription)

END

DECLARE @ResourceGroupId int, @LanguageId int

SELECT @ResourceGroupId = Id FROM SAT_ResourceGroups  WHERE Application = @Application and name = @ResourceGroupName

DECLARE @ResourceData TABLE (languageID int, ResourceName nvarchar(100), ResourceValue nvarchar(max))

SELECT @LanguageId= Id FROM SAT_Languages WHERE LanguageName='en-US'

IF @LanguageId IS NOT NULL AND @ResourceGroupId IS NOT NULL

BEGIN

INSERT INTO @ResourceData VALUES(@LanguageId, N'AppTypeName', N'Custom Integration Name')
INSERT INTO @ResourceData VALUES(@LanguageId, N'Label_UserName', N'User Name:')

END

 

TitleResults for “How to create a CRG?”Also Available in