⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 translatemanager.java

📁 是一款国外的网络游戏平台的源码*不是类似浩方那种虚拟局域网技术
💻 JAVA
字号:
/*
 * Created on Apr 13, 2006
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package org.GTADS.usermanager;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Hashtable;

import org.GTADS.client.preferences.PreferencesManager;

/**
 * @author Administrator
 *
 * Client side translation manager
 */
public class TranslateManager {
	private Hashtable programText = new Hashtable();
	private Hashtable locale = new Hashtable();
	private static TranslateManager instance;
	private String defaultLocale = "en";
	
	public static TranslateManager getInstance(){
		if (instance == null){
			instance = new TranslateManager();
		}
		return instance;
	}
	
	public static void clearInstance(){
		if (instance != null){
			instance = null;
		}
	}
	
	public TranslateManager(){
		// Read in file from locale
		// for each Label=
		readInLocaleFile();
	}
	
	public void readInLocaleFile(){
		String localeFileName = "locale";
		File localeFile = new File(localeFileName);
		ArrayList localeBuffer = new ArrayList();
		
		try {
			boolean isEOF = false;
			//FileReader fileInput = new FileReader(localeFile);
			//BufferedReader buffer = new BufferedReader(fileInput);
			DataInputStream d = new DataInputStream(new FileInputStream(localeFile));

			String temp = new String();
			//fileInput.getEncoding();

			while (!isEOF){
				temp = d.readLine();
				if (temp != null){
					localeBuffer.add(temp);
				}
				else {
					isEOF = true;
				}
			}
		
		} catch (FileNotFoundException fnf){
			return;
		} catch (IOException ioe){
			ioe.printStackTrace();
			return;
		}
		
		String currentLabel = new String();
		for (int i = 0; i < localeBuffer.size(); i++){
			String listString = (String)localeBuffer.get(i);
			String[] sArray = listString.split("=");
			
			if (sArray.length >= 2){
				if (sArray[0].equalsIgnoreCase("label")){
					currentLabel = getValue(listString);
					if (!programText.containsKey(currentLabel.toLowerCase())){
						programText.put(currentLabel.toLowerCase(),new Hashtable());
					}
				}
				else {
					Hashtable temp = (Hashtable)programText.get(currentLabel.toLowerCase());
					if (temp != null){
						String value = getValue(listString);
						temp.put(sArray[0],value);
					}
				}
			}
		}
	}
	
	private String readLine(BufferedReader b){
		String fileLine = new String();
		char[] rawFileData;
		char currentBit = 0;
		int count = 0;
		try {
		while (currentBit != '\n'){
			currentBit = (char)b.read();
			fileLine += currentBit;
		}
		} catch (IOException ioe){
			return null;
		}
				
		return fileLine;
	}
	
	private String getValue(String s){
		String value = null;
		String[] sArray = s.split("=");
		if (sArray.length == 2){
			value = sArray[1];
		}
		else if (sArray.length > 2){
			for (int i = 1; i < sArray.length; i++){
				value += sArray[i];
			}
		}
		return value;
	}
	
	public String printLocale(String printable){
		String translatedText = printable;
		String locale = PreferencesManager.getInstance().getLocale().toLowerCase();
		
		if (programText.containsKey(translatedText.toLowerCase())){
			Hashtable temp = (Hashtable)programText.get(translatedText.toLowerCase());
			if (temp != null){
				String tempString = (String)temp.get(locale);
				if (tempString != null){
					translatedText = tempString;
				}
			}
		}
		
		return translatedText;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -