recursive Translations.

You can now translate the Menu and other things in subfolders, too


git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@508 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
allo 2005-08-09 14:27:18 +00:00
parent b32e7c516c
commit ee0a9a2d9b
4 changed files with 24 additions and 6 deletions

View File

@ -100,7 +100,7 @@ public class Language_p {
File destDir = new File(env.getRootPath(), htRootPath + "/locale/"+lang.substring(0,lang.length()-4));//cut .lng
File translationFile = new File(langPath, lang);
if(translator.translateFiles(sourceDir, destDir, translationFile, "html")){
if(translator.translateFilesRecursive(sourceDir, destDir, translationFile, "html")){
env.setConfig("htLocaleSelection", lang.substring(0,lang.length()-4));
try{
BufferedWriter bw = new BufferedWriter(new PrintWriter(new FileWriter(new File(destDir, "version"))));

View File

@ -204,18 +204,21 @@ public class listManager {
return null;
}
public static Vector getDirsRecursive(File dir){
return getDirsRecursive(dir, true);
}
/**
* Returns a List of all dirs and subdirs as File Objects
*
* Warning: untested
*/
public static Vector getDirsRecursive(File dir){
public static Vector getDirsRecursive(File dir, boolean excludeDotfiles){
File[] dirList = dir.listFiles();
Vector resultList = new Vector();
Vector recursive;
Iterator it;
for(int i=0;i<dirList.length;i++){
if(dirList[i].isDirectory()){
if(dirList[i].isDirectory() && (!excludeDotfiles || !dirList[i].getName().startsWith(".")) ){
resultList.add(dirList[i]);
recursive = getDirsRecursive(dirList[i]);
it=recursive.iterator();

View File

@ -57,6 +57,7 @@ import java.util.Iterator;
import java.util.Vector;
import de.anomic.server.logging.serverLog;
import de.anomic.data.listManager;
/**
* Wordlist based translator
@ -169,10 +170,10 @@ public class translator {
if(translateFile(sourceFiles[i], new File(destDir, sourceFiles[i].getName()), (Hashtable)translationLists.get(sourceFiles[i].getName()))){
serverLog.logInfo("Translator", "Translated file: "+ sourceFiles[i].getName());
}else{
serverLog.logError("Translator", "File error while translating file "+sourceFiles[i].getName());
serverLog.logError("Translator", "File error while translating file "+sourceFiles[i].getPath());
}
}else{
serverLog.logInfo("Translator", "No translation for file: "+sourceFiles[i].getName());
serverLog.logInfo("Translator", "No translation for file: "+sourceFiles[i].getPath());
}
}
@ -180,5 +181,19 @@ public class translator {
return true;
}
public static boolean translateFilesRecursive(File sourceDir, File destDir, File translationFile, String extension){
Vector dirList=listManager.getDirsRecursive(sourceDir);
Iterator it=dirList.iterator();
String sourceName=sourceDir.getPath();
String destName=destDir.getPath();
File dir=null;
File dir2=null;
while(it.hasNext()){
dir=(File)it.next();
dir2=new File(dir.getPath().replaceFirst(sourceName, destName));
translateFiles(dir, dir2, translationFile, extension);
}
return true;
}
}

View File

@ -395,7 +395,7 @@ public final class yacy {
if(! currentRev.equals(sb.getConfig("svnRevision", "")) ){ //is this another version?!
File sourceDir = new File(sb.getConfig("htRootPath", "htroot"));
File destDir = new File(sourceDir, "locale/"+lang);
if(translator.translateFiles(sourceDir, destDir, new File("DATA/LOCALE/"+lang+".lng"), "html")){ //translate it
if(translator.translateFilesRecursive(sourceDir, destDir, new File("DATA/LOCALE/"+lang+".lng"), "html")){ //translate it
//write the new Versionnumber
BufferedWriter bw = new BufferedWriter(new PrintWriter(new FileWriter(new File(destDir, "version"))));
bw.write(sb.getConfig("svnRevision", "Error getting Version"));