Configuring Novell Service Desk with MySQL for a character set

  • 7012292
  • 05-Feb-2010
  • 29-May-2013

Environment

Novell Service Desk 6.5

Situation

For many users, the default MySQL settings along with the utf-8 or utf8 character set will allow the storage and display of characters in Novell Service Desk. However, in versions prior to 6.5, there are certain languages where these settings require changing, especially if other features, such as Excel exports are to work correctly. This documents the settings required for this to work.

Resolution

On MySQL, the locale/language involved is comprised of 2 factors: the character set (the actual characters in use) and the collation (the order in which these characters are dealt with/sorted).

The following MySQL query can be used to show the character sets and collations to choose from:

SHOW CHARACTER SET;

A full list for version of those that MySQL supports can also be found here:
http://dev.mysql.com/doc/refman/5.5/en/charset-charsets.html

For this example, we shall concentrate on setting Novell Service Desk to use the Turkish language.

The following lines need to be in the Windows my.ini or Linux my.cnf file:

default-character-set = utf8
character-set-server = latin5
collation-server = latin5_turkish_ci

Any other lines to do with character set or collation are not required.

When the following commands are run in the MySQL command prompt...

use database-name;
SHOW VARIABLES LIKE '%character\_set\_%';

...the results should appear like so:

+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin5 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin5 |
| character_set_system | utf8 |
+--------------------------+--------+

Note that on some systems some of the utf8 entries may appear as utf8. This could be based on the configuration of the mysql client and is fine.


On the Novell Service Desk installation, inside the webapps/WEB-INF/Novell Service Desk.woa/Contents/Resources/ folder, the following files need to be edited:

1. Novell Service DeskLocales.xml

This file needs to have the LOCALE line enabled or added, if it is not there.

For example, if this were Dutch, we would find the lines showing...

<!-- Dutch -->
<!--LOCALE language="nl" country="" charset="ISO-8859-1"/-->

...and uncomment the LOCALE line by changing it to:

<!-- Dutch -->
<LOCALE language="nl" country="" charset="ISO-8859-1"/>

In our example, the Turkish language setting needs adding to this file so we need to look up the ISO character set and HTTP letter code for this. The following page is useful for this:

http://www.livio.net/main/charset.asp

From this, we find that the following needs to be added to the Novell Service DeskLocales.xml file:

<!-- Turkish -->
<LOCALE language="tr" country="" charset="ISO-8859-9"/>

It's important to get this line correct so note that the language code is in lower case, there are double quotes (") used, as opposed to single quotes or apostrophes here, the letters ISO are in upper case and there is a trailing / at the end.

This line needs to be added between the <LOCALES> and </LOCALES> tags in the file, in line with the other entries.

These HTTP character codes and ISO codes can also be found in the settings of browsers such as Firefox, for example.

In the case of certain countries, such as Norway, users can choose to utilize 'no', 'nb' or 'nn', as the main Norwegian reference plus the different Norwegian dialects, in the browser preferred language settings. To ensure these are accommodated, separate locale lines should be added for all 3 versions.


2. Novell Service Desk_xy.properties

Replace xy with the language code from the previous step, so for Turkish this would be Novell Service Desk_tr.properties.

This file (or files in the case of the Norway example) is required to exist. This file is there to represent the translations of the words and terminology used throughout Novell Service Desk. However, if no such translation is required, a copy of the default Novell Service Desk.properties file should be made.


3. system.properties

The character encoding should be to the same iso code as specified in the previous step for the locale, so the section of the file in question, in it's default state looks like this:

# Character encoding
Novell Service Desk.encoding=utf-8
#Novell Service Desk.encoding=iso-8859-1

In the case of the Turkish language, this needs to be changed to:

# Character encoding
#Novell Service Desk.encoding=utf-8
#Novell Service Desk.encoding=iso-8859-1
Novell Service Desk.encoding=iso-8859-9

Note that the 'iso' part is in lower case here and without any quotes.


Finally the web browser needs to be set to use the language in question as the preferred page content language and also the encoding needs to be set accordingly. In the case of Turkish, this would would be the preferred language together with the character set of Turkish/latin5/iso-8859-9, depending on what options the browser in question offers.

Note that the MySQL and the application (eg Tomcat, JBoss, etc) servers would need restarting following such changes. To avoid any issues, the application server should be stopped first, whilst the MySQL server is then restarted before starting up the application server again.

One other thing to note is that sometimes for certain languages, when saving the database settings (if these need updating or changing in Novell Service Desk), the error message may appear indicating that the schema is not initialized. If this occurs, please temporarily change the browser to an English language and character set and then click save again. It should then save just fine, but remember to set the browser settings back afterwards.

If a Novell Service Desk database is already in use then the character set of this may also need converting to fit in with the new settings. Please refer to the article titled 'How to convert an existing MySQL database's character set' for details on how to do this.

Additional Information

Note that due to various developments it may be possible to resolve such issues by simply upgrading MySQL to the latest version. This is something worth considering, if possible, first.

Also note that due to enhanced handling of characters set in Novell Service Desk and a move to a configurable utf-8 default since Novell Service Desk version 6.5, the issues should be resolved by upgrading to the latest version of Novell Service Desk.

Formerly known as 1000900