HowTo Create a Localization Package

The localization of sipXecs using Installable Localization Packages is not much different from the localization via the sipXecs build. The first set of steps must be done for both approaches. Only the last step – the creation of a localization package (vs. the inclusion of localized files in a build) – is different. To localize sipXecs using an installable localization package, you must perform the following four steps:

Select Elements to be Localized

The very first step in the localization of sipXecs is to decide what exactly you want to localize. The available options are:

  • Localization of voice prompts (standard TUI and CallPilot TUI) used by voice applications (voicemail and ACD) in your language
  • Localization of GUI text prompts for the administrator GUI and the user portal in your language
  • Creation of a dial plan template for your region
    The effort required to localize only the user portal as compared to localizing the complete GUI (administrator's interface as well as the user portal) would be significantly smaller. Nevertheless, currently there is no easy way to determine what subset of GUI text prompts (or properties files) should be used in order to localize just the user portal.

Determine your Language ID and Region ID

After you selected your localization elements, you should determine the language ID for your language and the region ID for your region (in case you want to provide the dial plan template). Language IDs are defined based on the RFC 4646. Use just the language tag for your language or the language tag followed by the region tag if you use a language that is specific for your region (for example Mexican Spanish).
Note: When you select a language ID that uses both the language tag and the region tag, you have to make sure you use the correct separator and capitalization. Unfortunately, the language and region tags separator and the capitalization of the region tag has not been implemented in a consistent manner in the sipXecs release 3.10. The language ID is used with a dash ( - ) as the separator and the region is used in lower case for voice prompt directory names, jar file names, and region directory names. The language ID suffix added to the names of properties files used for localization of the administrator and user portal GUI consist of a lower case language tag and an upper case region tag separated by an underscore. Due to that, for example for Mexican Spanish, you have to use the language ID "es-mx" for the voice prompt directory (stdprompts_es-mx), the jar file name (sipxconfig_es-mx.jar) and the region tag mx for the region directory (region_mx), but you have to use the suffix "es_MX" for GUI properties files (e.g., server_es_MX.properties). Changes to make these tags and separators consistent (using the underscope as the separator and the region tag in a language ID capitalized) will be considered for the next sipXecs release.

Localize Selected Elements

The next step is the actual localization of selected elements.

If you decided to localize voice prompts, you have to:

  • Translate the prompts
  • Record the translated prompts
  • Store the recorded prompts in files with appropriate files names
    If you decided to localize GUI text prompts, you have to:
  • Get a complete set of properties files for the sipXecs release that you want to localize
  • Add the Language ID as the suffix to the file names of these files
  • Translate all English text strings in these files
    If you decided to provide a dial plan template for your region, you have to:
  • Collect information about the telephone numbering plan for your region/country
  • Create the file dialrules.beans.xml based on the collected information

Create the Localization Package

In the final step, you have to arrange all localized files into a correct directory structure and then store it into a TAR file. The current recommendation is to use a normal TAR file to ensure compatibility with older versions of Linux that do not use a TAR package version 1.15 or newer. If you are sure that your localization package will be installed only on newer versions of Linux that include the TAR package version 1.15 or newer, you could save about 20% of the file size (and thus decrease the localization package upload time) by using a zipped TAR file.

To create the appropriate directory structure, perform the following steps:

  • Create/select a base directory for your localization files and go to this directory

If you localized voice prompts, create a subdirectorystdprompts_lid* (where lid is the language ID) in the base directory and copy your localized voice prompt files into this directory. For example, for Mexican Spanish, you would create the subdirectory stdprompts_es-mx for the voice prompt files. To include the CallPilot voice prompts, create a subfolder called cpui under your voice localization subdirectory : stdprompts_lid*.

  • If you localized GUI text prompts:
    • Copy the directory structure with all properties files (both the WEB-INF and sipxpbx directories and all their contents) into the base directory.
  • Next, you have to arrange the properties files into a directory structure that is expected by the Configuration Server component. First, create the directory*sipxpbx in the base directory (using the command mkdir sipxpbx).
  • Locate all directories*etc within the copied directory structure and move their contents into the directory sipxpbx. To locate the directories, you can use for example the commandLocate all directories etc within the copied directory structure and move their contents into the directory sipxpbx. To locate the directories, you can use for example the command
    : *find . -name etc
  • The command above will find at least the directory./neoconf/etc* and also etc directories for all plugins that you included in your translation. For example, if the returned directory list is ./plugins/linksys/etc ./plugins/lg-nortel/etc ./plugins/nortel/etc ./neoconf/etc, the command to move the contents of all these directories into sipxpbx would be
    : *mv -t sipxpbx ./plugins/linksys/etc/ ./plugins/lg-nortel/etc/* ./plugins/nortel/etc/* ./neoconf/etc/**
  • In the*sipxpbx directory, create a JAR file with the file name sipxconfig_lid.jar (where lid is the language ID) that contains all properties files from the WEB-INF directory structure. For example, for Mexican Spanish properties files, you would use the command
    : *jar cvf sipxpbx/sipxconfig_es-mx.jar WEB-INF/*
    • Delete the directory structure WEB-INF using the command
      : *rm -fR WEB-INF

If you prepared a dial plan template for your country/region, create a subdirectoryregion_rid* (where rid is the region ID) in the base directory and copy your dial plan template file dialrules.beans.xml into this directory.

  • Store all subdirectories with components of the localization package into a TAR file using a command similar to
    tar cf my_package.tgz stdprompts_lid/ sipxpbx/* region_rid/**
    For your actual command, you must use your language ID (in place of lid) and your region ID (in place of rid) and exclude directories corresponding to components that you didn't localize. If you decide to use a zipped TAR file for your localization package, you would use the "z" format identifier (tar czf ...). For example, for a Mexican Spanish localization package that includes all three localization elements, the command could be
    tar czf package_es-mx.tgz stdprompts_es-mx/ sipxpbx/* region_mx/**
  • Use the Localization page to install the localization package on your system, restart the Configuration Server component and test all localized elements.