1 29 30 package com.caucho.quercus.lib.gettext; 31 32 import com.caucho.quercus.env.StringValue; 33 import com.caucho.quercus.env.UnicodeValue; 34 import com.caucho.quercus.lib.gettext.expr.PluralExpr; 35 36 import java.io.IOException ; 37 import java.util.ArrayList ; 38 import java.util.HashMap ; 39 40 abstract class GettextParser 41 { 42 PluralExpr _pluralExpr; 43 44 PluralExpr getPluralExpr() 45 { 46 return _pluralExpr; 47 } 48 49 52 protected String getCharset(StringValue metadata) 53 { 54 String header = "charset="; 55 int i = metadata.indexOf(header); 56 57 if (i < 0) 58 return "UTF-8"; 59 60 i = i + header.length(); 61 int len = metadata.length(); 62 63 int j = i + 1; 64 for (; j < len; j++) { 65 char ch = metadata.charAt(j); 66 67 switch (ch) { 68 case ' ': 69 case '\t': 70 case '\r': 71 case '\n': 72 return metadata.substring(i, j).toString(); 73 default: 74 continue; 75 } 76 } 77 78 return metadata.substring(i, j).toString(); 79 } 80 81 86 abstract HashMap <UnicodeValue, ArrayList <UnicodeValue>> readTranslations() 87 throws IOException ; 88 89 abstract void close(); 90 } 91 | Popular Tags |