mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-07-08 03:58:18 +00:00
trunk contents moved to root
This commit is contained in:
134
src/com/jpexs/decompiler/flash/gui/helpers/CheckResources.java
Normal file
134
src/com/jpexs/decompiler/flash/gui/helpers/CheckResources.java
Normal file
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2014 JPEXS
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.gui.helpers;
|
||||
|
||||
import com.jpexs.decompiler.flash.gui.AboutDialog;
|
||||
import com.jpexs.decompiler.flash.gui.AdvancedSettingsDialog;
|
||||
import com.jpexs.decompiler.flash.gui.ErrorLogFrame;
|
||||
import com.jpexs.decompiler.flash.gui.ExportDialog;
|
||||
import com.jpexs.decompiler.flash.gui.FontEmbedDialog;
|
||||
import com.jpexs.decompiler.flash.gui.FontPreviewDialog;
|
||||
import com.jpexs.decompiler.flash.gui.GraphFrame;
|
||||
import com.jpexs.decompiler.flash.gui.LoadFromCacheFrame;
|
||||
import com.jpexs.decompiler.flash.gui.LoadFromMemoryFrame;
|
||||
import com.jpexs.decompiler.flash.gui.LoadingDialog;
|
||||
import com.jpexs.decompiler.flash.gui.MainFrame;
|
||||
import com.jpexs.decompiler.flash.gui.ModeFrame;
|
||||
import com.jpexs.decompiler.flash.gui.NewVersionDialog;
|
||||
import com.jpexs.decompiler.flash.gui.RenameDialog;
|
||||
import com.jpexs.decompiler.flash.gui.SearchDialog;
|
||||
import com.jpexs.decompiler.flash.gui.SelectLanguageDialog;
|
||||
import com.jpexs.decompiler.flash.gui.abc.DeobfuscationDialog;
|
||||
import com.jpexs.decompiler.flash.gui.abc.NewTraitDialog;
|
||||
import com.jpexs.decompiler.flash.gui.abc.UsageFrame;
|
||||
import com.jpexs.decompiler.flash.gui.proxy.ProxyFrame;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class CheckResources {
|
||||
|
||||
public static void checkResources(PrintStream stream) {
|
||||
Class[] classes = new Class[]{
|
||||
AboutDialog.class,
|
||||
AdvancedSettingsDialog.class,
|
||||
ErrorLogFrame.class,
|
||||
ExportDialog.class,
|
||||
FontEmbedDialog.class,
|
||||
FontPreviewDialog.class,
|
||||
GraphFrame.class,
|
||||
// GraphTreeFrame.class, // empty
|
||||
LoadFromCacheFrame.class,
|
||||
LoadFromMemoryFrame.class,
|
||||
LoadingDialog.class,
|
||||
MainFrame.class,
|
||||
ModeFrame.class,
|
||||
NewVersionDialog.class,
|
||||
RenameDialog.class,
|
||||
SearchDialog.class,
|
||||
SelectLanguageDialog.class,
|
||||
ProxyFrame.class,
|
||||
DeobfuscationDialog.class,
|
||||
NewTraitDialog.class,
|
||||
UsageFrame.class,};
|
||||
for (Class clazz : classes) {
|
||||
checkResources(clazz, stream);
|
||||
}
|
||||
}
|
||||
|
||||
public static void checkResources(Class clazz, PrintStream stream) {
|
||||
try {
|
||||
Properties prop = new Properties();
|
||||
String[] languages = SelectLanguageDialog.getAvailableLanguages();
|
||||
String resourcePath = getResourcePath(clazz, null);
|
||||
InputStream is = CheckResources.class.getResourceAsStream(resourcePath);
|
||||
if (is == null) {
|
||||
stream.println("Resource file not found: " + resourcePath);
|
||||
return;
|
||||
}
|
||||
prop.load(is);
|
||||
Set<Object> keys = prop.keySet();
|
||||
|
||||
for (String lang : languages) {
|
||||
if (lang.equals("en")) {
|
||||
continue;
|
||||
}
|
||||
Properties prop2 = new Properties();
|
||||
resourcePath = getResourcePath(clazz, lang);
|
||||
is = CheckResources.class.getResourceAsStream(resourcePath);
|
||||
if (is == null) {
|
||||
stream.println(lang + ": Resource file not found: " + resourcePath);
|
||||
continue;
|
||||
}
|
||||
prop2.load(is);
|
||||
|
||||
for (Object key : keys) {
|
||||
String value = prop2.getProperty((String) key);
|
||||
if (value == null) {
|
||||
stream.println(lang + ": Property not found in resource file: " + clazz.getSimpleName() + ", property: " + key);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (FileNotFoundException ex) {
|
||||
Logger.getLogger(CheckResources.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(CheckResources.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
private static String getResourcePath(Class cls, String lang) {
|
||||
String name = cls.getName();
|
||||
if (name.startsWith("com.jpexs.decompiler.flash.gui.")) {
|
||||
name = name.substring("com.jpexs.decompiler.flash.gui.".length());
|
||||
name = "/com/jpexs/decompiler/flash/gui/locales/" + name.replace(".", "/");
|
||||
if (lang != null) {
|
||||
name += "_" + lang;
|
||||
}
|
||||
name += ".properties";
|
||||
}
|
||||
return name;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user