[Yanel-commits] rev 26416 - public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Tue Jul 31 14:43:29 CEST 2007


Author: michi
Date: 2007-07-31 14:43:29 +0200 (Tue, 31 Jul 2007)
New Revision: 26416

Modified:
   public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
Log:
languages fixed

Modified: public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java	2007-07-31 12:41:07 UTC (rev 26415)
+++ public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java	2007-07-31 12:43:29 UTC (rev 26416)
@@ -128,20 +128,20 @@
      * 
      */
     public View getView(Path path, String viewId) {
-        return getView(path, viewId, 0, 0, getRealm().getDefaultLanguage());
+        return getView(path, viewId, 0, 0);
     }
 
     /**
      * Generate view
      */
-    public View getView(Path path, String viewId, int idx, int id, String language) {
+    public View getView(Path path, String viewId, int idx, int id) {
         View nutchView = null;
         try {
             getNutchConfiguration();
 
             String show = getShowParameterValue();
             nutchView = new View();
-            nutchView.setInputStream(getInputStream(viewId, show, idx, id, language));
+            nutchView.setInputStream(getInputStream(viewId, show, idx, id));
 
             // Set Mime Type
             if(show.equals("cache")) {
@@ -197,7 +197,7 @@
         }
 
         searchTerm = request.getParameter("query");
-        return getView(new Path(request.getServletPath()), viewId, idx, id, getLanguage());
+        return getView(new Path(request.getServletPath()), viewId, idx, id);
     }
 
     /**
@@ -242,7 +242,8 @@
             log.error(e.getMessage(), e);
         }
         Element rootElement = document.getDocumentElement();
-        rootElement.setAttributeNS(NAME_SPACE, "language", getLanguage());
+        rootElement.setAttributeNS(NAME_SPACE, "localization-language", getRequestedLanguage());
+        rootElement.setAttributeNS(NAME_SPACE, "translation-language", getContentLanguage());
         rootElement.setAttributeNS(NAME_SPACE, "local-nutch-config-url", finalResource.toString());
         if (searchTerm != null && searchTerm.length() > 0) {
             Element queryElement = (Element) rootElement.appendChild(document.createElementNS(NAME_SPACE, "query"));
@@ -287,13 +288,13 @@
      * Generate response depending on show parameter
      * @param show Cache, Explain, Anchors and actual search results
      */
-    private InputStream getInputStream(String viewId, String show, int idx, int id, String language) throws Exception {
+    private InputStream getInputStream(String viewId, String show, int idx, int id) throws Exception {
         if(show.equals("cache")){
             return new StringBufferInputStream(getCachedContent(idx, id));
         } else if(show.equals("explain")) {
-            return createExplanationDocument4SearchResult(idx, id, searchTerm, language);
+            return createExplanationDocument4SearchResult(idx, id, searchTerm);
         } else if(show.equals("anchors")) {
-            return createAnchorsDocument4SearchResult(idx, id, searchTerm, language);
+            return createAnchorsDocument4SearchResult(idx, id, searchTerm);
         } else {
             return getSearchResults(viewId, searchTerm);
         }
@@ -303,7 +304,6 @@
      * Generate results page as XHTML
      * @param viewId View ID
      * @param searchTerm Search term
-     * @param language Language
      * @return InputStream
      */
     private InputStream getSearchResults(String viewId, String searchTerm) throws Exception {
@@ -318,18 +318,12 @@
                 File xsltFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile()
                         .getAbsolutePath(), "xslt" + File.separator + "result2xhtml.xsl");
                 Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
-                transformer.setParameter("yanel.path.name", PathUtil.getName(getPath()));
-                // TODO: Remove the trailing slash ...
-                transformer.setParameter("yanel.path", getRealm().getMountPoint() + getPath());
-                log.debug("Yanel Path: " + getRealm().getMountPoint() + getPath());
-                transformer.setParameter("yanel.back2context", PathUtil.backToContext(realm, getPath()));
-                log.debug("Back 2 context: " + PathUtil.backToContext(realm, getPath()));
-                transformer.setParameter("yarep.back2realm", PathUtil.backToRealm(getPath()));
-                log.debug("Back 2 realm: " + PathUtil.backToRealm(getPath()));
+                setParameters(transformer);
+
                 transformer.transform(new javax.xml.transform.dom.DOMSource(document), new StreamResult(byteArrayOutputStream));
+
                 InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
-                //log.error("DEBUG 1: " + getI18nResourceBundleName() + ", " + getLanguage() + ", " + getRealm().getDefaultLanguage());
-                I18nTransformer i18nTransformer = new I18nTransformer(getI18nResourceBundleName(), getLanguage(), getRealm().getDefaultLanguage());
+                I18nTransformer i18nTransformer = new I18nTransformer(getI18nResourceBundleName(), getContentLanguage(), getRealm().getDefaultLanguage());
                 SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
                 saxParser.parse(inputStream, i18nTransformer);
                 return applyGlobalXslIfExists(i18nTransformer.getInputStream(), searchTerm);
@@ -343,7 +337,6 @@
     /**
      * @param inputStream
      * @param searchTerm
-     * @param language
      * @return
      */
     private InputStream applyGlobalXslIfExists(InputStream inputStream, String searchTerm) {
@@ -362,25 +355,14 @@
 
                 TransformerHandler xsltHandler = tf.newTransformerHandler(streamSource);
                 Transformer transformer = xsltHandler.getTransformer();
-                transformer.setParameter("yanel.path.name", PathUtil.getName(getPath()));
-                transformer.setParameter("yanel.path", getPath().toString());
-                transformer.setParameter("yanel.back2context", PathUtil.backToContext(realm, getPath()));
-                transformer.setParameter("yarep.back2realm", PathUtil.backToRealm(getPath()));
-                transformer.setParameter("hitsPerPage", "" + hitsPerPage);
-                transformer.setParameter("totalHits", "" + totalHits);
-                transformer.setParameter("query", "" + searchTerm);
-                transformer.setParameter("start", "" + start);
-                transformer.setParameter("yanel.meta.language", getLanguage());
-                transformer.setParameter("show", getShowParameterValue());
+                setParameters(transformer);
 
                 // create xinclude transformer:
                 XIncludeTransformer xIncludeTransformer = new XIncludeTransformer();
                 ResourceResolver resolver = new ResourceResolver(this);
                 xIncludeTransformer.setResolver(resolver);
                 
-                // create i18n transformer:
-                //log.error("DEBUG 2: " + getI18nResourceBundleName() + ", " + getLanguage() + ", " + getRealm().getDefaultLanguage());
-                I18nTransformer2 i18nTransformer = new I18nTransformer2(getI18nResourceBundleName(), getLanguage(), getRealm().getDefaultLanguage());
+                I18nTransformer2 i18nTransformer = new I18nTransformer2(getI18nResourceBundleName(), getContentLanguage(), getRealm().getDefaultLanguage());
                 i18nTransformer.setEntityResolver(catalogResolver);
                 
                 // create serializer:
@@ -453,14 +435,13 @@
      * @param idx
      * @param id
      * @param searchTerm
-     * @param language
      * @return
      */
-    private InputStream createExplanationDocument4SearchResult(int idx, int id, String searchTerm, String language) {
+    private InputStream createExplanationDocument4SearchResult(int idx, int id, String searchTerm) {
         try {
             nutchBean = NutchBean.get(servletContext, configuration);
             Hit hit = new Hit(idx, id);
-            Query query = Query.parse(searchTerm, language, configuration);
+            Query query = Query.parse(searchTerm, getContentLanguage(), configuration);
             String content = "<html xmlns:xhtml=\"http://www.w3.org/1999/xhtml\" " +
                     "xmlns=\"http://www.w3.org/1999/xhtml\">" +
                     "<head><title><i18n:message key=\"scoreExplanation\"/>: " + searchTerm + "</title></head>" +
@@ -470,7 +451,7 @@
                     "<h3><i18n:message key=\"scoreForQuery\"/>" + query + "</h3>" + 
                     nutchBean.getExplanation(query, hit) + 
                     "</div></body></html>"; 
-            I18nTransformer i18nTransformer = new I18nTransformer(getI18nResourceBundleName(), language, getRealm().getDefaultLanguage());
+            I18nTransformer i18nTransformer = new I18nTransformer(getI18nResourceBundleName(), getContentLanguage(), getRealm().getDefaultLanguage());
             SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
             saxParser.parse(new StringBufferInputStream(content), i18nTransformer);
             return applyGlobalXslIfExists(i18nTransformer.getInputStream(), searchTerm);
@@ -485,10 +466,9 @@
      * @param idx
      * @param id
      * @param searchTerm
-     * @param language
      * @return
      */
-    private InputStream createAnchorsDocument4SearchResult(int idx, int id, String searchTerm, String language) {
+    private InputStream createAnchorsDocument4SearchResult(int idx, int id, String searchTerm) {
         try {
             nutchBean = NutchBean.get(servletContext, configuration);
             Hit hit = new Hit(idx, id);
@@ -510,7 +490,7 @@
             }
             content += "</div></body></html>"; 
             log.debug("content:\n" + content);
-            I18nTransformer i18nTransformer = new I18nTransformer(getI18nResourceBundleName(), language, getRealm().getDefaultLanguage());
+            I18nTransformer i18nTransformer = new I18nTransformer(getI18nResourceBundleName(), getContentLanguage(), getRealm().getDefaultLanguage());
             SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
             saxParser.parse(new StringBufferInputStream(content), i18nTransformer);
             return applyGlobalXslIfExists(i18nTransformer.getInputStream(), searchTerm);
@@ -710,17 +690,6 @@
     }
 
     /**
-     * Get language
-     */
-    private String getLanguage() throws Exception {
-/*
-        log.debug("Res config property: " + getResourceConfigProperty("language"));
-        log.debug("Requested language: " + getRequestedLanguage());
-*/
-        return getRequestedLanguage();
-    }
-
-    /**
      * Get i18m resource bundle name
      */
     private String getI18nResourceBundleName() {
@@ -732,4 +701,21 @@
         }
         return "nutch";
     }
+
+    /**
+     *
+     */
+    private void setParameters(Transformer transformer) throws Exception {
+        transformer.setParameter("yanel.path.name", PathUtil.getName(getPath()));
+        transformer.setParameter("yanel.path", getPath().toString());
+        transformer.setParameter("yanel.back2context", PathUtil.backToContext(realm, getPath()));
+        transformer.setParameter("yarep.back2realm", PathUtil.backToRealm(getPath()));
+        transformer.setParameter("hitsPerPage", "" + hitsPerPage);
+        transformer.setParameter("totalHits", "" + totalHits);
+        transformer.setParameter("query", "" + searchTerm);
+        transformer.setParameter("start", "" + start);
+        transformer.setParameter("localization.language", getRequestedLanguage());
+        transformer.setParameter("translation.language", getContentLanguage());
+        transformer.setParameter("show", getShowParameterValue());
+    }
 }



More information about the Yanel-commits mailing list