The Identity Provider software contains by default US English file(s) that contain the strings to render messages in the various views included in the software. In addition, the built-in attribute registry rules define names and descriptions of many standardized Attributes.

Many deployers may want to present this information in the local language(s) or customize/localize some strings. To translate or adapt the IdP messages and thus support multiple languages, the IdP supports translations of the corresponding message files. The servlet container will then automatically select a matching message file based on the client's Accept-Languages header as provided by the web browser. The attribute metadata is, by contrast, directly embedded in the various default rule files we include.

Managing Translations

A Git repository, java-idp-translations, is the authoritative source of all of the internationalizable information for all our software products. We are willing to offer commit access to that repository to anybody willing to maintain translation(s) into any languages. Access is by public key and you can contact us at the usual places to express interest.

Within the repository, each software product is represented by a folder tree with a subdirectory for each major release version:;a=tree

For example, the IdP is laid out thusly right now:

  • java-identity-provider/

    • 5/

      • messages/

      • attributes/

Several plugins that contain translatable material are also represented with their own folders.

At the time of each release, we will incorporate any translation updates provided (copying the changed files into the actual software projects).

Notably, while message translations can generally be added to existing installs automatically during upgrades, as they’re internal, changes to attribute metadata require deployer action, as those files are created alongside the “existing” files.


For example, to create a German translation of the IdP's messages, copy the default (US English) messages file, to a file named and translate/adapt the strings in the new properties file. For example, one would translate the string idp.title.suffix = Error to idp.title.suffix = Fehler

The IdP will select a language file based on the locale of the browser without additional configuration. Note that Spring (and by extension the IdP) does not support a precedence of languages to fall back to, so the support for full i18n is constrained by that limitation. Also, note that if the browser does not specify a locale to use, the OS default will generally dictate what is selected, so this may or may not be the right answer.


The names and descriptions for each default attribute transcoding rule are laid out as property sets in XML syntax in the various default rule files, which are found under the attributes folder in a given product’s tree. These can be extended/changed as required, though obviously this means avoiding stepping on others' translations.

Contributing to the Translation Effort

If you want to contribute translations for other languages, please:

  1. Contact us via

  2. Be prepared to provide a a Unix-style username and your SSH public key via some mechanism other than e-mail.

  3. We will get you commit access to the translations repository.

  4. Join the i18n list to be aware of impending release schedules or connect to other translators.

Thank you for your interest and help!