- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 08 Sep 2005 14:24:31 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/util In directory hutz:/tmp/cvs-serv13965 Modified Files: ApplContext.java Messages.java Log Message: accept-language is now done the right way, with quality value checks also a new parameter, lang, is used (prepended). Also the output encoding is biased with the one present in the property file of the relevant language. Index: ApplContext.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/util/ApplContext.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ApplContext.java 8 Aug 2005 13:19:46 -0000 1.5 +++ ApplContext.java 8 Sep 2005 14:24:29 -0000 1.6 @@ -178,6 +178,8 @@ String encoding = null; double quality = 0.0; + String biasedcharset = getMsg().getString("output-encoding-name"); + for(int i = 0; i < charsets.length && quality < 1.0 ; i++) { HttpAcceptCharset charset = charsets[i]; @@ -189,6 +191,12 @@ if(isCharsetSupported(currentCharset)) { double currentQuality = charset.getQuality(); + // we prefer utf-8 + // FIXME (the bias value and the biased charset + // should be dependant on the language) + if ((biasedcharset != null) && !biasedcharset.equalsIgnoreCase(currentCharset)) { + currentQuality = currentQuality * 0.5; + } if(currentQuality > quality) { quality = currentQuality; encoding = charset.getCharset(); Index: Messages.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/util/Messages.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Messages.java 8 Sep 2005 12:24:10 -0000 1.5 +++ Messages.java 8 Sep 2005 14:24:29 -0000 1.6 @@ -19,7 +19,7 @@ /** * Message properties */ - public Utf8Properties properties; + public Utf8Properties properties; private static Hashtable languages = new Hashtable(); @@ -29,10 +29,41 @@ public Messages(String lang) { if (lang != null) { StringTokenizer lanTok = new StringTokenizer(lang, ","); - + int maxTok = lanTok.countTokens(); + + String slang[] = new String[maxTok]; + float qlang[] = new float[maxTok]; + + // quick and dirty, it would be better to use Jigsaw's classes while (lanTok.hasMoreTokens()) { String l = lanTok.nextToken().trim().toLowerCase(); - properties = (Utf8Properties) languages.get(l); + int qualsep = l.indexOf(';'); + float qval = 1; + if (qualsep != -1) { + String p = l.substring(qualsep+1); + l = l.substring(0, qualsep); + if (p.startsWith("q=")) { + qval = Float.parseFloat(p.substring(2)); + } + } + for (int i=0 ; i<maxTok; i++) { + if (slang[i] == null) { + slang[i] = l; + qlang[i] = qval; + break; + } else if (qval > qlang[i]) { + System.arraycopy(slang, i, slang, i+1, (maxTok-i-1)); + System.arraycopy(qlang, i, qlang, i+1, (maxTok-i-1)); + slang[i] = l; + qlang[i] = qval; + break; + } + + } + } + for (int i=0 ; i< maxTok; i++) { + String l = slang[i]; + properties = (Utf8Properties) languages.get(l); if (properties != null) { break; } @@ -40,7 +71,7 @@ if (minusIndex != -1) { // suppressed -cn in zh-cn (example) l = l.substring(0, minusIndex); - properties = (Utf8Properties) languages.get(l); + properties = (Utf8Properties) languages.get(l); } if (properties != null) { break; @@ -48,7 +79,7 @@ } } if (properties == null) { - properties = (Utf8Properties) languages.get("en"); + properties = (Utf8Properties) languages.get("en"); } } @@ -62,60 +93,61 @@ /** * Get a warning property. * - * @param message - * the warning property. + * @param message + * the warning property. */ public String getWarningString(String message) { - return getString(new StringBuffer("warning.").append(message) - .toString()); + return getString(new StringBuffer("warning.").append(message) + .toString()); } /** * Get a warning level property. * - * @param message - * the warning property. + * @param message + * the warning property. */ public String getWarningLevelString(String message) { - return getString(new StringBuffer("warning.").append(message).append( - ".level").toString()); + return getString(new StringBuffer("warning.").append(message).append( + ".level").toString()); } /** * Get an error property. * - * @param message - * the error property. + * @param message + * the error property. */ public String getErrorString(String message) { - return getString(new StringBuffer("error.").append(message).toString()); + return getString(new StringBuffer("error."). + append(message).toString()); } /** * Get an generator property. * - * @param message - * the generator property. + * @param message + * the generator property. */ public String getGeneratorString(String message) { - return getString(new StringBuffer("generator.").append(message) - .toString()); + return getString(new StringBuffer("generator.").append(message) + .toString()); } /** * Get an generator property. * - * @param message - * the generator property. + * @param message + * the generator property. */ public String getGeneratorString(String message, String param) { - String str = getString(new StringBuffer("generator.").append(message) - .toString()); + String str = getString(new StringBuffer("generator.").append(message) + .toString()); // replace all parameters int i = str.indexOf("%s"); if (i >= 0) { - str = str.substring(0, i) + param + str.substring(i + 2); + str = str.substring(0, i) + param + str.substring(i + 2); } return str; } @@ -123,69 +155,69 @@ /** * Get an generator property. * - * @param message - * the generator property. + * @param message + * the generator property. */ public String getServletString(String message) { - return getString(new StringBuffer("servlet.").append(message) - .toString()); + return getString(new StringBuffer("servlet.").append(message) + .toString()); } static { - Utf8Properties tmp; + Utf8Properties tmp; try { URL url = Messages.class.getResource("Messages.properties.en"); java.io.InputStream f = url.openStream(); try { - tmp = new Utf8Properties(); + tmp = new Utf8Properties(); tmp.load(f); languages.put("en", tmp); } finally { f.close(); } } catch (Exception e) { - System.err - .println("org.w3c.css.util.Messages: couldn't load properties en"); - System.err.println(" " + e.toString()); + System.err.println("org.w3c.css.util.Messages: "+ + "couldn't load properties en"); + System.err.println(" " + e.toString()); } try { URL url = Messages.class.getResource("Messages.properties.zh-cn"); java.io.InputStream f = url.openStream(); try { - tmp = new Utf8Properties(); + tmp = new Utf8Properties(); tmp.load(f); languages.put("zh-cn", tmp); } finally { f.close(); } } catch (Exception e) { - System.err - .println("org.w3c.css.util.Messages: couldn't load properties cn"); - System.err.println(" " + e.toString()); + System.err.println("org.w3c.css.util.Messages: "+ + "couldn't load properties cn"); + System.err.println(" " + e.toString()); } try { URL url = Messages.class.getResource("Messages.properties.ja"); java.io.InputStream f = url.openStream(); try { - tmp = new Utf8Properties(); + tmp = new Utf8Properties(); tmp.load(f); languages.put("ja", tmp); } finally { f.close(); } } catch (Exception e) { - System.err - .println("org.w3c.css.util.Messages: couldn't load properties ja"); - System.err.println(" " + e.toString()); + System.err.println("org.w3c.css.util.Messages:"+ + " couldn't load properties ja"); + System.err.println(" " + e.toString()); } try { URL url = Messages.class.getResource("Messages.properties.fr"); java.io.InputStream f = url.openStream(); try { - tmp = new Utf8Properties(); + tmp = new Utf8Properties(); tmp.load(f); languages.put("fr", tmp); languages.put("fr_FR", tmp); @@ -193,18 +225,18 @@ f.close(); } } catch (Exception e) { - System.err - .println("org.w3c.css.util.Messages: couldn't load properties fr"); - System.err.println(" " + e.toString()); + System.err.println("org.w3c.css.util.Messages: "+ + "couldn't load properties fr"); + System.err.println(" " + e.toString()); } - // ----------------------- + // ----------------------- try { URL url = Messages.class.getResource("Messages.properties.de"); java.io.InputStream f = url.openStream(); try { - tmp = new Utf8Properties(); + tmp = new Utf8Properties(); tmp.load(f); languages.put("de", tmp); languages.put("de_DE", tmp); @@ -214,9 +246,9 @@ f.close(); } } catch (Exception e) { - System.err - .println("org.w3c.css.util.Messages: couldn't load properties de"); - System.err.println(" " + e.toString()); + System.err.println("org.w3c.css.util.Messages: "+ + "couldn't load properties de"); + System.err.println(" " + e.toString()); } // ------------------------------------------------ @@ -225,16 +257,16 @@ URL url = Messages.class.getResource("Messages.properties.nl"); java.io.InputStream f = url.openStream(); try { - tmp = new Utf8Properties(); + tmp = new Utf8Properties(); tmp.load(f); languages.put("nl", tmp); } finally { f.close(); } } catch (Exception e) { - System.err - .println("org.w3c.css.util.Messages: couldn't load properties nl"); - System.err.println(" " + e.toString()); + System.err.println("org.w3c.css.util.Messages: "+ + "couldn't load properties nl"); + System.err.println(" " + e.toString()); } // ------------------------------------------------ @@ -243,7 +275,7 @@ URL url = Messages.class.getResource("Messages.properties.es"); java.io.InputStream f = url.openStream(); try { - tmp = new Utf8Properties(); + tmp = new Utf8Properties(); tmp.load(f); languages.put("es", tmp); languages.put("es_ES", tmp); @@ -251,10 +283,9 @@ f.close(); } } catch (Exception e) { - System.err - .println("org.w3c.css.util.Messages: couldn't load properties es"); - System.err.println(" " + e.toString()); + System.err.println("org.w3c.css.util.Messages: "+ + "couldn't load properties es"); + System.err.println(" " + e.toString()); } - } }
Received on Thursday, 8 September 2005 14:24:52 UTC