亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? langstask.java.svn-base

?? 類似QQ的功能
?? SVN-BASE
字號:
/******************************************************************************* Jimm - Mobile Messaging - J2ME ICQ clone Copyright (C) 2003-06  Jimm Project This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. ******************************************************************************** File: util/langs/src/langs/LangsTask.java Version: ###VERSION###  Date: ###DATE### Author(s): Artyomov Denis, Andreas Rossbacher *******************************************************************************/package langs;import java.io.*;import java.util.*;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.Task;class ShortKeyword{	private String shortKeyword;	boolean used;		public ShortKeyword(String shortKeyword)	{		this.shortKeyword = shortKeyword;		used = false;	}		public String getShortKeyword()	{		return shortKeyword;	}		public void wasUsed()	{		used = true;	}		public boolean getUsed()	{		return used;	}}public class LangsTask extends Task{	private String languages, inDir, outDir, srcDir, idealLang;	private static Hashtable shortKeys  = new Hashtable();	private static Vector warnings = new Vector(); 		private static char[] shortKeyElems = 	{		'_', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',		'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',		'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',		'w', 'x', 'y', 'z',		'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',		'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',		'W', 'X', 'Y', 'Z',	};		static private int shortKeywordCounter = 0;		static boolean isSpecialKey(String keyword)	{		return ((keyword.indexOf("error_") == 0) || (keyword.indexOf("lang_") == 0)); 	}		static String[] readFile(String fileName) throws Exception	{		Vector lines = new Vector();		String line;				InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName), "UTF-8");		BufferedReader reader = new BufferedReader(isr);		while ((line = reader.readLine()) != null) lines.add(line);		reader.close();		isr.close();				String[] result = new String[lines.size()];		lines.copyInto(result);		return result;	}		static String keyToShortKey(String keyword)	{		if ( isSpecialKey(keyword) ) return keyword;				ShortKeyword tableKeyword = (ShortKeyword)shortKeys.get(keyword);		if (tableKeyword != null) return tableKeyword.getShortKeyword();				StringBuffer shortKeyword = new StringBuffer();			int value = shortKeywordCounter;		do		{			shortKeyword.append(shortKeyElems[value%shortKeyElems.length]);			value /= shortKeyElems.length;		} while (value > 0);				String newKey = shortKeyword.toString();				shortKeys.put(keyword, new ShortKeyword(newKey));				shortKeywordCounter++;				return newKey;	}	static private String[] devideToWords(String text) throws Exception	{				String[] resultArray = new String[2];		try {			resultArray[0] = text.substring(1,text.indexOf('"',1));			resultArray[1] = text.substring(text.indexOf('"',text.indexOf('"',1)+1)+1,text.lastIndexOf('"'));		} catch (Exception e) {			throw new Exception();		}				return resultArray;		}		static private Vector readLangFile(String inFile)	{		Vector data = new Vector();		String line;				try		{			File srcFile = new File(inFile);			InputStreamReader isr = new InputStreamReader(new FileInputStream(srcFile), "UTF-8");			BufferedReader reader = new BufferedReader(isr);				while ((line = reader.readLine()) != null)			{				line = line.trim();				if (line.length() == 0) continue;				if (line.charAt(0) == '/') continue;				StringBuffer strBuf = new StringBuffer();				int lineLen = line.length();				for (int i = 0; i < lineLen; i++)				{					char chr = line.charAt(i);					String addText = null;										if ((chr == '\\') && (i != (lineLen-1)))					{						char chr2 = line.charAt(i+1);						if (chr2 == 'n') addText = "\n";						if (chr2 == 'r') addText = "\r";						if (chr2 == 't') addText = "\t";						if (chr2 == '"') addText = "\"";					}										if (addText != null)					{						strBuf.append(addText);						i++;					}					else					{						if (chr < ' ') chr = ' ';						strBuf.append(chr);					}				}				String[] words;				try				{					words = devideToWords(strBuf.toString());				} catch (Exception e)				{					throw new BuildException("Wrong lang line '" + line + "' in file '" + inFile + "'");				}				data.addElement(words);			}		}		catch (Exception e)		{			throw new BuildException(e);		}		return data;	}		static private void addKeysToSpecialKeys(Vector pairs)	{		int size = pairs.size();		for (int i = 0; i < size; i++)		{			String[] pair = (String[])pairs.elementAt(i);			keyToShortKey(pair[0]);		}	}		static private void writeLngFile(Vector pairs, String outFile, boolean onelang) throws BuildException	{		try		{			FileOutputStream ostream = new FileOutputStream(outFile);			DataOutputStream dos = new DataOutputStream(ostream);						int size = pairs.size();			dos.writeShort(size);			for (int i = 0; i < size; i++)			{				String[] pair = (String[])pairs.elementAt(i);				dos.writeUTF(keyToShortKey(pair[0]));				dos.writeUTF(pair[1]);			}			dos.flush();			ostream.close();		}		catch (Exception e)		{			throw new BuildException(e);		}	}		  // Scans the given directory (srcDir/srcDirExt) for Java source files	static private String[] scanDir(File srcDir, String srcDirExt)	{		// Initalize vector		Vector filenames = new Vector();		// Get all Java source file in the current directory		File[] files = (new File(srcDir, srcDirExt)).listFiles();		for (int i = 0; i < files.length; i++)		{			if (files[i].isFile() && (files[i].getName().endsWith(".java")))			{				filenames.add(srcDir + srcDirExt + File.separator + files[i].getName());			}			else if (files[i].isDirectory())			{				filenames.addAll(Arrays.asList(scanDir(srcDir, srcDirExt + File.separator + files[i].getName())));			}		}		// Return Vector as array		String[] ret = new String[filenames.size()];		filenames.copyInto(ret);		return (ret);	}		static private void correctToIdealLang(String langName, Vector pairs, Hashtable idealPairs)	{		// Place normal keys to hashset for quick finding		Hashtable normalData = pairsToTable(pairs);				// Which pairs absent?		Enumeration idealKeys = idealPairs.keys();		while (idealKeys.hasMoreElements())		{			String idealKey = (String)idealKeys.nextElement();					if ( !normalData.containsKey(idealKey) )			{				String value = (String)idealPairs.get(idealKey);				normalData.put(idealKey, value);								warnings.add(langName+".lang: missed \""+idealKey+"\" ("+value+")");			}		}				// Which keys are unnecessary?		Enumeration normalKeys = normalData.keys();		while (normalKeys.hasMoreElements())		{			String normalKey = (String)normalKeys.nextElement();						if ( !idealPairs.containsKey(normalKey) )			{				warnings.add(langName+".lang: unnecessary \""+normalKey+"\"");				normalData.remove(normalKey);				normalKeys = normalData.keys();			}		}				// Whick keys are not in sources?		normalKeys = normalData.keys();		while (normalKeys.hasMoreElements())		{			String normalKey = (String)normalKeys.nextElement();					ShortKeyword keyObj = (ShortKeyword)shortKeys.get(normalKey);			if (keyObj == null) continue;			if ( !keyObj.getUsed() )			{				warnings.add(langName+".lang: not present at sources \""+normalKey+"\"");				normalData.remove(normalKey);				normalKeys = normalData.keys();			}		}				// Save corrcted data to pairs		pairs.clear();		normalKeys = normalData.keys();		while (normalKeys.hasMoreElements())		{			String normalKey = (String)normalKeys.nextElement();			pairs.add( new String[] {normalKey, (String)normalData.get(normalKey)} );		}				}		static private String replaceString(String str, String from, String to)	{		for (;;)		{			int index = str.indexOf(from); 			if (index == -1) break;			str = str.substring(0, index)+to+str.substring(index+from.length(), str.length());		}		return str;	}	static private void replaceLangKeysInSources(String fileName)	{		String line;				try		{			// load source file			line = readAndPrepareSrcFile(fileName);						// replase old keys to new ones			Enumeration allKeys = shortKeys.keys();			while (allKeys.hasMoreElements())			{				String oldKey = (String)allKeys.nextElement();				ShortKeyword shortKeyword = (ShortKeyword)shortKeys.get(oldKey);				String newKey = shortKeyword.getShortKeyword();								String textToReplace = "\""+oldKey+"\"";				boolean contains = (line.indexOf(textToReplace) != -1);				if (contains) shortKeyword.wasUsed();								line = replaceString(line, textToReplace, "\""+newKey+"\"");			}						// Write source lines with new lang keys 			OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8");			BufferedWriter writer = new BufferedWriter(osw);			writer.write(line);			writer.newLine();			writer.close();			osw.close();					}		catch (Exception e)		{			throw new BuildException(e);		}	}		// Load and prepare file (remove comments)	private final static int PP_STATE_DIRECT_COPY       = 1;	private final static int PP_STATE_WAIT_FOR_COMMENT  = 2;	private final static int PP_STATE_SIMPLE_COMMENT    = 3;	private final static int PP_STATE_MULTILINE_COMMENT = 4;	private final static int PP_STATE_WAIT_FOR_MLC_END  = 5; // wait for multiline comment end	private final static int PP_STATE_STRING            = 6;		static String readAndPrepareSrcFile(String fileName) throws BuildException	{		StringBuffer buffer = new StringBuffer();		int state = PP_STATE_DIRECT_COPY;				try		{			InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName));			BufferedReader reader = new BufferedReader(isr);						for (;;)			{				int curByte = reader.read();				if (curByte == -1) break;								switch (state)				{				case PP_STATE_DIRECT_COPY:					if (curByte == '/') state = PP_STATE_WAIT_FOR_COMMENT;					else if (curByte == '\"')					{						state = PP_STATE_STRING;						buffer.append((char)curByte);					}					else buffer.append((char)curByte);					break;									case PP_STATE_WAIT_FOR_COMMENT:					if (curByte == '*') state = PP_STATE_MULTILINE_COMMENT;					else if (curByte == '/') state = PP_STATE_SIMPLE_COMMENT;					else					{						buffer.append('/');						buffer.append((char)curByte);						state = PP_STATE_DIRECT_COPY;					}					break;									case PP_STATE_SIMPLE_COMMENT:					if ((curByte == '\r') || (curByte == '\n')) state = PP_STATE_DIRECT_COPY;					break;									case PP_STATE_MULTILINE_COMMENT:					if (curByte == '*') state = PP_STATE_WAIT_FOR_MLC_END;					break;									case PP_STATE_WAIT_FOR_MLC_END:					if (curByte == '/') state = PP_STATE_DIRECT_COPY;					else if (curByte == '*') state = PP_STATE_WAIT_FOR_MLC_END;					else state = PP_STATE_MULTILINE_COMMENT;					break;									case PP_STATE_STRING:					buffer.append((char)curByte);					if (curByte == '\"') state = PP_STATE_DIRECT_COPY;					break;				}			}						reader.close();			isr.close();		}		catch (Exception e)		{			throw new BuildException(e);		}		return buffer.toString();	}		static private void showWarnings()	{		int size = warnings.size();		if (size == 0) return;		System.out.println("*** WARNINGS ***");		for (int i = 0; i < size; i++) System.out.println((String)warnings.elementAt(i));		warnings.clear();	}	static private Hashtable pairsToTable(Vector pairs)	{		Hashtable result = new Hashtable();		for (int i = 0; i < pairs.size(); i++)		{			String[] pair = (String[])pairs.elementAt(i);			result.put(pair[0], pair[1]);		}				return result;	}		///////////////////////////////////////////////////////////////////////////	///////////////////////////////////////////////////////////////////////////		public void setLanguages(String value)	{		languages = value;	}	public void setInDir(String value)	{		inDir = value;	}	public void setOutDir(String value)	{		outDir = value;	}		public void setSrcDir(String value)	{		srcDir = value;	}		public void setIdealLang(String value)	{		idealLang = value;	}		///////////////////////////////////////////////////////////////////////////	///////////////////////////////////////////////////////////////////////////		public void execute() throws BuildException	{		Hashtable idealHashTable = null;				shortKeys.clear();		warnings.clear();		Vector langs = new Vector(); 		StringTokenizer strTok = new StringTokenizer(languages, ",");		while (strTok.hasMoreTokens())		{			String langName = strTok.nextToken();			langs.add(langName);		}				int size = langs.size();		if (size == 0) new BuildException("No language specified");				System.out.println("Loading lang file[s]... ");		Vector pairs, idealPairs = null;		if (idealLang != null)		{			idealPairs = readLangFile(inDir+"/"+idealLang+".lang");			idealHashTable = pairsToTable(idealPairs);		}		for (int i = 0; i < size; i++)		{			String langName = (String)langs.elementAt(i);			pairs = readLangFile(inDir+"/"+langName+".lang");			addKeysToSpecialKeys(pairs);		}				try		{			FileOutputStream ostream = new FileOutputStream(outDir+"/langlist.lng");			DataOutputStream dos = new DataOutputStream(ostream);						dos.writeShort(langs.size());			for (int i = 0; i < langs.size(); i++) dos.writeUTF((String)langs.elementAt(i));						dos.flush();			ostream.close();		}		catch (Exception e)		{			throw new BuildException(e);		}				// Show warnings		showWarnings();		// Replace keys in sources		System.out.println("Preprocessing java sources... ");		String[] files = scanDir(new File(srcDir), "");		for (int i = 0; i < files.length; i++) replaceLangKeysInSources(files[i]);				// Save LNG files		System.out.println("Saving lng file[s]... ");		size = langs.size();		for (int i = 0; i < size; i++)		{			String langName = (String)langs.elementAt(i);			pairs = readLangFile(inDir+"/"+langName+".lang");			correctToIdealLang(langName, pairs, idealHashTable);			writeLngFile(pairs, outDir+"/"+langName+".lng", size == 1);		}		showWarnings();			}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品在线看| 欧美日本韩国一区| 国产精品午夜在线| 久久爱www久久做| 91麻豆精品国产| 久久蜜桃一区二区| 国产欧美日产一区| 午夜精品久久久久久久蜜桃app| 丝袜美腿亚洲一区| 成人福利视频网站| 精品一二三四区| 国产精品国产自产拍高清av王其| 亚洲视频 欧洲视频| 日韩成人一级片| 亚洲免费在线播放| 欧美欧美欧美欧美首页| 日韩毛片高清在线播放| 亚洲成a人片在线不卡一二三区| 日本美女一区二区三区| 免费看日韩a级影片| 日韩精品一级中文字幕精品视频免费观看 | 久久综合99re88久久爱| 国产精品理论片| 午夜亚洲国产au精品一区二区| 奇米在线7777在线精品| 国产成人丝袜美腿| 欧美性一区二区| 国产午夜精品在线观看| 亚洲愉拍自拍另类高清精品| 夜夜嗨av一区二区三区网页| 久草中文综合在线| 精品国产91久久久久久久妲己 | 中文字幕亚洲区| **性色生活片久久毛片| 亚洲成人在线观看视频| 久久精品久久精品| 欧美日韩久久久久久| 欧美亚洲一区二区在线| 亚洲黄色免费网站| 成人福利视频在线看| 国产午夜精品一区二区三区视频| 亚洲欧美日韩小说| 9l国产精品久久久久麻豆| 国产精品视频在线看| 蜜桃久久久久久| 欧美高清精品3d| 国产精品久久久久天堂| 中文字幕欧美激情| 亚洲国产日韩综合久久精品| 久草精品在线观看| 久久久久久久久伊人| 不卡的看片网站| 国产激情一区二区三区桃花岛亚洲| 中文字幕一区av| 久久久影院官网| 欧美日韩国产影片| 91在线观看美女| 国产电影精品久久禁18| 奇米色777欧美一区二区| 亚洲一区视频在线| 最新日韩av在线| 国产精品日韩成人| 精品久久久久99| 91精品蜜臀在线一区尤物| 在线视频你懂得一区二区三区| 国产乱码字幕精品高清av| 日本美女一区二区三区视频| 亚洲国产精品久久久久婷婷884 | 国产精品69毛片高清亚洲| 天天操天天综合网| 亚洲高清免费视频| 亚洲免费色视频| 亚洲女人****多毛耸耸8| 国产精品美女久久久久久2018| 国产拍欧美日韩视频二区| 精品国产凹凸成av人网站| 欧美sm极限捆绑bd| 精品av久久707| 久久久久久久电影| 国产视频一区二区在线观看| 国产欧美日韩卡一| 国产精品青草综合久久久久99| 中文字幕成人av| 中文在线一区二区| 亚洲欧美另类综合偷拍| 亚洲色图清纯唯美| 亚洲成人免费在线观看| 日精品一区二区三区| 日韩av一区二区三区| 免费在线观看一区| 18涩涩午夜精品.www| 日韩欧美国产一二三区| 久久亚洲精华国产精华液| 日韩精品最新网址| 欧美久久久久久久久久| 色女孩综合影院| 欧洲亚洲国产日韩| 色又黄又爽网站www久久| 99国产精品久| 91视频在线观看| 色欧美日韩亚洲| 91成人网在线| 欧美在线高清视频| 乱一区二区av| 粉嫩嫩av羞羞动漫久久久| av亚洲精华国产精华精华| 色婷婷综合激情| 欧美一级日韩不卡播放免费| 亚洲精品在线免费观看视频| 国产精品短视频| 偷拍日韩校园综合在线| 国产精品99久久久久久宅男| 色婷婷香蕉在线一区二区| 欧美一区二区视频免费观看| 亚洲国产精品国自产拍av| 亚洲一区二区精品久久av| 男人的天堂久久精品| 丰满少妇久久久久久久| 欧美日韩一区二区三区高清| www成人在线观看| 有码一区二区三区| 国产在线播放一区三区四| 一本一本大道香蕉久在线精品 | 国产精品视频九色porn| 亚洲国产wwwccc36天堂| 粉嫩高潮美女一区二区三区| 欧美日韩高清一区二区| 中文字幕一区在线| 裸体歌舞表演一区二区| 欧美伊人久久大香线蕉综合69| 337p粉嫩大胆噜噜噜噜噜91av | 国产精品免费久久| 免费成人av在线播放| 色狠狠一区二区| 久久精品一二三| 日本中文字幕不卡| 91福利视频网站| 欧美激情一区二区三区四区| 日韩激情av在线| 91视频xxxx| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美国产精品一区二区| 天堂一区二区在线| 91麻豆免费看片| 国产日韩欧美不卡在线| 日韩精品电影在线观看| 在线观看成人小视频| 国产精品久久久久一区| 国产精品资源网站| 精品成人a区在线观看| 香蕉久久夜色精品国产使用方法| 色综合天天综合给合国产| 欧美国产成人精品| 国产揄拍国内精品对白| 日韩一级片网址| 日本不卡一区二区| 欧美亚洲一区二区在线| 一个色综合网站| aaa欧美日韩| 国产精品成人免费精品自在线观看| 国产自产高清不卡| 久久精品人人做人人爽人人| 精品一区二区三区在线观看国产 | 成人国产精品免费网站| 国产日本亚洲高清| 国产激情一区二区三区| 久久精品亚洲精品国产欧美kt∨ | 91九色02白丝porn| 亚洲精品国产成人久久av盗摄| 97成人超碰视| 亚洲人一二三区| 一本到不卡免费一区二区| 日韩毛片一二三区| 欧美最猛黑人xxxxx猛交| 亚洲黄色av一区| 欧美美女直播网站| 日韩高清一级片| 日韩免费福利电影在线观看| 国产乱人伦精品一区二区在线观看| 久久蜜桃香蕉精品一区二区三区| 国产在线播放一区| 国产精品久久久久久久久动漫 | 亚洲成精国产精品女| 欧美男人的天堂一二区| 日本欧美在线看| 精品噜噜噜噜久久久久久久久试看 | 日韩免费性生活视频播放| 美脚の诱脚舐め脚责91| 久久久精品影视| 色综合激情五月| 七七婷婷婷婷精品国产| 26uuu欧美日本| 波波电影院一区二区三区| 亚洲欧美日韩国产另类专区| 欧美日韩在线观看一区二区| 久国产精品韩国三级视频| 国产精品免费视频网站| 欧美日韩国产在线播放网站| 国产在线播放一区二区三区| 中日韩av电影|