[Yanel-commits] rev 23413 - in public/yanel/trunk/src:
contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources
contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources
contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources
core/java/org/wyona/yanel/core/map
core/java/org/wyona/yanel/core/transformation
core/java/org/wyona/yanel/servlet
realms/use-cases/yanel/ac-identities/users
realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources
realms/yanel-website/config
resources/add-realm/src/java/org/wyona/yanel/impl/resources
resources/xml/src/java/org/wyona/yanel/impl/resources
josias at wyona.com
josias at wyona.com
Mon Mar 26 17:06:31 CEST 2007
Author: josias
Date: 2007-03-26 17:06:29 +0200 (Mon, 26 Mar 2007)
New Revision: 23413
Modified:
public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/ContactResource.java
public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
public/yanel/trunk/src/contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources/WikiResource.java
public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java
public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/RealmConfiguration.java
public/yanel/trunk/src/core/java/org/wyona/yanel/core/transformation/I18nTransformer.java
public/yanel/trunk/src/core/java/org/wyona/yanel/core/transformation/I18nTransformer2.java
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
public/yanel/trunk/src/realms/use-cases/yanel/ac-identities/users/alice.xml
public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/UpdateResource.java
public/yanel/trunk/src/realms/yanel-website/config/yanel-realm-config.xml
public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource.java
public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
Log:
made default language configurable per realm. fixes bug #5253, thanks to paloma
Modified: public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/ContactResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/ContactResource.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/ContactResource.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -152,7 +152,7 @@
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
transformer.transform(new javax.xml.transform.stream.StreamSource(xmlFile), new StreamResult(byteArrayOutputStream));
//translate the form
- i18nTransformer = new I18nTransformer(messageBundle, language);
+ i18nTransformer = new I18nTransformer(messageBundle, language, getRealm().getDefaultLanguage());
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser.parse(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()), i18nTransformer);
@@ -165,8 +165,8 @@
byteArrayOutputStream = new ByteArrayOutputStream();
transformer.transform(new StreamSource(i18nTransformer.getInputStream()), new StreamResult(byteArrayOutputStream));
- //tranlate the page
- i18nTransformer = new I18nTransformer("global", language);
+ //translate the page
+ i18nTransformer = new I18nTransformer("global", language, getRealm().getDefaultLanguage());
saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser.parse(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()), i18nTransformer);
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-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -89,7 +89,6 @@
private long totalHits = 0;
private String defaultFile = "nutch-default.xml";
private String localFile = "nutch-local.xml";
- private String DEFAULT_LANGUAGE = "en";
private String searchTerm = "";
private String show = ""; //default is empty, else show either CACHE, EXPLAIN, ANCHORS
private String resourceBundle = "nutch";
@@ -106,6 +105,7 @@
*
*/
public NutchResource() {
+
}
/**
@@ -119,7 +119,7 @@
*
*/
public View getView(Path path, String viewId) {
- return getView(path, viewId, 0, 0, DEFAULT_LANGUAGE);
+ return getView(path, viewId, 0, 0, getRealm().getDefaultLanguage());
}
/**
@@ -333,7 +333,7 @@
log.debug("Back 2 realm: " + PathUtil.backToRealm(getPath()));
transformer.transform(new javax.xml.transform.dom.DOMSource(document), new StreamResult(byteArrayOutputStream));
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
- i18nTransformer = new I18nTransformer(resourceBundle, language);
+ i18nTransformer = new I18nTransformer(resourceBundle, language, getRealm().getDefaultLanguage());
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser.parse(inputStream, i18nTransformer);
return applyGlobalXslIfExists(i18nTransformer.getInputStream(), searchTerm, language);
@@ -370,7 +370,7 @@
transformer.transform(new StreamSource(inputStream), new StreamResult(byteArrayOutputStream));
inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
log.debug("Language: " + language);
- i18nTransformer = new I18nTransformer(resourceBundle, language);
+ i18nTransformer = new I18nTransformer(resourceBundle, language, getRealm().getDefaultLanguage());
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser.parse(inputStream, i18nTransformer);
return i18nTransformer.getInputStream();
@@ -445,7 +445,7 @@
"<h3><i18n:message key=\"scoreForQuery\"/>" + query + "</h3>" +
nutchBean.getExplanation(query, hit) +
"</div></body></html>";
- I18nTransformer i18nTransformer = new I18nTransformer(resourceBundle, language);
+ I18nTransformer i18nTransformer = new I18nTransformer(resourceBundle, language, getRealm().getDefaultLanguage());
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser.parse(new StringBufferInputStream(content), i18nTransformer);
return applyGlobalXslIfExists(i18nTransformer.getInputStream(), searchTerm, language);
@@ -485,7 +485,7 @@
}
content += "</div></body></html>";
log.debug("content:\n" + content);
- I18nTransformer i18nTransformer = new I18nTransformer(resourceBundle, language);
+ I18nTransformer i18nTransformer = new I18nTransformer(resourceBundle, language, getRealm().getDefaultLanguage());
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser.parse(new StringBufferInputStream(content), i18nTransformer);
return applyGlobalXslIfExists(i18nTransformer.getInputStream(), searchTerm, language);
@@ -709,7 +709,7 @@
}
if (language == null) {
- language = DEFAULT_LANGUAGE;
+ language = getRealm().getDefaultLanguage();
}
log.debug("Language: " + language);
Modified: public/yanel/trunk/src/contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources/WikiResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources/WikiResource.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources/WikiResource.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -65,8 +65,6 @@
private HashMap properties = new HashMap();
private final String DEFAULT_WIKI_PARSER_BEAN_ID = "jspWikiParser";
- private String language = "en";
-
/**
*
*/
@@ -154,7 +152,7 @@
}
inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
- I18nTransformer i18nTransformer = new I18nTransformer("global", language);
+ I18nTransformer i18nTransformer = new I18nTransformer("global", getRealm().getDefaultLanguage(), getRealm().getDefaultLanguage());
saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser.parse(inputStream, i18nTransformer);
@@ -170,15 +168,15 @@
*
*/
public View getView(HttpServletRequest request, String viewId) {
- String _language = language;
+ String _language = getRealm().getDefaultLanguage();
try {
_language = request.getParameter("yanel.meta.language");
} catch(Exception e) {
//use fallback language
- _language = language;
+ _language = getRealm().getDefaultLanguage();
}
- if(_language == null || ("").equals(_language)) _language = language;
- else language = _language;
+ //if(_language == null || ("").equals(_language)) _language = language;
+ //else language = _language;
return getView(new Path(request.getServletPath()), viewId);
}
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -31,6 +31,7 @@
private String name;
private String id;
private String mountPoint;
+ private String defaultLanguage;
private Repository repository;
private Repository rtiRepository;
private PolicyManager policyManager;
@@ -164,4 +165,12 @@
this.policyManager = policyManager;
}
+ public String getDefaultLanguage() {
+ return defaultLanguage;
+ }
+
+ public void setDefaultLanguage(String language) {
+ this.defaultLanguage = language;
+ }
+
}
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/RealmConfiguration.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/RealmConfiguration.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/RealmConfiguration.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -229,6 +229,16 @@
realm.setIdentityManager(identityManager);
}
+ repoConfigElement = realmConfig.getChild("default-language", false);
+ if (repoConfigElement != null) {
+ realm.setDefaultLanguage(repoConfigElement.getValue());
+ } else {
+ //Maintain backwards compatibility with realms
+ realm.setDefaultLanguage("en");
+ }
+
+
+
log.info("Realm: " + realm);
hm.put(realmId, realm);
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/transformation/I18nTransformer.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/transformation/I18nTransformer.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/transformation/I18nTransformer.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -5,6 +5,7 @@
import java.io.UnsupportedEncodingException;
import java.util.Locale;
import java.util.ResourceBundle;
+import java.util.MissingResourceException;
import org.apache.log4j.Category;
import org.xml.sax.Attributes;
import org.xml.sax.EntityResolver;
@@ -22,9 +23,15 @@
private String cachedEname;
private EntityResolver entityResolver;
- public I18nTransformer(String messages, String language) {
- currentLocale = new Locale(language);
- messageBundle = ResourceBundle.getBundle(messages, currentLocale);
+ public I18nTransformer(String messages, String language, String defaultLanguage) {
+ try {
+ currentLocale = new Locale(language);
+ messageBundle = ResourceBundle.getBundle(messages, currentLocale);
+ } catch (MissingResourceException e) {
+ currentLocale = new Locale(defaultLanguage);
+ messageBundle = ResourceBundle.getBundle(messages, currentLocale);
+ }
+
}
public void startDocument() throws SAXException {
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/transformation/I18nTransformer2.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/transformation/I18nTransformer2.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/transformation/I18nTransformer2.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -4,12 +4,14 @@
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
+import java.util.MissingResourceException;
import org.apache.log4j.Category;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
+
/**
* Transformer to translate content to a certain language using a message catalogue.
* This i18n transformer supports two kinds of syntax:
@@ -42,9 +44,14 @@
public static final String NS_URI = "http://www.wyona.org/yanel/i18n/1.0";
- public I18nTransformer2(String messages, String language) {
- currentLocale = new Locale(language);
- messageBundle = ResourceBundle.getBundle(messages, currentLocale);
+ public I18nTransformer2(String messages, String language, String defaultLanguage) {
+ try {
+ currentLocale = new Locale(language);
+ messageBundle = ResourceBundle.getBundle(messages, currentLocale);
+ } catch (MissingResourceException e) {
+ currentLocale = new Locale(defaultLanguage);
+ messageBundle = ResourceBundle.getBundle(messages, currentLocale);
+ }
}
public void startElement(String namespaceURI, String localName, String qName, Attributes attrs) throws SAXException {
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -1619,7 +1619,7 @@
xsltTransformer.getTransformer().setParameter("yanel.reservedPrefix", reservedPrefix);
// create i18n transformer:
- I18nTransformer2 i18nTransformer = new I18nTransformer2("global", getLanguage(request));
+ I18nTransformer2 i18nTransformer = new I18nTransformer2("global", getLanguage(request),yanel.getMap().getRealm(request.getServletPath()).getDefaultLanguage());
CatalogResolver catalogResolver = new CatalogResolver();
i18nTransformer.setEntityResolver(new CatalogResolver());
@@ -1643,7 +1643,7 @@
/**
* Get language with the following priorization: 1) yanel.meta.language query string parameter, 2) Accept-Language header, 3) Default en
*/
- private String getLanguage(HttpServletRequest request) {
+ private String getLanguage(HttpServletRequest request) throws Exception {
String language = request.getParameter("yanel.meta.language");
if (language == null) {
language = request.getHeader("Accept-Language");
@@ -1659,7 +1659,7 @@
}
}
if(language != null && language.length() > 0) return language;
- return "en";
+ return yanel.getMap().getRealm(request.getServletPath()).getDefaultLanguage();
}
/**
Modified: public/yanel/trunk/src/realms/use-cases/yanel/ac-identities/users/alice.xml
===================================================================
--- public/yanel/trunk/src/realms/use-cases/yanel/ac-identities/users/alice.xml 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/realms/use-cases/yanel/ac-identities/users/alice.xml 2007-03-26 15:06:29 UTC (rev 23413)
@@ -2,5 +2,6 @@
<user id="alice">
<name>Michael Wechner</name>
<email>michi at wyona.org</email>
-<password>e94ef563867e9c9df3fcc999bdb045f5</password>
+<password>9c62a68af3b80523ef2ffc8cb3eb9fb8</password>
+<salt>9a74c27e6cc2303e</salt>
</user>
Modified: public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/UpdateResource.java
===================================================================
--- public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/UpdateResource.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/realms/welcome-admin/yanel/resources/update-webapp/src/java/org/wyona/yanel/impl/resources/UpdateResource.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -54,13 +54,14 @@
public class UpdateResource extends Resource implements ViewableV2 {
private static Category log = Category.getInstance(UpdateResource.class);
- private String defaultLanguage = "en";
+ private String defaultLanguage;
private String language = null;
/**
*
*/
public UpdateResource() {
+ defaultLanguage = getRealm().getDefaultLanguage();
}
/**
@@ -90,7 +91,7 @@
}
Transformer transformer = null;
- I18nTransformer i18nTransformer = new I18nTransformer("update", language);
+ I18nTransformer i18nTransformer = new I18nTransformer("update", language, defaultLanguage);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
View defaultView = new View();
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Modified: public/yanel/trunk/src/realms/yanel-website/config/yanel-realm-config.xml
===================================================================
--- public/yanel/trunk/src/realms/yanel-website/config/yanel-realm-config.xml 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/realms/yanel-website/config/yanel-realm-config.xml 2007-03-26 15:06:29 UTC (rev 23413)
@@ -6,4 +6,5 @@
<data>repository.xml</data>
<ac-policies>ac-policies-repository.xml</ac-policies>
<ac-identities>ac-identities-repository.xml</ac-identities>
+ <default-language>en</default-language>
</realm-config>
Modified: public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource.java
===================================================================
--- public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -70,7 +70,7 @@
private final static String SESSION_ATTR_REALM_ID = "org.wyona.yanel.addrealm.realm.id";
private final static String SESSION_ATTR_REALM_NAME = "org.wyona.yanel.addrealm.realm.name";
- private String defaultLanguage = "en";
+ private String defaultLanguage;
private String language = null;
private String parameterName = null;
private String parameter = null;
@@ -83,6 +83,7 @@
*
*/
public AddRealmResource() {
+ defaultLanguage = getRealm().getDefaultLanguage();
}
/**
@@ -113,7 +114,7 @@
}
Transformer transformer = null;
- I18nTransformer i18nTransformer = new I18nTransformer("add-realm", language);
+ I18nTransformer i18nTransformer = new I18nTransformer("add-realm", language, defaultLanguage);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
View defaultView = new View();
Modified: public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
===================================================================
--- public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java 2007-03-26 14:28:43 UTC (rev 23412)
+++ public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java 2007-03-26 15:06:29 UTC (rev 23413)
@@ -157,7 +157,7 @@
}
// create i18n transformer:
- I18nTransformer2 i18nTransformer = new I18nTransformer2("global", getLanguage());
+ I18nTransformer2 i18nTransformer = new I18nTransformer2("global", getLanguage(), getRealm().getDefaultLanguage());
i18nTransformer.setEntityResolver(catalogResolver);
// create xinclude transformer:
@@ -206,7 +206,7 @@
language = getRequest().getParameter("Accept-Language");
}
if(language != null && language.length() > 0) return language;
- return "en";
+ return getRealm().getDefaultLanguage();
}
More information about the Yanel-commits
mailing list