📄 translatemanager.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 + -