Novell is now a part of Micro Focus

AppNote: Customizing Password Self-Service

Novell Cool Solutions: AppNote
By Hans-Robert Vermeulen

Digg This - Slashdot This

Updated: 30 Nov 2004

Hans-Robert Vermeulen
Novell Netherlands

Password Self-Service is a cool and free utility from Novell. It allows our users to change, reset or remember their password in a secure fashion and provides advanced password rules. In all, it can bring down the total number of helpdesk calls tremendously.

However, by default Password Self-Service is only translated for the following languages:

  • English
  • German
  • Spanish
  • French
  • Italian
  • Japanese
  • Portuguese

This means that for users who live in other countries and who are not fluent in English, the default will likely still require helpdesk assistance, unless we can translate all messages from Password Self-Service.

Information on how to set-up Password Self-Service is clearly detailed in the manuals found at The setup of Password Self-Service will not be described here.

Translating Password Self-Service

Most of the work is done inside the Tomcat WEBAPPS directory. By default the Tomcat WEBAPPS directory can be found on your iManager server under SYS:\Tomcat\WEBAPPS on NetWare, or C:\Program Files\Novell\Tomcat\WEBAPPS on Windows, but this could depend on your installation choices.

Inside the WEBAPPS directory, most of the work needs to be done under the \nps\portal\modules\ForgottenPassword\skins\default\devices\default directory. For each language you need to translate, you need to copy the following files:

  • Copy CRMain_lang.xsl to CRMain_lang_<xx>.xsl
  • Copy ForgottenMain_lang.xsl to ForgottenMain_lang_<xx>.xsl
  • Copy HSMain_lang.xsl to HSMain_lang_<xx>.xsl

The <xx> needs to be changed to your specific language code, such as nl for Dutch, be for Belgian or Flemish, and sv for Swedish.

A complete list for these two-letter country codes is defined in the ISO 639-1 standard which can be found at

For Dutch we would end up with:

  • CRMain_lang_nl.xsl
  • ForgottenMain_lang_nl.xsl
  • HSMain_lang_nl.xsl

In the \nps\portal\gadgets\ directory, there is another file that needs to be translated:

Copy ChallengeResponseLCMMain_lang.xsl to ChallengeResponseLCMMain_lang_<xx>.xsl, again substituting the <xx> with your language code.

The last procedure is a bit more difficult:

  1. Open the \nps\WEB-INF\lib\ForgottenPassword.jar file with a archive reader like WinZip or WinRar.
  2. Extract the the file to the following directory:
  3. Rename the file to forgottenresources_<xx>.properties, again substituting the <xx> with your language code.

The class loader will load this bundle before it looks through the jar file we extracted it from whenever Tomcat starts.

So we end up with the following files that need to be translated:

  • CRMain_lang_<xx>.xsl
  • ForgottenMain_lang_<xx>.xsl
  • HSMain_lang_<xx>.xsl
  • ChallengeResponseLCMMain_lang_<xx>.xsl
  • forgottenresources_<xx>.properties

All the files mentioned contain the strings and variables that need to be translated. It is your responsibility to make sensible translations. This will require some work, as the context of the messages isn't always clear. When testing you will find that a correctly translated message may make no sense to the user on the screen. This means you will have to walk through all the screens. Set up passwords, hints, challenges, etc. as a normal user would do, but also make intentional mistakes so you can review the text of the error messages.

There is also a button image that is referenced by the Password Self-Service service. The button is located in the \nps\portal\modules\ForgottenPassword\images directory. Here you will need to copy the btn_submit.gif to btn_submit_<xx>.gif. If required, a translated button file needs to be created.

If e-mail templates are used in your configuration, these might need to be translated as well via iManager / Notification Configuration / Modify E-mail templates.

Note: There is currently an issue that prevents the forgottenresources_<xx>.properties file from being loaded correctly, unless it is part of the default language set. Instead, as a workaround the file could be translated, but you will lose the English version. A new Forgotpassword.jar file that will be part of the OES release is available; however, it is not officially supported at this time and should be used with care.

  1. Download, which includes a new ForgottenPassword.jar file to allow the translations to work.
  2. Save a copy of your original \nps\WEB-INF\lib\ForgottenPassword.jar file outside of the lib directory.
  3. Copy the new file into the \nps\WEB-INF\lib\ directory.

Checking your browser

The selection of the correct language is the responsibility of your browser. Based on your browser's language settings (under Tools/Internet Options/Languages in Internet Explorer) you will need to specify your preferred language first.

Testing your translations

  1. Restart Tomcat by issuing a tc4stop and a tomcat4 command on NetWare, or by restarting the Tomcat service on Windows.
  2. Browse to "http://<Server IP>/nps" and if all is well, you should see the "Forgot your password" link translated into your browsers preferred language.
  3. Make sure you test your system thoroughly before deployment.


Just a short tip: If an error occurs and you have translated these as well, you will not find any references in Novell's knowledgebase. It is therefore recommended you check which variable is associated with your error and use this to find out what the original English message would say. This will make troubleshooting a lot easier.

Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions.

© Copyright Micro Focus or one of its affiliates