This page is wildly out of date. Localization is now RPM based.
In release 3.10, the sipXecs Configuration Server component uses 225 properties files to define all text prompts that can be localized. During the evolution of the system, properties files are relatively frequently modified (text prompts changed, new files added, existing files removed). Because of that, a set of properties files always matches a specific release/revision of the sipXecs software. This churn causes two problems:
Due to that, be aware that you must prepare an update of your localization package(s) whenever you intend to upgrade to a newer version of sipXecs. Also, instead of providing a default set of properties files ready for localization, a better approach is to provide a Linux script that extracts these files from a checked out revision of sipXecs. That said, providing a TAR file with properties file for each maintenance branch (that is not likely to change anymore) could be also a good idea.
There are two groups of properties files with GUI text prompts - files in the WEB-INF directory structure and files in the etc/sipxpbx directory structure.
To collect all the properties files from the sipXecs build environment, you'd have to get all the files and manually discard those that are not required. A convenient script is provided to handle this task. To extract properties files from a checked out revision of sipXecs, invoke the following script from the base directory. The script creates a TAR file in your home directory with the file name Properties_<revision>.tar with all the properties files that require translation.
#!/bin/bash # This script extracts files *.properties that contain default (US English) # prompts used in the sipXecs GUI # Get the current revision number from subversion REVISION=$(svn info | grep Revision) rc=$? if [$rc -ne 0 ]; then echo Unable to determine revision number - aborting! echo Please invoke the script from the main sipXecs directory. exit $rc fi REVISION=$(echo $REVISION | cut -c 11-15) # Go to the sipXconfig directory cd sipXconfig rc=$? if [$rc -ne 0 ]; then echo Unable to enter the sipXconfig directory - aborting! echo Please invoke the script from the main sipXecs directory. exit $rc fi # Create a file name using the revision number FILENAME=Properties_$REVISION.tar echo The output file $FILENAME is being created in your home directory... # Store files *.properties from all subdirectories that contain default prompts # in a tar file. Exlcude files that do not contain text prompts. find . | grep properties | grep -v .svn | grep -v _de | grep -v _pl | grep -v _it | grep -v properties.in | \ grep -v lib.properties | grep -v .\meta | grep -v log4j | grep -v skin.properties | \ grep -v DurationFormat | grep -v spy.properties | grep -v admin/mail.properties | \ grep -v properties.map | cut -c 3- | xargs tar cvf ~/$FILENAME rc=$? if [$rc -ne 0 ]; then echo Unable to create the tar file else echo The tar file $FILENAME was successfully created in your home directory fi cd .. exit $rc
Another step in the localization of GUI text prompts is to rename all files (to add a language ID as the suffix to each file name). Again, to handle this task could be relatively tedious, so a convenient script (rename_properties.sh) is provided below. To rename properties files that were stored in the TAR file by the script above, invoke the script with the TAR file name as the first parameter and your language ID as the second parameter. For properties files, the language ID suffix added to the names of properties files must be either:
#!/bin/bash # This script extracts files *.properties from the specified tar file, appends # the specified language extension to all files and then creates a new tar file # with the name of the original tar file plus the language extension. # # Check the file name to make sure the user specified a tar file with properties files # Check the language identifier. if [$# -eq 2 ]; then echo $1 | grep .tar >> /dev/null rc=$? if [$rc -eq 0 ]; then echo $1 | grep Properties >> /dev/null rc=$? if [oldxx: _rc -eq 0 ]; then LANGUAGE_ID=$2 rc=1 if [$-(#LANGUAGE_ID\} -eq 2 ]; then rc=0 elif [$-(#LANGUAGE_ID\} -eq 5 ]; then echo $LANGUAGE_ID | cut -c 3 | grep '-' >> /dev/null rc=$? fi fi fi else rc=1 fi if [$rc -ne 0 ]; then echo Usage: rename_properties.sh Properties_XXXXX.tar LanguageID echo E.g. : rename_properties.sh Properties_12200.tar cs exit $? fi # Create a temprorary directory for the files FILENAME_TAR="$1" TMP=Temp_Properties echo Extracting files from $FILENAME_TAR mkdir $TMP cd $TMP rc=$? if [$rc -ne 0 ]; then echo Unable to create the directory $TMP - aborting rc=$? fi # Make sure the directory is empty rm -fR * # Extract the files echo $FILENAME_TAR | cut -c 0-1 | grep / if [$? -eq 0 ]; then tar xf $FILENAME_TAR else tar xf ../$FILENAME_TAR fi # Rename each file echo Renaming files... find . | grep .properties | while read line do NEWFILENAME="$(echo $line | cut -c 3- | cut -f 1 --delimiter=.)_$LANGUAGE_ID.properties" mv $line $NEWFILENAME done # Store the renamed files into a tar file NEWFILENAME_TAR="$(echo $FILENAME_TAR | cut -f 1 --delimiter=.)_$LANGUAGE_ID.tar" echo Storing files in $NEWFILENAME_TAR tar cf ../$NEWFILENAME_TAR * # Remove the temporary directory cd .. rm -fR $TMP