From 2319f20cd758fb7ee8d315e2119c75ae75eecb96 Mon Sep 17 00:00:00 2001
From: Mark Craig <mark.craig@forgerock.com>
Date: Fri, 27 Mar 2015 09:29:09 +0000
Subject: [PATCH] CR-6445 OPENDJ-1861 List of supported locales is out of sync

---
 opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java             |  209 -------
 opendj-server-legacy/pom.xml                                                               |   19 
 opendj-server-legacy/src/main/docbkx/reference/appendix-l10n.xml                           |  800 ----------------------------
 opendj-doc-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java  |  220 +++++++
 opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaSupportedLocales.java |  260 +++++++++
 opendj-doc-plugin/pom.xml                                                                  |   69 ++
 opendj-doc-plugin/src/main/java/org/forgerock/opendj/maven/doc/package-info.java           |   29 +
 opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties                   |   17 
 pom.xml                                                                                    |    1 
 9 files changed, 624 insertions(+), 1,000 deletions(-)

diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java
index 3d20463..36b7634 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java
@@ -73,213 +73,8 @@
 
     private static final Schema SINGLETON;
 
-    /**
-     * Provides the oid associated to each locale, for the registration of collation matching rules.
-     * <p>
-     * To add support for a new locale to collation matching rules, add its name as key and the corresponding oid as
-     * value.
-     */
-    private static final Map<String, String> LOCALE_NAMES_TO_OIDS = new HashMap<String, String>();
-    /**
-     * Same as {@link CoreSchemaImpl#LOCALE_NAMES_TO_OIDS}, but it contains the old locale names
-     * that will be used for the registration of collation matching rules.
-     * It is automatically populated on static initialization of current class.
-     * It allows the initialization process to complete when newer locales are referenced by config.ldif,
-     * but the JVM only works with the old locale names.
-     *
-     * @see CoreSchemaImpl#LOCALE_NAMES_TO_OIDS
-     */
-    private static final Map<String, String> JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS = new HashMap<String, String>();
-
-    static {
-        LOCALE_NAMES_TO_OIDS.put("af", "1.3.6.1.4.1.42.2.27.9.4.1.1");
-        LOCALE_NAMES_TO_OIDS.put("am", "1.3.6.1.4.1.42.2.27.9.4.2.1");
-        LOCALE_NAMES_TO_OIDS.put("ar", "1.3.6.1.4.1.42.2.27.9.4.3.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-AE", "1.3.6.1.4.1.42.2.27.9.4.4.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-BH", "1.3.6.1.4.1.42.2.27.9.4.5.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-DZ", "1.3.6.1.4.1.42.2.27.9.4.6.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-EG", "1.3.6.1.4.1.42.2.27.9.4.7.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-IN", "1.3.6.1.4.1.42.2.27.9.4.8.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-IQ", "1.3.6.1.4.1.42.2.27.9.4.9.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-JO", "1.3.6.1.4.1.42.2.27.9.4.10.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-KW", "1.3.6.1.4.1.42.2.27.9.4.11.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-LB", "1.3.6.1.4.1.42.2.27.9.4.12.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-LY", "1.3.6.1.4.1.42.2.27.9.4.13.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-MA", "1.3.6.1.4.1.42.2.27.9.4.14.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-OM", "1.3.6.1.4.1.42.2.27.9.4.15.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-QA", "1.3.6.1.4.1.42.2.27.9.4.16.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-SA", "1.3.6.1.4.1.42.2.27.9.4.17.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-SD", "1.3.6.1.4.1.42.2.27.9.4.18.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-SY", "1.3.6.1.4.1.42.2.27.9.4.19.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-TN", "1.3.6.1.4.1.42.2.27.9.4.20.1");
-        LOCALE_NAMES_TO_OIDS.put("ar-YE", "1.3.6.1.4.1.42.2.27.9.4.21.1");
-        LOCALE_NAMES_TO_OIDS.put("be", "1.3.6.1.4.1.42.2.27.9.4.22.1");
-        LOCALE_NAMES_TO_OIDS.put("bg", "1.3.6.1.4.1.42.2.27.9.4.23.1");
-        LOCALE_NAMES_TO_OIDS.put("bn", "1.3.6.1.4.1.42.2.27.9.4.24.1");
-        LOCALE_NAMES_TO_OIDS.put("ca", "1.3.6.1.4.1.42.2.27.9.4.25.1");
-        LOCALE_NAMES_TO_OIDS.put("cs", "1.3.6.1.4.1.42.2.27.9.4.26.1");
-        LOCALE_NAMES_TO_OIDS.put("da", "1.3.6.1.4.1.42.2.27.9.4.27.1");
-        LOCALE_NAMES_TO_OIDS.put("de", "1.3.6.1.4.1.42.2.27.9.4.28.1");
-        LOCALE_NAMES_TO_OIDS.put("de-DE", "1.3.6.1.4.1.42.2.27.9.4.28.1");
-        LOCALE_NAMES_TO_OIDS.put("de-AT", "1.3.6.1.4.1.42.2.27.9.4.29.1");
-        LOCALE_NAMES_TO_OIDS.put("de-BE", "1.3.6.1.4.1.42.2.27.9.4.30.1");
-        LOCALE_NAMES_TO_OIDS.put("de-CH", "1.3.6.1.4.1.42.2.27.9.4.31.1");
-        LOCALE_NAMES_TO_OIDS.put("de-LU", "1.3.6.1.4.1.42.2.27.9.4.32.1");
-        LOCALE_NAMES_TO_OIDS.put("el", "1.3.6.1.4.1.42.2.27.9.4.33.1");
-        LOCALE_NAMES_TO_OIDS.put("en", "1.3.6.1.4.1.42.2.27.9.4.34.1");
-        LOCALE_NAMES_TO_OIDS.put("en-US", "1.3.6.1.4.1.42.2.27.9.4.34.1");
-        LOCALE_NAMES_TO_OIDS.put("en-AU", "1.3.6.1.4.1.42.2.27.9.4.35.1");
-        LOCALE_NAMES_TO_OIDS.put("en-CA", "1.3.6.1.4.1.42.2.27.9.4.36.1");
-        LOCALE_NAMES_TO_OIDS.put("en-GB", "1.3.6.1.4.1.42.2.27.9.4.37.1");
-        LOCALE_NAMES_TO_OIDS.put("en-HK", "1.3.6.1.4.1.42.2.27.9.4.38.1");
-        LOCALE_NAMES_TO_OIDS.put("en-IE", "1.3.6.1.4.1.42.2.27.9.4.39.1");
-        LOCALE_NAMES_TO_OIDS.put("en-IN", "1.3.6.1.4.1.42.2.27.9.4.40.1");
-        LOCALE_NAMES_TO_OIDS.put("en-MT", "1.3.6.1.4.1.42.2.27.9.4.41.1");
-        LOCALE_NAMES_TO_OIDS.put("en-NZ", "1.3.6.1.4.1.42.2.27.9.4.42.1");
-        LOCALE_NAMES_TO_OIDS.put("en-PH", "1.3.6.1.4.1.42.2.27.9.4.43.1");
-        LOCALE_NAMES_TO_OIDS.put("en-SG", "1.3.6.1.4.1.42.2.27.9.4.44.1");
-        LOCALE_NAMES_TO_OIDS.put("en-VI", "1.3.6.1.4.1.42.2.27.9.4.45.1");
-        LOCALE_NAMES_TO_OIDS.put("en-ZA", "1.3.6.1.4.1.42.2.27.9.4.46.1");
-        LOCALE_NAMES_TO_OIDS.put("en-ZW", "1.3.6.1.4.1.42.2.27.9.4.47.1");
-        LOCALE_NAMES_TO_OIDS.put("eo", "1.3.6.1.4.1.42.2.27.9.4.48.1");
-        LOCALE_NAMES_TO_OIDS.put("es", "1.3.6.1.4.1.42.2.27.9.4.49.1");
-        LOCALE_NAMES_TO_OIDS.put("es-ES", "1.3.6.1.4.1.42.2.27.9.4.49.1");
-        LOCALE_NAMES_TO_OIDS.put("es-AR", "1.3.6.1.4.1.42.2.27.9.4.50.1");
-        LOCALE_NAMES_TO_OIDS.put("es-BO", "1.3.6.1.4.1.42.2.27.9.4.51.1");
-        LOCALE_NAMES_TO_OIDS.put("es-CL", "1.3.6.1.4.1.42.2.27.9.4.52.1");
-        LOCALE_NAMES_TO_OIDS.put("es-CO", "1.3.6.1.4.1.42.2.27.9.4.53.1");
-        LOCALE_NAMES_TO_OIDS.put("es-CR", "1.3.6.1.4.1.42.2.27.9.4.54.1");
-        LOCALE_NAMES_TO_OIDS.put("es-DO", "1.3.6.1.4.1.42.2.27.9.4.55.1");
-        LOCALE_NAMES_TO_OIDS.put("es-EC", "1.3.6.1.4.1.42.2.27.9.4.56.1");
-        LOCALE_NAMES_TO_OIDS.put("es-GT", "1.3.6.1.4.1.42.2.27.9.4.57.1");
-        LOCALE_NAMES_TO_OIDS.put("es-HN", "1.3.6.1.4.1.42.2.27.9.4.58.1");
-        LOCALE_NAMES_TO_OIDS.put("es-MX", "1.3.6.1.4.1.42.2.27.9.4.59.1");
-        LOCALE_NAMES_TO_OIDS.put("es-NI", "1.3.6.1.4.1.42.2.27.9.4.60.1");
-        LOCALE_NAMES_TO_OIDS.put("es-PA", "1.3.6.1.4.1.42.2.27.9.4.61.1");
-        LOCALE_NAMES_TO_OIDS.put("es-PE", "1.3.6.1.4.1.42.2.27.9.4.62.1");
-        LOCALE_NAMES_TO_OIDS.put("es-PR", "1.3.6.1.4.1.42.2.27.9.4.63.1");
-        LOCALE_NAMES_TO_OIDS.put("es-PY", "1.3.6.1.4.1.42.2.27.9.4.64.1");
-        LOCALE_NAMES_TO_OIDS.put("es-SV", "1.3.6.1.4.1.42.2.27.9.4.65.1");
-        LOCALE_NAMES_TO_OIDS.put("es-US", "1.3.6.1.4.1.42.2.27.9.4.66.1");
-        LOCALE_NAMES_TO_OIDS.put("es-UY", "1.3.6.1.4.1.42.2.27.9.4.67.1");
-        LOCALE_NAMES_TO_OIDS.put("es-VE", "1.3.6.1.4.1.42.2.27.9.4.68.1");
-        LOCALE_NAMES_TO_OIDS.put("et", "1.3.6.1.4.1.42.2.27.9.4.69.1");
-        LOCALE_NAMES_TO_OIDS.put("eu", "1.3.6.1.4.1.42.2.27.9.4.70.1");
-        LOCALE_NAMES_TO_OIDS.put("fa", "1.3.6.1.4.1.42.2.27.9.4.71.1");
-        LOCALE_NAMES_TO_OIDS.put("fa-IN", "1.3.6.1.4.1.42.2.27.9.4.72.1");
-        LOCALE_NAMES_TO_OIDS.put("fa-IR", "1.3.6.1.4.1.42.2.27.9.4.73.1");
-        LOCALE_NAMES_TO_OIDS.put("fi", "1.3.6.1.4.1.42.2.27.9.4.74.1");
-        LOCALE_NAMES_TO_OIDS.put("fo", "1.3.6.1.4.1.42.2.27.9.4.75.1");
-        LOCALE_NAMES_TO_OIDS.put("fr", "1.3.6.1.4.1.42.2.27.9.4.76.1");
-        LOCALE_NAMES_TO_OIDS.put("fr-FR", "1.3.6.1.4.1.42.2.27.9.4.76.1");
-        LOCALE_NAMES_TO_OIDS.put("fr-BE", "1.3.6.1.4.1.42.2.27.9.4.77.1");
-        LOCALE_NAMES_TO_OIDS.put("fr-CA", "1.3.6.1.4.1.42.2.27.9.4.78.1");
-        LOCALE_NAMES_TO_OIDS.put("fr-CH", "1.3.6.1.4.1.42.2.27.9.4.79.1");
-        LOCALE_NAMES_TO_OIDS.put("fr-LU", "1.3.6.1.4.1.42.2.27.9.4.80.1");
-        LOCALE_NAMES_TO_OIDS.put("ga", "1.3.6.1.4.1.42.2.27.9.4.81.1");
-        LOCALE_NAMES_TO_OIDS.put("gl", "1.3.6.1.4.1.42.2.27.9.4.82.1");
-        LOCALE_NAMES_TO_OIDS.put("gu", "1.3.6.1.4.1.42.2.27.9.4.83.1");
-        LOCALE_NAMES_TO_OIDS.put("gv", "1.3.6.1.4.1.42.2.27.9.4.84.1");
-        LOCALE_NAMES_TO_OIDS.put("he", "1.3.6.1.4.1.42.2.27.9.4.85.1");
-        LOCALE_NAMES_TO_OIDS.put("hi", "1.3.6.1.4.1.42.2.27.9.4.86.1");
-        LOCALE_NAMES_TO_OIDS.put("hr", "1.3.6.1.4.1.42.2.27.9.4.87.1");
-        LOCALE_NAMES_TO_OIDS.put("hu", "1.3.6.1.4.1.42.2.27.9.4.88.1");
-        LOCALE_NAMES_TO_OIDS.put("hy", "1.3.6.1.4.1.42.2.27.9.4.89.1");
-        LOCALE_NAMES_TO_OIDS.put("id", "1.3.6.1.4.1.42.2.27.9.4.90.1");
-        LOCALE_NAMES_TO_OIDS.put("is", "1.3.6.1.4.1.42.2.27.9.4.91.1");
-        LOCALE_NAMES_TO_OIDS.put("it", "1.3.6.1.4.1.42.2.27.9.4.92.1");
-        LOCALE_NAMES_TO_OIDS.put("it-CH", "1.3.6.1.4.1.42.2.27.9.4.93.1");
-        LOCALE_NAMES_TO_OIDS.put("ja", "1.3.6.1.4.1.42.2.27.9.4.94.1");
-        LOCALE_NAMES_TO_OIDS.put("kl", "1.3.6.1.4.1.42.2.27.9.4.95.1");
-        LOCALE_NAMES_TO_OIDS.put("kn", "1.3.6.1.4.1.42.2.27.9.4.96.1");
-        LOCALE_NAMES_TO_OIDS.put("ko", "1.3.6.1.4.1.42.2.27.9.4.97.1");
-        LOCALE_NAMES_TO_OIDS.put("kok", "1.3.6.1.4.1.42.2.27.9.4.98.1");
-        LOCALE_NAMES_TO_OIDS.put("kw", "1.3.6.1.4.1.42.2.27.9.4.99.1");
-        LOCALE_NAMES_TO_OIDS.put("lt", "1.3.6.1.4.1.42.2.27.9.4.100.1");
-        LOCALE_NAMES_TO_OIDS.put("lv", "1.3.6.1.4.1.42.2.27.9.4.101.1");
-        LOCALE_NAMES_TO_OIDS.put("mk", "1.3.6.1.4.1.42.2.27.9.4.102.1");
-        LOCALE_NAMES_TO_OIDS.put("mr", "1.3.6.1.4.1.42.2.27.9.4.103.1");
-        LOCALE_NAMES_TO_OIDS.put("mt", "1.3.6.1.4.1.42.2.27.9.4.104.1");
-        LOCALE_NAMES_TO_OIDS.put("nl", "1.3.6.1.4.1.42.2.27.9.4.105.1");
-        LOCALE_NAMES_TO_OIDS.put("nl-NL", "1.3.6.1.4.1.42.2.27.9.4.105.1");
-        LOCALE_NAMES_TO_OIDS.put("nl-BE", "1.3.6.1.4.1.42.2.27.9.4.106.1");
-        LOCALE_NAMES_TO_OIDS.put("no", "1.3.6.1.4.1.42.2.27.9.4.107.1");
-        LOCALE_NAMES_TO_OIDS.put("no-NO", "1.3.6.1.4.1.42.2.27.9.4.107.1");
-        LOCALE_NAMES_TO_OIDS.put("no-NO-NY", "1.3.6.1.4.1.42.2.27.9.4.108.1");
-        LOCALE_NAMES_TO_OIDS.put("nn", "1.3.6.1.4.1.42.2.27.9.4.109.1");
-        LOCALE_NAMES_TO_OIDS.put("nb", "1.3.6.1.4.1.42.2.27.9.4.110.1");
-        LOCALE_NAMES_TO_OIDS.put("no-NO-B", "1.3.6.1.4.1.42.2.27.9.4.110.1");
-        LOCALE_NAMES_TO_OIDS.put("om", "1.3.6.1.4.1.42.2.27.9.4.111.1");
-        LOCALE_NAMES_TO_OIDS.put("om-ET", "1.3.6.1.4.1.42.2.27.9.4.112.1");
-        LOCALE_NAMES_TO_OIDS.put("om-KE", "1.3.6.1.4.1.42.2.27.9.4.113.1");
-        LOCALE_NAMES_TO_OIDS.put("pl", "1.3.6.1.4.1.42.2.27.9.4.114.1");
-        LOCALE_NAMES_TO_OIDS.put("pt", "1.3.6.1.4.1.42.2.27.9.4.115.1");
-        LOCALE_NAMES_TO_OIDS.put("pt-PT", "1.3.6.1.4.1.42.2.27.9.4.115.1");
-        LOCALE_NAMES_TO_OIDS.put("pt-BR", "1.3.6.1.4.1.42.2.27.9.4.116.1");
-        LOCALE_NAMES_TO_OIDS.put("ro", "1.3.6.1.4.1.42.2.27.9.4.117.1");
-        LOCALE_NAMES_TO_OIDS.put("ru", "1.3.6.1.4.1.42.2.27.9.4.118.1");
-        LOCALE_NAMES_TO_OIDS.put("ru-RU", "1.3.6.1.4.1.42.2.27.9.4.118.1");
-        LOCALE_NAMES_TO_OIDS.put("ru-UA", "1.3.6.1.4.1.42.2.27.9.4.119.1");
-        LOCALE_NAMES_TO_OIDS.put("sh", "1.3.6.1.4.1.42.2.27.9.4.120.1");
-        LOCALE_NAMES_TO_OIDS.put("sk", "1.3.6.1.4.1.42.2.27.9.4.121.1");
-        LOCALE_NAMES_TO_OIDS.put("sl", "1.3.6.1.4.1.42.2.27.9.4.122.1");
-        LOCALE_NAMES_TO_OIDS.put("so", "1.3.6.1.4.1.42.2.27.9.4.123.1");
-        LOCALE_NAMES_TO_OIDS.put("so-SO", "1.3.6.1.4.1.42.2.27.9.4.123.1");
-        LOCALE_NAMES_TO_OIDS.put("so-DJ", "1.3.6.1.4.1.42.2.27.9.4.124.1");
-        LOCALE_NAMES_TO_OIDS.put("so-ET", "1.3.6.1.4.1.42.2.27.9.4.125.1");
-        LOCALE_NAMES_TO_OIDS.put("so-KE", "1.3.6.1.4.1.42.2.27.9.4.126.1");
-        LOCALE_NAMES_TO_OIDS.put("sq", "1.3.6.1.4.1.42.2.27.9.4.127.1");
-        LOCALE_NAMES_TO_OIDS.put("sr", "1.3.6.1.4.1.42.2.27.9.4.128.1");
-        LOCALE_NAMES_TO_OIDS.put("sv", "1.3.6.1.4.1.42.2.27.9.4.129.1");
-        LOCALE_NAMES_TO_OIDS.put("sv-SE", "1.3.6.1.4.1.42.2.27.9.4.129.1");
-        LOCALE_NAMES_TO_OIDS.put("sv-FI", "1.3.6.1.4.1.42.2.27.9.4.130.1");
-        LOCALE_NAMES_TO_OIDS.put("sw", "1.3.6.1.4.1.42.2.27.9.4.131.1");
-        LOCALE_NAMES_TO_OIDS.put("sw-KE", "1.3.6.1.4.1.42.2.27.9.4.132.1");
-        LOCALE_NAMES_TO_OIDS.put("sw-TZ", "1.3.6.1.4.1.42.2.27.9.4.133.1");
-        LOCALE_NAMES_TO_OIDS.put("ta", "1 3  1.3.6.1.4.1.42.2.27.9.4.134.1");
-        LOCALE_NAMES_TO_OIDS.put("te", "1.3.6.1.4.1.42.2.27.9.4.135.1");
-        LOCALE_NAMES_TO_OIDS.put("th", "1.3.6.1.4.1.42.2.27.9.4.136.1");
-        LOCALE_NAMES_TO_OIDS.put("ti", "1.3.6.1.4.1.42.2.27.9.4.137.1");
-        LOCALE_NAMES_TO_OIDS.put("ti-ER", "1.3.6.1.4.1.42.2.27.9.4.138.1");
-        LOCALE_NAMES_TO_OIDS.put("ti-ET", "1.3.6.1.4.1.42.2.27.9.4.139.1");
-        LOCALE_NAMES_TO_OIDS.put("tr", "1.3.6.1.4.1.42.2.27.9.4.140.1");
-        LOCALE_NAMES_TO_OIDS.put("uk", "1.3.6.1.4.1.42.2.27.9.4.141.1");
-        LOCALE_NAMES_TO_OIDS.put("vi", "1.3.6.1.4.1.42.2.27.9.4.142.1");
-        LOCALE_NAMES_TO_OIDS.put("zh", "1.3.6.1.4.1.42.2.27.9.4.143.1");
-        LOCALE_NAMES_TO_OIDS.put("zh-CN", "1.3.6.1.4.1.42.2.27.9.4.144.1");
-        LOCALE_NAMES_TO_OIDS.put("zh-HK", "1.3.6.1.4.1.42.2.27.9.4.145.1");
-        LOCALE_NAMES_TO_OIDS.put("zh-MO", "1.3.6.1.4.1.42.2.27.9.4.146.1");
-        LOCALE_NAMES_TO_OIDS.put("zh-SG", "1.3.6.1.4.1.42.2.27.9.4.147.1");
-        LOCALE_NAMES_TO_OIDS.put("zh-TW", "1.3.6.1.4.1.42.2.27.9.4.148.1");
-
-        initializeJvmSupportedLocaleNamesToOids();
-    }
-
-    private static void initializeJvmSupportedLocaleNamesToOids() {
-        for (Entry<String, String> entry : LOCALE_NAMES_TO_OIDS.entrySet()) {
-            final String localeName = entry.getKey();
-            final String oid = entry.getValue();
-            final String oldLocaleName = new Locale(localeName).toString();
-
-            final int idx = oldLocaleName.indexOf('-');
-            if (idx == -1) {
-                // no dash, oldLocaleName is lowercase, which is correct for the language tag
-                JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS.put(oldLocaleName, oid);
-            } else if (oldLocaleName.equalsIgnoreCase(localeName)) {
-                // fast path to avoid the string computation in the else clause
-                JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS.put(localeName, oid);
-            } else {
-                // Old locale is different from locale and there are country, and/or variants.
-                // Ensure the country and variants are uppercase as in LOCALE_NAMES_TO_OIDS
-                // to avoid problems during matching rules initialization.
-                // e.g. locale name "zh-SG" is converted to "zh-sg" in old locale name
-                final StringBuilder sb = new StringBuilder();
-                sb.append(oldLocaleName, 0, idx + 1)
-                    .append(oldLocaleName.substring(idx + 1, oldLocaleName.length()).toUpperCase(Locale.ENGLISH));
-                JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS.put(sb.toString(), oid);
-            }
-        }
-    }
+    public static final Map<String, String> JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS =
+            CoreSchemaSupportedLocales.getJvmSupportedLocaleNamesToOids();
 
     static {
         final SchemaBuilder builder = new SchemaBuilder("Core Schema");
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaSupportedLocales.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaSupportedLocales.java
new file mode 100644
index 0000000..42f9533
--- /dev/null
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaSupportedLocales.java
@@ -0,0 +1,260 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Copyright 2015 ForgeRock AS.
+ */
+
+package org.forgerock.opendj.ldap.schema;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Provides a map of supported locale tags to OIDs.
+ */
+public final class CoreSchemaSupportedLocales {
+    /**
+     * Returns the unmodifiable map of JVM supported locale tags to OIDs.
+     * @return The unmodifiable map of JVM supported locale tags to OIDs.
+     */
+    public static Map<String, String> getJvmSupportedLocaleNamesToOids() {
+        return Collections.unmodifiableMap(JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS);
+    }
+
+    /**
+     * Provides the oid associated to each locale, for the registration of collation matching rules.
+     * <p>
+     * To add support for a new locale to collation matching rules, add its name as key and the corresponding oid as
+     * value.
+     */
+    private static final Map<String, String> LOCALE_NAMES_TO_OIDS = new HashMap<String, String>();
+
+    /**
+     * Same as {@link CoreSchemaSupportedLocales#LOCALE_NAMES_TO_OIDS}, but it contains the old locale names
+     * that will be used for the registration of collation matching rules.
+     * It is automatically populated on static initialization of current class.
+     * It allows the initialization process to complete when newer locales are referenced by config.ldif,
+     * but the JVM only works with the old locale names.
+     * @see CoreSchemaSupportedLocales#LOCALE_NAMES_TO_OIDS
+     */
+    private static final Map<String, String> JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS = new HashMap<String, String>();
+
+    static {
+        LOCALE_NAMES_TO_OIDS.put("af", "1.3.6.1.4.1.42.2.27.9.4.1.1");
+        LOCALE_NAMES_TO_OIDS.put("am", "1.3.6.1.4.1.42.2.27.9.4.2.1");
+        LOCALE_NAMES_TO_OIDS.put("ar", "1.3.6.1.4.1.42.2.27.9.4.3.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-AE", "1.3.6.1.4.1.42.2.27.9.4.4.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-BH", "1.3.6.1.4.1.42.2.27.9.4.5.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-DZ", "1.3.6.1.4.1.42.2.27.9.4.6.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-EG", "1.3.6.1.4.1.42.2.27.9.4.7.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-IN", "1.3.6.1.4.1.42.2.27.9.4.8.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-IQ", "1.3.6.1.4.1.42.2.27.9.4.9.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-JO", "1.3.6.1.4.1.42.2.27.9.4.10.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-KW", "1.3.6.1.4.1.42.2.27.9.4.11.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-LB", "1.3.6.1.4.1.42.2.27.9.4.12.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-LY", "1.3.6.1.4.1.42.2.27.9.4.13.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-MA", "1.3.6.1.4.1.42.2.27.9.4.14.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-OM", "1.3.6.1.4.1.42.2.27.9.4.15.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-QA", "1.3.6.1.4.1.42.2.27.9.4.16.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-SA", "1.3.6.1.4.1.42.2.27.9.4.17.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-SD", "1.3.6.1.4.1.42.2.27.9.4.18.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-SY", "1.3.6.1.4.1.42.2.27.9.4.19.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-TN", "1.3.6.1.4.1.42.2.27.9.4.20.1");
+        LOCALE_NAMES_TO_OIDS.put("ar-YE", "1.3.6.1.4.1.42.2.27.9.4.21.1");
+        LOCALE_NAMES_TO_OIDS.put("be", "1.3.6.1.4.1.42.2.27.9.4.22.1");
+        LOCALE_NAMES_TO_OIDS.put("bg", "1.3.6.1.4.1.42.2.27.9.4.23.1");
+        LOCALE_NAMES_TO_OIDS.put("bn", "1.3.6.1.4.1.42.2.27.9.4.24.1");
+        LOCALE_NAMES_TO_OIDS.put("ca", "1.3.6.1.4.1.42.2.27.9.4.25.1");
+        LOCALE_NAMES_TO_OIDS.put("cs", "1.3.6.1.4.1.42.2.27.9.4.26.1");
+        LOCALE_NAMES_TO_OIDS.put("da", "1.3.6.1.4.1.42.2.27.9.4.27.1");
+        LOCALE_NAMES_TO_OIDS.put("de", "1.3.6.1.4.1.42.2.27.9.4.28.1");
+        LOCALE_NAMES_TO_OIDS.put("de-DE", "1.3.6.1.4.1.42.2.27.9.4.28.1");
+        LOCALE_NAMES_TO_OIDS.put("de-AT", "1.3.6.1.4.1.42.2.27.9.4.29.1");
+        LOCALE_NAMES_TO_OIDS.put("de-BE", "1.3.6.1.4.1.42.2.27.9.4.30.1");
+        LOCALE_NAMES_TO_OIDS.put("de-CH", "1.3.6.1.4.1.42.2.27.9.4.31.1");
+        LOCALE_NAMES_TO_OIDS.put("de-LU", "1.3.6.1.4.1.42.2.27.9.4.32.1");
+        LOCALE_NAMES_TO_OIDS.put("el", "1.3.6.1.4.1.42.2.27.9.4.33.1");
+        LOCALE_NAMES_TO_OIDS.put("en", "1.3.6.1.4.1.42.2.27.9.4.34.1");
+        LOCALE_NAMES_TO_OIDS.put("en-US", "1.3.6.1.4.1.42.2.27.9.4.34.1");
+        LOCALE_NAMES_TO_OIDS.put("en-AU", "1.3.6.1.4.1.42.2.27.9.4.35.1");
+        LOCALE_NAMES_TO_OIDS.put("en-CA", "1.3.6.1.4.1.42.2.27.9.4.36.1");
+        LOCALE_NAMES_TO_OIDS.put("en-GB", "1.3.6.1.4.1.42.2.27.9.4.37.1");
+        LOCALE_NAMES_TO_OIDS.put("en-HK", "1.3.6.1.4.1.42.2.27.9.4.38.1");
+        LOCALE_NAMES_TO_OIDS.put("en-IE", "1.3.6.1.4.1.42.2.27.9.4.39.1");
+        LOCALE_NAMES_TO_OIDS.put("en-IN", "1.3.6.1.4.1.42.2.27.9.4.40.1");
+        LOCALE_NAMES_TO_OIDS.put("en-MT", "1.3.6.1.4.1.42.2.27.9.4.41.1");
+        LOCALE_NAMES_TO_OIDS.put("en-NZ", "1.3.6.1.4.1.42.2.27.9.4.42.1");
+        LOCALE_NAMES_TO_OIDS.put("en-PH", "1.3.6.1.4.1.42.2.27.9.4.43.1");
+        LOCALE_NAMES_TO_OIDS.put("en-SG", "1.3.6.1.4.1.42.2.27.9.4.44.1");
+        LOCALE_NAMES_TO_OIDS.put("en-VI", "1.3.6.1.4.1.42.2.27.9.4.45.1");
+        LOCALE_NAMES_TO_OIDS.put("en-ZA", "1.3.6.1.4.1.42.2.27.9.4.46.1");
+        LOCALE_NAMES_TO_OIDS.put("en-ZW", "1.3.6.1.4.1.42.2.27.9.4.47.1");
+        LOCALE_NAMES_TO_OIDS.put("eo", "1.3.6.1.4.1.42.2.27.9.4.48.1");
+        LOCALE_NAMES_TO_OIDS.put("es", "1.3.6.1.4.1.42.2.27.9.4.49.1");
+        LOCALE_NAMES_TO_OIDS.put("es-ES", "1.3.6.1.4.1.42.2.27.9.4.49.1");
+        LOCALE_NAMES_TO_OIDS.put("es-AR", "1.3.6.1.4.1.42.2.27.9.4.50.1");
+        LOCALE_NAMES_TO_OIDS.put("es-BO", "1.3.6.1.4.1.42.2.27.9.4.51.1");
+        LOCALE_NAMES_TO_OIDS.put("es-CL", "1.3.6.1.4.1.42.2.27.9.4.52.1");
+        LOCALE_NAMES_TO_OIDS.put("es-CO", "1.3.6.1.4.1.42.2.27.9.4.53.1");
+        LOCALE_NAMES_TO_OIDS.put("es-CR", "1.3.6.1.4.1.42.2.27.9.4.54.1");
+        LOCALE_NAMES_TO_OIDS.put("es-DO", "1.3.6.1.4.1.42.2.27.9.4.55.1");
+        LOCALE_NAMES_TO_OIDS.put("es-EC", "1.3.6.1.4.1.42.2.27.9.4.56.1");
+        LOCALE_NAMES_TO_OIDS.put("es-GT", "1.3.6.1.4.1.42.2.27.9.4.57.1");
+        LOCALE_NAMES_TO_OIDS.put("es-HN", "1.3.6.1.4.1.42.2.27.9.4.58.1");
+        LOCALE_NAMES_TO_OIDS.put("es-MX", "1.3.6.1.4.1.42.2.27.9.4.59.1");
+        LOCALE_NAMES_TO_OIDS.put("es-NI", "1.3.6.1.4.1.42.2.27.9.4.60.1");
+        LOCALE_NAMES_TO_OIDS.put("es-PA", "1.3.6.1.4.1.42.2.27.9.4.61.1");
+        LOCALE_NAMES_TO_OIDS.put("es-PE", "1.3.6.1.4.1.42.2.27.9.4.62.1");
+        LOCALE_NAMES_TO_OIDS.put("es-PR", "1.3.6.1.4.1.42.2.27.9.4.63.1");
+        LOCALE_NAMES_TO_OIDS.put("es-PY", "1.3.6.1.4.1.42.2.27.9.4.64.1");
+        LOCALE_NAMES_TO_OIDS.put("es-SV", "1.3.6.1.4.1.42.2.27.9.4.65.1");
+        LOCALE_NAMES_TO_OIDS.put("es-US", "1.3.6.1.4.1.42.2.27.9.4.66.1");
+        LOCALE_NAMES_TO_OIDS.put("es-UY", "1.3.6.1.4.1.42.2.27.9.4.67.1");
+        LOCALE_NAMES_TO_OIDS.put("es-VE", "1.3.6.1.4.1.42.2.27.9.4.68.1");
+        LOCALE_NAMES_TO_OIDS.put("et", "1.3.6.1.4.1.42.2.27.9.4.69.1");
+        LOCALE_NAMES_TO_OIDS.put("eu", "1.3.6.1.4.1.42.2.27.9.4.70.1");
+        LOCALE_NAMES_TO_OIDS.put("fa", "1.3.6.1.4.1.42.2.27.9.4.71.1");
+        LOCALE_NAMES_TO_OIDS.put("fa-IN", "1.3.6.1.4.1.42.2.27.9.4.72.1");
+        LOCALE_NAMES_TO_OIDS.put("fa-IR", "1.3.6.1.4.1.42.2.27.9.4.73.1");
+        LOCALE_NAMES_TO_OIDS.put("fi", "1.3.6.1.4.1.42.2.27.9.4.74.1");
+        LOCALE_NAMES_TO_OIDS.put("fo", "1.3.6.1.4.1.42.2.27.9.4.75.1");
+        LOCALE_NAMES_TO_OIDS.put("fr", "1.3.6.1.4.1.42.2.27.9.4.76.1");
+        LOCALE_NAMES_TO_OIDS.put("fr-FR", "1.3.6.1.4.1.42.2.27.9.4.76.1");
+        LOCALE_NAMES_TO_OIDS.put("fr-BE", "1.3.6.1.4.1.42.2.27.9.4.77.1");
+        LOCALE_NAMES_TO_OIDS.put("fr-CA", "1.3.6.1.4.1.42.2.27.9.4.78.1");
+        LOCALE_NAMES_TO_OIDS.put("fr-CH", "1.3.6.1.4.1.42.2.27.9.4.79.1");
+        LOCALE_NAMES_TO_OIDS.put("fr-LU", "1.3.6.1.4.1.42.2.27.9.4.80.1");
+        LOCALE_NAMES_TO_OIDS.put("ga", "1.3.6.1.4.1.42.2.27.9.4.81.1");
+        LOCALE_NAMES_TO_OIDS.put("gl", "1.3.6.1.4.1.42.2.27.9.4.82.1");
+        LOCALE_NAMES_TO_OIDS.put("gu", "1.3.6.1.4.1.42.2.27.9.4.83.1");
+        LOCALE_NAMES_TO_OIDS.put("gv", "1.3.6.1.4.1.42.2.27.9.4.84.1");
+        LOCALE_NAMES_TO_OIDS.put("he", "1.3.6.1.4.1.42.2.27.9.4.85.1");
+        LOCALE_NAMES_TO_OIDS.put("hi", "1.3.6.1.4.1.42.2.27.9.4.86.1");
+        LOCALE_NAMES_TO_OIDS.put("hr", "1.3.6.1.4.1.42.2.27.9.4.87.1");
+        LOCALE_NAMES_TO_OIDS.put("hu", "1.3.6.1.4.1.42.2.27.9.4.88.1");
+        LOCALE_NAMES_TO_OIDS.put("hy", "1.3.6.1.4.1.42.2.27.9.4.89.1");
+        LOCALE_NAMES_TO_OIDS.put("id", "1.3.6.1.4.1.42.2.27.9.4.90.1");
+        LOCALE_NAMES_TO_OIDS.put("is", "1.3.6.1.4.1.42.2.27.9.4.91.1");
+        LOCALE_NAMES_TO_OIDS.put("it", "1.3.6.1.4.1.42.2.27.9.4.92.1");
+        LOCALE_NAMES_TO_OIDS.put("it-CH", "1.3.6.1.4.1.42.2.27.9.4.93.1");
+        LOCALE_NAMES_TO_OIDS.put("ja", "1.3.6.1.4.1.42.2.27.9.4.94.1");
+        LOCALE_NAMES_TO_OIDS.put("kl", "1.3.6.1.4.1.42.2.27.9.4.95.1");
+        LOCALE_NAMES_TO_OIDS.put("kn", "1.3.6.1.4.1.42.2.27.9.4.96.1");
+        LOCALE_NAMES_TO_OIDS.put("ko", "1.3.6.1.4.1.42.2.27.9.4.97.1");
+        LOCALE_NAMES_TO_OIDS.put("kok", "1.3.6.1.4.1.42.2.27.9.4.98.1");
+        LOCALE_NAMES_TO_OIDS.put("kw", "1.3.6.1.4.1.42.2.27.9.4.99.1");
+        LOCALE_NAMES_TO_OIDS.put("lt", "1.3.6.1.4.1.42.2.27.9.4.100.1");
+        LOCALE_NAMES_TO_OIDS.put("lv", "1.3.6.1.4.1.42.2.27.9.4.101.1");
+        LOCALE_NAMES_TO_OIDS.put("mk", "1.3.6.1.4.1.42.2.27.9.4.102.1");
+        LOCALE_NAMES_TO_OIDS.put("mr", "1.3.6.1.4.1.42.2.27.9.4.103.1");
+        LOCALE_NAMES_TO_OIDS.put("mt", "1.3.6.1.4.1.42.2.27.9.4.104.1");
+        LOCALE_NAMES_TO_OIDS.put("nl", "1.3.6.1.4.1.42.2.27.9.4.105.1");
+        LOCALE_NAMES_TO_OIDS.put("nl-NL", "1.3.6.1.4.1.42.2.27.9.4.105.1");
+        LOCALE_NAMES_TO_OIDS.put("nl-BE", "1.3.6.1.4.1.42.2.27.9.4.106.1");
+        LOCALE_NAMES_TO_OIDS.put("no", "1.3.6.1.4.1.42.2.27.9.4.107.1");
+        LOCALE_NAMES_TO_OIDS.put("no-NO", "1.3.6.1.4.1.42.2.27.9.4.107.1");
+        LOCALE_NAMES_TO_OIDS.put("no-NO-NY", "1.3.6.1.4.1.42.2.27.9.4.108.1");
+        LOCALE_NAMES_TO_OIDS.put("nn", "1.3.6.1.4.1.42.2.27.9.4.109.1");
+        LOCALE_NAMES_TO_OIDS.put("nb", "1.3.6.1.4.1.42.2.27.9.4.110.1");
+        LOCALE_NAMES_TO_OIDS.put("no-NO-B", "1.3.6.1.4.1.42.2.27.9.4.110.1");
+        LOCALE_NAMES_TO_OIDS.put("om", "1.3.6.1.4.1.42.2.27.9.4.111.1");
+        LOCALE_NAMES_TO_OIDS.put("om-ET", "1.3.6.1.4.1.42.2.27.9.4.112.1");
+        LOCALE_NAMES_TO_OIDS.put("om-KE", "1.3.6.1.4.1.42.2.27.9.4.113.1");
+        LOCALE_NAMES_TO_OIDS.put("pl", "1.3.6.1.4.1.42.2.27.9.4.114.1");
+        LOCALE_NAMES_TO_OIDS.put("pt", "1.3.6.1.4.1.42.2.27.9.4.115.1");
+        LOCALE_NAMES_TO_OIDS.put("pt-PT", "1.3.6.1.4.1.42.2.27.9.4.115.1");
+        LOCALE_NAMES_TO_OIDS.put("pt-BR", "1.3.6.1.4.1.42.2.27.9.4.116.1");
+        LOCALE_NAMES_TO_OIDS.put("ro", "1.3.6.1.4.1.42.2.27.9.4.117.1");
+        LOCALE_NAMES_TO_OIDS.put("ru", "1.3.6.1.4.1.42.2.27.9.4.118.1");
+        LOCALE_NAMES_TO_OIDS.put("ru-RU", "1.3.6.1.4.1.42.2.27.9.4.118.1");
+        LOCALE_NAMES_TO_OIDS.put("ru-UA", "1.3.6.1.4.1.42.2.27.9.4.119.1");
+        LOCALE_NAMES_TO_OIDS.put("sh", "1.3.6.1.4.1.42.2.27.9.4.120.1");
+        LOCALE_NAMES_TO_OIDS.put("sk", "1.3.6.1.4.1.42.2.27.9.4.121.1");
+        LOCALE_NAMES_TO_OIDS.put("sl", "1.3.6.1.4.1.42.2.27.9.4.122.1");
+        LOCALE_NAMES_TO_OIDS.put("so", "1.3.6.1.4.1.42.2.27.9.4.123.1");
+        LOCALE_NAMES_TO_OIDS.put("so-SO", "1.3.6.1.4.1.42.2.27.9.4.123.1");
+        LOCALE_NAMES_TO_OIDS.put("so-DJ", "1.3.6.1.4.1.42.2.27.9.4.124.1");
+        LOCALE_NAMES_TO_OIDS.put("so-ET", "1.3.6.1.4.1.42.2.27.9.4.125.1");
+        LOCALE_NAMES_TO_OIDS.put("so-KE", "1.3.6.1.4.1.42.2.27.9.4.126.1");
+        LOCALE_NAMES_TO_OIDS.put("sq", "1.3.6.1.4.1.42.2.27.9.4.127.1");
+        LOCALE_NAMES_TO_OIDS.put("sr", "1.3.6.1.4.1.42.2.27.9.4.128.1");
+        LOCALE_NAMES_TO_OIDS.put("sv", "1.3.6.1.4.1.42.2.27.9.4.129.1");
+        LOCALE_NAMES_TO_OIDS.put("sv-SE", "1.3.6.1.4.1.42.2.27.9.4.129.1");
+        LOCALE_NAMES_TO_OIDS.put("sv-FI", "1.3.6.1.4.1.42.2.27.9.4.130.1");
+        LOCALE_NAMES_TO_OIDS.put("sw", "1.3.6.1.4.1.42.2.27.9.4.131.1");
+        LOCALE_NAMES_TO_OIDS.put("sw-KE", "1.3.6.1.4.1.42.2.27.9.4.132.1");
+        LOCALE_NAMES_TO_OIDS.put("sw-TZ", "1.3.6.1.4.1.42.2.27.9.4.133.1");
+        LOCALE_NAMES_TO_OIDS.put("ta", "1 3  1.3.6.1.4.1.42.2.27.9.4.134.1");
+        LOCALE_NAMES_TO_OIDS.put("te", "1.3.6.1.4.1.42.2.27.9.4.135.1");
+        LOCALE_NAMES_TO_OIDS.put("th", "1.3.6.1.4.1.42.2.27.9.4.136.1");
+        LOCALE_NAMES_TO_OIDS.put("ti", "1.3.6.1.4.1.42.2.27.9.4.137.1");
+        LOCALE_NAMES_TO_OIDS.put("ti-ER", "1.3.6.1.4.1.42.2.27.9.4.138.1");
+        LOCALE_NAMES_TO_OIDS.put("ti-ET", "1.3.6.1.4.1.42.2.27.9.4.139.1");
+        LOCALE_NAMES_TO_OIDS.put("tr", "1.3.6.1.4.1.42.2.27.9.4.140.1");
+        LOCALE_NAMES_TO_OIDS.put("uk", "1.3.6.1.4.1.42.2.27.9.4.141.1");
+        LOCALE_NAMES_TO_OIDS.put("vi", "1.3.6.1.4.1.42.2.27.9.4.142.1");
+        LOCALE_NAMES_TO_OIDS.put("zh", "1.3.6.1.4.1.42.2.27.9.4.143.1");
+        LOCALE_NAMES_TO_OIDS.put("zh-CN", "1.3.6.1.4.1.42.2.27.9.4.144.1");
+        LOCALE_NAMES_TO_OIDS.put("zh-HK", "1.3.6.1.4.1.42.2.27.9.4.145.1");
+        LOCALE_NAMES_TO_OIDS.put("zh-MO", "1.3.6.1.4.1.42.2.27.9.4.146.1");
+        LOCALE_NAMES_TO_OIDS.put("zh-SG", "1.3.6.1.4.1.42.2.27.9.4.147.1");
+        LOCALE_NAMES_TO_OIDS.put("zh-TW", "1.3.6.1.4.1.42.2.27.9.4.148.1");
+
+        initializeJvmSupportedLocaleNamesToOids();
+    }
+
+    private static void initializeJvmSupportedLocaleNamesToOids() {
+        for (Map.Entry<String, String> entry : LOCALE_NAMES_TO_OIDS.entrySet()) {
+            final String localeName = entry.getKey();
+            final String oid = entry.getValue();
+            final String oldLocaleName = new Locale(localeName).toString();
+
+            final int idx = oldLocaleName.indexOf('-');
+            if (idx == -1) {
+                // no dash, oldLocaleName is lowercase, which is correct for the language tag
+                JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS.put(oldLocaleName, oid);
+            } else if (oldLocaleName.equalsIgnoreCase(localeName)) {
+                // fast path to avoid the string computation in the else clause
+                JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS.put(localeName, oid);
+            } else {
+                // Old locale is different from locale and there are country, and/or variants.
+                // Ensure the country and variants are uppercase as in LOCALE_NAMES_TO_OIDS
+                // to avoid problems during matching rules initialization.
+                // e.g. locale name "zh-SG" is converted to "zh-sg" in old locale name
+                final StringBuilder sb = new StringBuilder();
+                sb.append(oldLocaleName, 0, idx + 1)
+                        .append(oldLocaleName.substring(idx + 1, oldLocaleName.length()).toUpperCase(Locale.ENGLISH));
+                JVM_SUPPORTED_LOCALE_NAMES_TO_OIDS.put(sb.toString(), oid);
+            }
+        }
+    }
+
+    /**
+     * Prevents construction.
+     */
+    private CoreSchemaSupportedLocales() {
+        // Not used.
+    }
+}
diff --git a/opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties b/opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties
index 3afb767..b7a680f 100755
--- a/opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties
+++ b/opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties
@@ -1641,4 +1641,19 @@
 WARN_ATTR_INVALID_PARTIAL_TIME_ASSERTION_FORMAT=The provided \
  value "%s" could not be parsed as a valid assertion value because the \
  character '%c' is not allowed. The acceptable values are s (second), \
- m (minute), h (hour), D (date), M (month) and Y (year)
\ No newline at end of file
+ m (minute), h (hour), D (date), M (month) and Y (year)
+
+# Labels for generated documentation
+DOC_LOCALE_TAG=Code tag: %s
+DOC_LOCALE_OID=Collation order object identifier: %s
+DOC_LOCALE_SECTION_TITLE=Directory Support For Locales and Language Subtypes
+DOC_LOCALE_SECTION_INFO=OpenDJ software supports the following locales \
+  with their associated language and country codes \
+  and their collation order object identifiers. \
+  Locale support depends on the Java Virtual Machine used at run time. \
+  The following list reflects all supported locales.
+DOC_SUPPORTED_LOCALES_TITLE=Supported Locales
+DOC_SUPPORTED_LOCALES_INDEXTERM=Locales
+DOC_SUPPORTED_SUBTYPES_TITLE=Supported Language Subtypes
+DOC_SUPPORTED_SUBTYPES_INDEXTERM=Language subtypes
+DOC_LANGUAGE_SH=Serbo-Croatian
diff --git a/opendj-doc-plugin/pom.xml b/opendj-doc-plugin/pom.xml
new file mode 100644
index 0000000..d67b3dd
--- /dev/null
+++ b/opendj-doc-plugin/pom.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ! CDDL HEADER START
+  !
+  ! The contents of this file are subject to the terms of the
+  ! Common Development and Distribution License, Version 1.0 only
+  ! (the "License").  You may not use this file except in compliance
+  ! with the License.
+  !
+  ! You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+  ! or http://forgerock.org/license/CDDLv1.0.html.
+  ! See the License for the specific language governing permissions
+  ! and limitations under the License.
+  !
+  ! When distributing Covered Code, include this CDDL HEADER in each
+  ! file and include the License file at legal-notices/CDDLv1_0.txt.
+  ! If applicable, add the following below this CDDL HEADER, with the
+  ! fields enclosed by brackets "[]" replaced with your own identifying
+  ! information:
+  !      Portions Copyright [yyyy] [name of copyright owner]
+  !
+  ! CDDL HEADER END
+  !
+  !      Copyright 2015 ForgeRock AS.
+  !
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                             http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <artifactId>opendj-project</artifactId>
+    <groupId>org.forgerock.opendj</groupId>
+    <version>3.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>opendj-doc-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+
+  <name>OpenDJ Doc Helper Maven Plugin</name>
+  <description>
+   Helps to build generated documentation sources.
+  </description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.forgerock.opendj</groupId>
+      <artifactId>opendj-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.twdata.maven</groupId>
+      <artifactId>mojo-executor</artifactId>
+      <version>2.2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-annotations</artifactId>
+      <version>3.2</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/opendj-doc-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java b/opendj-doc-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java
new file mode 100644
index 0000000..71f5d22
--- /dev/null
+++ b/opendj-doc-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java
@@ -0,0 +1,220 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *      Copyright 2015 ForgeRock AS.
+ */
+package org.forgerock.opendj.maven.doc;
+
+import static com.forgerock.opendj.ldap.CoreMessages.*;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.forgerock.opendj.ldap.schema.CoreSchemaSupportedLocales;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+/**
+ * Generate schema-related reference documentation sources.
+ */
+@Mojo(name = "generate-schema-ref")
+public class GenerateSchemaDocMojo extends AbstractMojo {
+    /** The locale for which to generate the documentation. */
+    @Parameter(defaultValue = "en")
+    private String locale;
+
+    /** Output directory for source files. */
+    @Parameter(defaultValue = "${project.build.directory}/docbkx-sources/shared")
+    private File outputDirectory;
+
+    /**
+     * Writes schema reference documentation source files.
+     * @throws MojoExecutionException   Not used.
+     * @throws MojoFailureException     Failed to write a file.
+     */
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        final Locale currentLocale = Locale.forLanguageTag(locale);
+
+        final String localeReference = getLocalesAndSubTypesDocumentation(currentLocale);
+        final File localeReferenceFile = new File(outputDirectory, "sec-locales-subtypes.xml");
+        try {
+            createOutputDirectory();
+            writeStringToFile(localeReference, localeReferenceFile);
+        } catch (FileNotFoundException e) {
+            throw new MojoFailureException("Failed to write doc reference file.", e);
+        } catch (IOException e) {
+            throw new MojoExecutionException("Failed to create output directory");
+        }
+    }
+
+    /**
+     * Create the output directory if it does not exist.
+     * @throws IOException  Failed to create the directory.
+     */
+    private void createOutputDirectory() throws IOException {
+        if (outputDirectory != null && !outputDirectory.exists()) {
+            if (!outputDirectory.mkdirs()) {
+                throw new IOException("Failed to create output directory.");
+            }
+        }
+    }
+
+    /**
+     * Writes a string to a file.
+     * @param string    The string to write.
+     * @param file      The file to write to.
+     * @throws FileNotFoundException The file did not exist, or could not be created for writing.
+     */
+    private void writeStringToFile(final String string, final File file) throws FileNotFoundException {
+        PrintWriter printWriter = new PrintWriter(file);
+        printWriter.print(string);
+        printWriter.close();
+    }
+
+    private final Map<String, String> localeTagsToOids =
+            CoreSchemaSupportedLocales.getJvmSupportedLocaleNamesToOids();
+
+    /**
+     * Returns a DocBook XML VariableList element documenting supported locales.
+     * @param currentLocale The locale for which to generate the documentation.
+     * @return A DocBook XML VariableList element documenting supported locales.
+     */
+    private String getLocalesDocumentation(final Locale currentLocale) {
+        class LocaleDoc {
+            String tag;
+            String language;
+            String oid;
+        }
+
+        Map<String, LocaleDoc> locales = new HashMap<String, LocaleDoc>();
+        for (String tag : localeTagsToOids.keySet()) {
+            final Locale locale = Locale.forLanguageTag(tag);
+            final LocaleDoc localeDoc = new LocaleDoc();
+            localeDoc.tag = tag;
+            localeDoc.language = locale.getDisplayName(currentLocale);
+            localeDoc.oid = localeTagsToOids.get(tag);
+            if (!localeDoc.language.equals(localeDoc.tag)) {
+                // No display language so must not be supported in current JVM
+                locales.put(localeDoc.language, localeDoc);
+            } else {
+                if (localeDoc.tag.equals("sh")) {
+                    localeDoc.language = DOC_LANGUAGE_SH.get().toString(currentLocale);
+                    locales.put(localeDoc.language, localeDoc);
+                }
+            }
+        }
+        if (locales.isEmpty()) {
+            return "";
+        }
+
+        final String eol = System.getProperty("line.separator");
+        final StringBuilder stringBuilder = new StringBuilder();
+        stringBuilder
+                .append(" <variablelist xml:id=\"supported-locales\">").append(eol)
+                .append("  <title>").append(DOC_SUPPORTED_LOCALES_TITLE.get()).append("</title>").append(eol)
+                .append("  <indexterm><primary>").append(DOC_SUPPORTED_LOCALES_INDEXTERM.get())
+                .append("</primary></indexterm>").append(eol);
+        Set<String> sortedLanguages = new TreeSet<String>(locales.keySet());
+        for (String language : sortedLanguages) {
+            LocaleDoc locale = locales.get(language);
+            stringBuilder
+                    .append("  <varlistentry>").append(eol)
+                    .append("   <term>").append(locale.language).append("</term>").append(eol)
+                    .append("   <listitem>").append(eol)
+                    .append("    <para>").append(DOC_LOCALE_TAG.get(locale.tag)).append("</para>").append(eol)
+                    .append("    <para>").append(DOC_LOCALE_OID.get(locale.oid)).append("</para>").append(eol)
+                    .append("   </listitem>").append(eol)
+                    .append("  </varlistentry>").append(eol);
+        }
+        stringBuilder.append(" </variablelist>").append(eol);
+        return stringBuilder.toString();
+    }
+
+    /**
+     * Returns a DocBook XML ItemizedList element documenting supported language subtypes.
+     * @param currentLocale The locale for which to generate the documentation.
+     * @return A DocBook XML ItemizedList element documenting supported language subtypes.
+     */
+    private String getSubTypesDocumentation(final Locale currentLocale) {
+        Map<String, String> map = new TreeMap<String, String>();
+        for (String tag : localeTagsToOids.keySet()) {
+            int idx = tag.indexOf('-');
+            if (idx == -1) {
+                final Locale locale = Locale.forLanguageTag(tag);
+                final String language = locale.getDisplayName(currentLocale);
+                if (!language.equals(tag)) {
+                    map.put(language, tag);
+                } else {
+                    if (tag.equals("sh")) {
+                        map.put(DOC_LANGUAGE_SH.get().toString(currentLocale), tag);
+                    }
+                }
+            }
+        }
+
+        final String eol = System.getProperty("line.separator");
+        final StringBuilder stringBuilder = new StringBuilder();
+        stringBuilder.append(" <itemizedlist xml:id=\"supported-language-subtypes\">").append(eol)
+                .append("  <title>").append(DOC_SUPPORTED_SUBTYPES_TITLE.get()).append("</title>").append(eol)
+                .append("  <indexterm><primary>").append(DOC_SUPPORTED_SUBTYPES_INDEXTERM.get())
+                .append("</primary></indexterm>").append(eol);
+        for (String language: map.keySet()) {
+            stringBuilder
+                    .append("  <listitem><para>").append(language).append(", ")
+                    .append(map.get(language)).append("</para></listitem>").append(eol);
+        }
+        stringBuilder.append(" </itemizedlist>").append(eol);
+        return stringBuilder.toString();
+    }
+
+    /**
+     * Returns a DocBook XML Section element documenting supported locales and language subtypes.
+     * @param currentLocale The locale for which to generate the documentation.
+     * @return A DocBook XML Section element documenting supported locales and language subtypes.
+     */
+    private String getLocalesAndSubTypesDocumentation(final Locale currentLocale) {
+        final String eol = System.getProperty("line.separator");
+        return "<section xml:id=\"sec-locales-subtypes\" "
+                + "xmlns=\"http://docbook.org/ns/docbook\" version=\"5.0\" "
+                + "xml:lang=\"" + currentLocale.toLanguageTag() + "\" "
+                + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
+                + "xsi:schemaLocation=\"http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd\""
+                + ">" + eol
+                + " <title>" + DOC_LOCALE_SECTION_TITLE.get() + "</title>" + eol
+                + " <para>" + DOC_LOCALE_SECTION_INFO.get() + "</para>" + eol
+                + getLocalesDocumentation(currentLocale) + eol
+                + getSubTypesDocumentation(currentLocale) + eol
+                + "</section>";
+    }
+}
diff --git a/opendj-doc-plugin/src/main/java/org/forgerock/opendj/maven/doc/package-info.java b/opendj-doc-plugin/src/main/java/org/forgerock/opendj/maven/doc/package-info.java
new file mode 100644
index 0000000..8b43023
--- /dev/null
+++ b/opendj-doc-plugin/src/main/java/org/forgerock/opendj/maven/doc/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *      Copyright 2015 ForgeRock AS.
+ */
+
+/**
+ * Helps to build generated documentation sources.
+ */
+package org.forgerock.opendj.maven.doc;
diff --git a/opendj-server-legacy/pom.xml b/opendj-server-legacy/pom.xml
index f98bf65..2581f37 100644
--- a/opendj-server-legacy/pom.xml
+++ b/opendj-server-legacy/pom.xml
@@ -358,8 +358,6 @@
         </executions>
       </plugin>
 
-
-
       <plugin>
         <artifactId>maven-resources-plugin</artifactId>
         <executions>
@@ -1134,7 +1132,22 @@
         </executions>
       </plugin>
 
-      <!-- Generate documentation (guide) -->
+      <!-- Generate documentation -->
+      <plugin>
+        <groupId>org.forgerock.opendj</groupId>
+        <artifactId>opendj-doc-plugin</artifactId>
+        <version>${project.version}</version>
+        <executions>
+          <execution>
+            <id>generate-schema-reference-doc</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>generate-schema-ref</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.forgerock.commons</groupId>
         <artifactId>forgerock-doc-maven-plugin</artifactId>
diff --git a/opendj-server-legacy/src/main/docbkx/reference/appendix-l10n.xml b/opendj-server-legacy/src/main/docbkx/reference/appendix-l10n.xml
index 28345f2..10caa10 100644
--- a/opendj-server-legacy/src/main/docbkx/reference/appendix-l10n.xml
+++ b/opendj-server-legacy/src/main/docbkx/reference/appendix-l10n.xml
@@ -20,15 +20,15 @@
   !
   ! CCPL HEADER END
   !
-  !      Copyright 2011-2014 ForgeRock AS
+  !      Copyright 2011-2015 ForgeRock AS.
   !
 -->
 <appendix xml:id='appendix-l10n'
- xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xsi:schemaLocation='http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd'
- xmlns:xlink='http://www.w3.org/1999/xlink'
- xmlns:xinclude='http://www.w3.org/2001/XInclude'>
+          xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
+          xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+          xsi:schemaLocation='http://docbook.org/ns/docbook
+                              http://docbook.org/xml/5.0/xsd/docbook.xsd'
+          xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <title>Localization</title>
 
  <para>OpenDJ software stores data in UTF-8 format. It enables you to store
@@ -57,787 +57,9 @@
   </note>
  </section>
 
- <section xml:id="supported-locales">
-  <title>Directory Support For Locales and Language Subtypes</title>
-  <indexterm><primary>Locales</primary></indexterm>
-  <para>OpenDJ software supports the following locales, with their
-  associated language and country codes, and their collation order
-  object identifiers. Locale support depends on the underlying Java
-  Virtual Machine.</para>
-
-  <variablelist>
-   <varlistentry>
-    <term>Albanian</term>
-    <listitem>
-     <para>Code tag: sq</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.127.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic</term>
-    <listitem>
-     <para>Code tag: ar</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.3.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Algeria)</term>
-    <listitem>
-     <para>Code tag: ar-DZ</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.6.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Bahrain)</term>
-    <listitem>
-     <para>Code tag: ar-BH</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.5.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Egypt)</term>
-    <listitem>
-     <para>Code tag: ar-EG</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.7.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Iraq)</term>
-    <listitem>
-     <para>Code tag: ar-IQ</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.9.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Jordan)</term>
-    <listitem>
-     <para>Code tag: ar-JO</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.10.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Kuwait)</term>
-    <listitem>
-     <para>Code tag: ar-KW</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.11.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Lebanon)</term>
-    <listitem>
-     <para>Code tag: ar-LB</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.12.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Libya)</term>
-    <listitem>
-     <para>Code tag: ar-LY</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.13.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Morocco)</term>
-    <listitem>
-     <para>Code tag: ar-MA</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.14.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Oman)</term>
-    <listitem>
-     <para>Code tag: ar-OM</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.15.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Qatar)</term>
-    <listitem>
-     <para>Code tag: ar-QA</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.16.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Saudi Arabia)</term>
-    <listitem>
-     <para>Code tag: ar-SA</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.17.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Sudan)</term>
-    <listitem>
-     <para>Code tag: ar-SD</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.18.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Syria)</term>
-    <listitem>
-     <para>Code tag: ar-SY</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.19.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Tunisia)</term>
-    <listitem>
-     <para>Code tag: ar-TN</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.20.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (United Arab Emirates)</term>
-    <listitem>
-     <para>Code tag: ar-AE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.4.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Arabic (Yemen)</term>
-    <listitem>
-     <para>Code tag: ar-YE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.21.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Belarusian</term>
-    <listitem>
-     <para>Code tag: be</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.22.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Bulgarian</term>
-    <listitem>
-     <para>Code tag: bg</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.23.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Catalan</term>
-    <listitem>
-     <para>Code tag: ca</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.25.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Chinese</term>
-    <listitem>
-     <para>Code tag: zh</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.143.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Chinese (Simplified) (China)</term>
-    <listitem>
-     <para>Code tag: zh-CN</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.144.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Chinese (Traditional) (Hong Kong)</term>
-    <listitem>
-     <para>Code tag: zh-HK</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.145.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Chinese (Traditional) (Taiwan)</term>
-    <listitem>
-     <para>Code tag: zh-TW</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.148.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Croatian</term>
-    <listitem>
-     <para>Code tag: hr</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.87.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Czech</term>
-    <listitem>
-     <para>Code tag: cs</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.26.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Danish</term>
-    <listitem>
-     <para>Code tag: da</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.27.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Dutch</term>
-    <listitem>
-     <para>Code tag: nl</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.105.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Dutch (Belgium)</term>
-    <listitem>
-     <para>Code tag: nl-BE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.106.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Dutch (Netherlands)</term>
-    <listitem>
-     <para>Code tag: nl-NL</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.105.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English</term>
-    <listitem>
-     <para>Code tag: en</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.34.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English (Australia)</term>
-    <listitem>
-     <para>Code tag: en-AU</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.35.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English (Canada)</term>
-    <listitem>
-     <para>Code tag: en-CA</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.36.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English (Great Britain)</term>
-    <listitem>
-     <para>Code tag: en-GB</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.37.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English (India)</term>
-    <listitem>
-     <para>Code tag: en-IN</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.40.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English (Ireland)</term>
-    <listitem>
-     <para>Code tag: en-IE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.39.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English (New Zealand)</term>
-    <listitem>
-     <para>Code tag: en-NZ</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.42.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English (South Africa)</term>
-    <listitem>
-     <para>Code tag: en-ZA</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.46.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>English (United States)</term>
-    <listitem>
-     <para>Code tag: en-US</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.34.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Estonian</term>
-    <listitem>
-     <para>Code tag: et</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.69.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Finnish</term>
-    <listitem>
-     <para>Code tag: fi</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.74.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>French</term>
-    <listitem>
-     <para>Code tag: fr</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.76.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>French (Belgium)</term>
-    <listitem>
-     <para>Code tag: fr-BE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.77.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>French (Canada)</term>
-    <listitem>
-     <para>Code tag: fr-CA</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.78.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>French (France)</term>
-    <listitem>
-     <para>Code tag: fr-FR</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.76.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>French (Luxembourg)</term>
-    <listitem>
-     <para>Code tag: fr-LU</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.80.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>French (Switzerland)</term>
-    <listitem>
-     <para>Code tag: fr-CH</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.79.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>German</term>
-    <listitem>
-     <para>Code tag: de</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.28.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>German (Austria)</term>
-    <listitem>
-     <para>Code tag: de-AT</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.29.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>German (Germany)</term>
-    <listitem>
-     <para>Code tag: de-DE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.28.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>German (Luxembourg)</term>
-    <listitem>
-     <para>Code tag: de-LU</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.32.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>German (Switzerland)</term>
-    <listitem>
-     <para>Code tag: de-CH</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.31.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Greek</term>
-    <listitem>
-     <para>Code tag: el</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.33.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Hebrew</term>
-    <listitem>
-     <para>Code tag: he</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.85.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Hungarian</term>
-    <listitem>
-     <para>Code tag: hu</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.88.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Icelandic</term>
-    <listitem>
-     <para>Code tag: is</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.91.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Italian</term>
-    <listitem>
-     <para>Code tag: it</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.92.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Italian (Switzerland)</term>
-    <listitem>
-     <para>Code tag: it-CH</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.93.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Japanese</term>
-    <listitem>
-     <para>Code tag: ja</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.94.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Korean</term>
-    <listitem>
-     <para>Code tag: ko</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.97.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Latvian</term>
-    <listitem>
-     <para>Code tag: lv</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.101.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Lithuanian</term>
-    <listitem>
-     <para>Code tag: lt</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.100.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Macedonian</term>
-    <listitem>
-     <para>Code tag: mk</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.102.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Norwegian</term>
-    <listitem>
-     <para>Code tag: no</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.107.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Norwegian (Bokmål)</term>
-    <listitem>
-     <para>Code tag: no-NO</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.107.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Norwegian (Nynorsk)</term>
-    <listitem>
-     <para>Code tag: no-NO-NY</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.108.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Polish</term>
-    <listitem>
-     <para>Code tag: pl</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.114.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Portuguese</term>
-    <listitem>
-     <para>Code tag: pt</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.115.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Portuguese (Brazil)</term>
-    <listitem>
-     <para>Code tag: pt-BR</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.116.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Portuguese (Portugal)</term>
-    <listitem>
-     <para>Code tag: pt-PT</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.115.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Romanian</term>
-    <listitem>
-     <para>Code tag: ro</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.117.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Russian</term>
-    <listitem>
-     <para>Code tag: ru</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.118.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Russian (Russia)</term>
-    <listitem>
-     <para>Code tag: ru-RU</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.118.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Serbian</term>
-    <listitem>
-     <para>Code tag: sr</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.128.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Slovak</term>
-    <listitem>
-     <para>Code tag: sk</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.121.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Slovenian</term>
-    <listitem>
-     <para>Code tag: sl</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.122.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish</term>
-    <listitem>
-     <para>Code tag: es</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.49.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Argentina)</term>
-    <listitem>
-     <para>Code tag: es-AR</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.50.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Bolivia)</term>
-    <listitem>
-     <para>Code tag: es-BO</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.51.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Chile)</term>
-    <listitem>
-     <para>Code tag: es-CL</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.52.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Colombia)</term>
-    <listitem>
-     <para>Code tag: es-CO</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.53.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Costa Rica)</term>
-    <listitem>
-     <para>Code tag: es-CR</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.54.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Dominican Republic)</term>
-    <listitem>
-     <para>Code tag: es-DO</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.55.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Ecuador)</term>
-    <listitem>
-     <para>Code tag: es-EC</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.56.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (El Salvador)</term>
-    <listitem>
-     <para>Code tag: es-SV</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.65.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Guatemala)</term>
-    <listitem>
-     <para>Code tag: es-GT</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.57.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Honduras)</term>
-    <listitem>
-     <para>Code tag: es-HN</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.58.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Mexico)</term>
-    <listitem>
-     <para>Code tag: es-MX</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.59.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Nicaragua)</term>
-    <listitem>
-     <para>Code tag: es-NI</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.60.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Panama)</term>
-    <listitem>
-     <para>Code tag: es-PA</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.61.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Paraguay)</term>
-    <listitem>
-     <para>Code tag: es-PY</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.64.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Peru)</term>
-    <listitem>
-     <para>Code tag: es-PE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.62.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Puerto Rico)</term>
-    <listitem>
-     <para>Code tag: es-PR</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.63.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Spain)</term>
-    <listitem>
-     <para>Code tag: es-ES</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.49.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Uruguay)</term>
-    <listitem>
-     <para>Code tag: es-UY</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.67.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Spanish (Venezuela)</term>
-    <listitem>
-     <para>Code tag: es-VE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.68.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Swedish</term>
-    <listitem>
-     <para>Code tag: sv</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.129.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Swedish (Sweden)</term>
-    <listitem>
-     <para>Code tag: sv-SE</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.129.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Thai</term>
-    <listitem>
-     <para>Code tag: th</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.136.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Turkish</term>
-    <listitem>
-     <para>Code tag: tr</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.140.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Ukranian</term>
-    <listitem>
-     <para>Code tag: uk</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.141.1</para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>Vietnamese</term>
-    <listitem>
-     <para>Code tag: vi</para>
-     <para>Collation order object identifier: 1.3.6.1.4.1.42.2.27.9.4.142.1</para>
-    </listitem>
-   </varlistentry>
-  </variablelist>
-
-  <para>OpenDJ software supports the following language subtypes.</para>
-  <indexterm><primary>Language subtypes</primary></indexterm>
-  <itemizedlist xml:id="supported-language-subtypes">
-   <listitem><para>Albanian, sq</para></listitem>
-   <listitem><para>Arabic, ar</para></listitem>
-   <listitem><para>Belarusian, be</para></listitem>
-   <listitem><para>Bulgarian, bg</para></listitem>
-   <listitem><para>Catalan, ca</para></listitem>
-   <listitem><para>Chinese, zh</para></listitem>
-   <listitem><para>Croatian, hr</para></listitem>
-   <listitem><para>Czech, cs</para></listitem>
-   <listitem><para>Danish, da</para></listitem>
-   <listitem><para>Dutch, nl</para></listitem>
-   <listitem><para>English, en</para></listitem>
-   <listitem><para>Estonian, et</para></listitem>
-   <listitem><para>Finnish, fi</para></listitem>
-   <listitem><para>French, fr</para></listitem>
-   <listitem><para>German, de</para></listitem>
-   <listitem><para>Greek, el</para></listitem>
-   <listitem><para>Hebrew, he</para></listitem>
-   <listitem><para>Hungarian, hu</para></listitem>
-   <listitem><para>Icelandic, is</para></listitem>
-   <listitem><para>Italian, it</para></listitem>
-   <listitem><para>Japanese, ja</para></listitem>
-   <listitem><para>Korean, ko</para></listitem>
-   <listitem><para>Latvian, lv</para></listitem>
-   <listitem><para>Lithuanian, lt</para></listitem>
-   <listitem><para>Macedonian, mk</para></listitem>
-   <listitem><para>Norwegian, no</para></listitem>
-   <listitem><para>Polish, pl</para></listitem>
-   <listitem><para>Portuguese, pt</para></listitem>
-   <listitem><para>Romanian, ro</para></listitem>
-   <listitem><para>Russian, ru</para></listitem>
-   <listitem><para>Serbian, sr</para></listitem>
-   <listitem><para>Slovak, sk</para></listitem>
-   <listitem><para>Slovenian, sl</para></listitem>
-   <listitem><para>Spanish, es</para></listitem>
-   <listitem><para>Swedish, sv</para></listitem>
-   <listitem><para>Thai, th</para></listitem>
-   <listitem><para>Turkish, tr</para></listitem>
-   <listitem><para>Ukranian, uk</para></listitem>
-   <listitem><para>Vietnamese, vi</para></listitem>
-  </itemizedlist>
- </section>
+ <xinclude:include href="../shared/sec-locales-subtypes.xml">
+  <xinclude:fallback>
+   <!-- Failed to include section -->
+  </xinclude:fallback>
+ </xinclude:include>
 </appendix>
diff --git a/pom.xml b/pom.xml
index f5ef381..3d36d01 100644
--- a/pom.xml
+++ b/pom.xml
@@ -93,6 +93,7 @@
     <module>opendj-maven-plugin</module>
     <module>opendj-copyright-maven-plugin</module>
     <module>opendj-svn-property-check-maven-plugin</module>
+    <module>opendj-doc-plugin</module>
     <module>opendj-core</module>
     <module>opendj-grizzly</module>
     <module>opendj-config</module>

--
Gitblit v1.10.0