[Yanel-commits] rev 45921 - public/yanel/trunk/src/resources/navigation/src/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Wed Dec 9 10:08:28 CET 2009


Author: michi
Date: 2009-12-09 10:08:27 +0100 (Wed, 09 Dec 2009)
New Revision: 45921

Modified:
   public/yanel/trunk/src/resources/navigation/src/java/org/wyona/yanel/impl/resources/NavigationResource.java
Log:
use i18n version 3 implementation such that also realm specific and resource specific i18n is being used

Modified: public/yanel/trunk/src/resources/navigation/src/java/org/wyona/yanel/impl/resources/NavigationResource.java
===================================================================
--- public/yanel/trunk/src/resources/navigation/src/java/org/wyona/yanel/impl/resources/NavigationResource.java	2009-12-09 08:56:36 UTC (rev 45920)
+++ public/yanel/trunk/src/resources/navigation/src/java/org/wyona/yanel/impl/resources/NavigationResource.java	2009-12-09 09:08:27 UTC (rev 45921)
@@ -26,7 +26,8 @@
 
 import org.wyona.yanel.core.serialization.SerializerFactory;
 import org.wyona.yanel.core.source.ResourceResolver;
-import org.wyona.yanel.core.transformation.I18nTransformer2;
+import org.wyona.yanel.core.source.SourceResolver;
+import org.wyona.yanel.core.transformation.I18nTransformer3;
 import org.wyona.yanel.core.transformation.XIncludeTransformer;
 import org.wyona.yanel.core.util.PathUtil;
 
@@ -48,6 +49,7 @@
 import java.io.OutputStream;
 import java.io.Reader;
 import java.io.Writer;
+import java.util.ArrayList;
 
 import org.apache.log4j.Category;
 import org.apache.xml.resolver.tools.CatalogResolver;
@@ -177,8 +179,11 @@
                     xsltHandlers[i].getTransformer().setParameter("activePath", activePath);
                 }
                 
+                SourceResolver uriResolver = new SourceResolver(this);
+
                 // create i18n transformer:
-                I18nTransformer2 i18nTransformer = new I18nTransformer2("global", getLanguage(), getRealm().getDefaultLanguage());
+                I18nTransformer3 i18nTransformer = new I18nTransformer3(getI18NCatalogueNames(), getLanguage(), getRealm().getDefaultLanguage(), uriResolver);
+                //I18nTransformer3 i18nTransformer = new I18nTransformer3(getI18NCatalogueNames(), getRequestedLanguage(), getRealm().getDefaultLanguage(), uriResolver);
                 i18nTransformer.setEntityResolver(catalogResolver);
                 
                 // create xinclude transformer:
@@ -420,4 +425,28 @@
     public void setProperty(String name, Object value) {
         log.warn("Not implemented yet!");
     }
+
+    /**
+     * Gets the names of the i18n message catalogues used for the i18n transformation.
+     * Uses the following priorization:
+     * 1. rc config properties named 'i18n-catalogue'.
+     * 2. realm i18n-catalogue
+     * 3. 'global'
+     * @return i18n catalogue name
+     */
+    private String[] getI18NCatalogueNames() throws Exception {
+        ArrayList<String> catalogues = new ArrayList<String>();
+        String[] rcCatalogues = getResourceConfigProperties("i18n-catalogue");
+        if (rcCatalogues != null) {
+            for (int i = 0; i < rcCatalogues.length; i++) {
+                catalogues.add(rcCatalogues[i]);
+            }
+        }
+        String realmCatalogue = getRealm().getI18nCatalogue();
+        if (realmCatalogue != null) {
+            catalogues.add(realmCatalogue);
+        }
+        catalogues.add("global");
+        return catalogues.toArray(new String[catalogues.size()]);
+    }
 }



More information about the Yanel-commits mailing list