- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 01 Sep 2009 13:39:43 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/util
In directory hutz:/tmp/cvs-serv18414/src/org/w3c/unicorn/util
Added Files:
Language.java
Log Message:
added languages merging
+ messages on index
--- NEW FILE: Language.java ---
package org.w3c.unicorn.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Properties;
import org.apache.velocity.VelocityContext;
import org.w3c.unicorn.Framework;
public class Language {
public static boolean isISOLanguageCode(String languageCode) {
String[] isoCodes = Locale.getISOLanguages();
for (String code : isoCodes) {
if (code.equals(languageCode))
return true;
}
return false;
}
public static String negociate(Enumeration<?> locales) {
while (locales.hasMoreElements()) {
Locale loc = (Locale) locales.nextElement();
if (Framework.getLanguageProperties().containsKey(loc.getLanguage())) {
return loc.getLanguage();
}
}
return Property.get("DEFAULT_LANGUAGE");
}
public static VelocityContext getContext(String langParameter) {
if (langParameter != null && Framework.getLanguageContexts().containsKey(langParameter))
return Framework.getLanguageContexts().get(langParameter);
else
return Framework.getLanguageContexts().get(Property.get("DEFAULT_LANGUAGE"));
}
public static void complete(Properties props, Properties defaultProps) {
props.put("complete", "false");
for (Object key : defaultProps.keySet()) {
if (!props.containsKey(key)) {
props.put("incomplete", "true");
props.put(key, defaultProps.get(key));
Framework.logger.warn(">> Missing property in " + props.getProperty("lang") + ".properties for key: \"" + (String) key + "\". Added default property for this key: \"" + defaultProps.get(key) + "\"");
}
}
}
public static Properties load(File langFile) throws IllegalArgumentException, FileNotFoundException, IOException {
String localeString = langFile.getName().split("\\.")[0];
if (!Language.isISOLanguageCode(localeString))
throw new IllegalArgumentException("Invalid language file: " + langFile + ". " + localeString + " is not a valid ISO language code. This file will not be loaded.");
FileInputStream fis = new FileInputStream(langFile);
InputStreamReader isr;
try {
isr = new InputStreamReader(fis, "UTF-8");
Properties props = new Properties();
props.load(isr);
props.put("lang", localeString);
return props;
} catch (UnsupportedEncodingException e) {
// This should not happen
Framework.logger.error(e.getMessage(), e);
return null;
}
}
public static boolean isComplete(String langParameter) {
return Framework.getLanguageProperties().get(langParameter).get("complete") == "true";
}
/*public static void addToContext(VelocityContext velocityContext, Locale lang) throws Exception {
File languageFile = new File(Property.get("PATH_TO_LANGUAGE_FILES") + lang.getLanguage() + ".properties");
FileReader fr = new FileReader(languageFile);
Properties langProps = new Properties();
langProps.load(fr);
Set<Object> keys = langProps.keySet();
Iterator<Object> itr = keys.iterator();
String key;
while (itr.hasNext()) {
key = itr.next().toString();
velocityContext.put(key, langProps.get(key));
}
}
public static void addToContext(Properties langProps, VelocityContext context) throws Exception {
Set<Object> keys = langProps.keySet();
Iterator<Object> itr = keys.iterator();
String key;
while (itr.hasNext()) {
key = itr.next().toString();
context.put(key, langProps.get(key));
}
for (Object keyss : langProps.keySet()) {
context.put((String) keyss, langProps.get(keyss));
}
}*/
/*public static void addLanguageFile(File langFile) throws MalformedURLException, IOException {
String fileName = langFile.getName();
String locale = fileName.split("\\.")[0];
if (!isISOLanguageCode(locale)) {
return;
}
//Locale locale = new Locale(localeString);
Properties props = new Properties();
props.load(langFile.toURI().toURL().openStream());
//languages.put(locale, props);
}*/
}
Received on Tuesday, 1 September 2009 13:39:54 UTC