public class org.apache.wiki.TranslationsCheck extends java.lang.Object
{
private static final java.lang.String[] LANGS;
private static final java.lang.String SITE_I18N_ROW;
private final java.util.TreeSet allProps;
private final java.util.TreeSet duplProps;
java.lang.String base;
java.lang.String suffix;
public void <init>()
{
java.util.TreeSet v, v;
org.apache.wiki.TranslationsCheck v;
v := @this: org.apache.wiki.TranslationsCheck;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.TreeSet;
specialinvoke v.<java.util.TreeSet: void <init>()>();
v.<org.apache.wiki.TranslationsCheck: java.util.TreeSet allProps> = v;
v = new java.util.TreeSet;
specialinvoke v.<java.util.TreeSet: void <init>()>();
v.<org.apache.wiki.TranslationsCheck: java.util.TreeSet duplProps> = v;
v.<org.apache.wiki.TranslationsCheck: java.lang.String base> = ".";
return;
}
public static void main(java.lang.String[]) throws java.io.IOException
{
byte[] v;
java.lang.String[] v, v, v, v;
java.nio.charset.Charset v;
java.nio.file.OpenOption[] v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v;
java.nio.file.Path v;
boolean v;
java.io.PrintStream v, v, v;
org.apache.wiki.TranslationsCheck v;
java.lang.StringBuilder v;
v := @parameter: java.lang.String[];
v = new org.apache.wiki.TranslationsCheck;
specialinvoke v.<org.apache.wiki.TranslationsCheck: void <init>()>();
v = lengthof v;
if v != 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("Usage: java TranslationsCheck <language> [<path>]");
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("Example: java TranslationsCheck nl [jspwiki-main/src/main/resources]");
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("To output site i18n info use java TranslationsCheck site [<path>]");
return;
label:
v = v[0];
v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix> = v;
v = lengthof v;
if v < 2 goto label;
v = v[1];
v.<org.apache.wiki.TranslationsCheck: java.lang.String base> = v;
label:
v = "site";
v = v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = 0;
label:
v = <org.apache.wiki.TranslationsCheck: java.lang.String[] LANGS>;
v = lengthof v;
if v >= v goto label;
v = <org.apache.wiki.TranslationsCheck: java.lang.String[] LANGS>;
v = v[v];
v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix> = v;
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.lang.String check(int)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</table>\n</div>\n</div>\n</div>");
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>("./i18n-table.txt", v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
v = newarray (java.nio.file.OpenOption)[0];
staticinvoke <java.nio.file.Files: java.nio.file.Path write(java.nio.file.Path,byte[],java.nio.file.OpenOption[])>(v, v, v);
goto label;
label:
v = (int) -1;
virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.lang.String check(int)>(v);
label:
return;
}
java.lang.String check(int) throws java.io.IOException
{
java.lang.Integer v, v, v;
java.util.Map v, v, v;
boolean v;
java.lang.Object[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.io.PrintStream v;
org.apache.wiki.TranslationsCheck v;
java.lang.Object v, v, v, v, v, v, v, v, v;
v := @this: org.apache.wiki.TranslationsCheck;
v := @parameter: int;
v = <java.lang.System: java.io.PrintStream out>;
v = v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Internationalization property file differences between \'default en\' and \'\u0001\' following:\n");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = "en";
v = v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = "";
goto label;
label:
v = v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("_\u0001");
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("/CoreResources\u.properties");
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.util.Map checkFile(java.lang.String,java.lang.String)>("/CoreResources.properties", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("/templates/default\u.properties");
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.util.Map checkFile(java.lang.String,java.lang.String)>("/templates/default.properties", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("/plugin/PluginResources\u.properties");
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.util.Map checkFile(java.lang.String,java.lang.String)>("/plugin/PluginResources.properties", v);
if v < 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("expected");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("expected");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + v;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("expected");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + v;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("missing");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("missing");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + v;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("missing");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + v;
v = v - v;
v = 100 * v;
v = v / v;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("outdated");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("outdated");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + v;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("outdated");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + v;
v = v % 2;
if v != 0 goto label;
v = " class=\"odd\"";
goto label;
label:
v = "";
label:
v = newarray (java.lang.Object)[7];
v[0] = v;
v = v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix>;
v[1] = v;
v = v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix>;
v[2] = v;
v = v.<org.apache.wiki.TranslationsCheck: java.lang.String suffix>;
v[3] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[4] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[5] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[6] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("<tr%s>\n  <td title=\"Available sets of core WikiPages for %s\"><a class=\"external\" href=\"https://search.maven.org/artifact/org.apache.jspwiki.wikipages/jspwiki-wikipages-%s\">%s</a></td>\n  <td>%d%%</td>\n  <td>%d</td>\n  <td>%d</td>\n</tr>\n", v);
return v;
label:
return "";
}
java.util.Map checkFile(java.lang.String, java.lang.String) throws java.io.IOException
{
java.util.HashMap v;
java.lang.Integer v;
java.util.TreeSet v, v;
java.util.Map v;
int v, v;
java.lang.String v, v, v;
boolean v;
java.io.PrintStream v, v, v, v, v, v;
java.util.Iterator v;
org.apache.wiki.TranslationsCheck v;
java.io.FileNotFoundException v;
java.lang.Object v;
v := @this: org.apache.wiki.TranslationsCheck;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
label:
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.util.Map diff(java.lang.String,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: int detectDuplicates(java.lang.String)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("duplicates", v);
label:
goto label;
label:
v := @caughtexception;
v = <java.lang.System: java.io.PrintStream err>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unable to locate \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("Duplicates overall (two or more occurences):");
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("--------------------------------------------");
v = v.<org.apache.wiki.TranslationsCheck: java.util.TreeSet duplProps>;
v = virtualinvoke v.<java.util.TreeSet: java.util.Iterator iterator()>();
v = v.<org.apache.wiki.TranslationsCheck: java.util.TreeSet duplProps>;
v = virtualinvoke v.<java.util.TreeSet: int size()>();
if v != 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("(none)");
goto label;
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
goto label;
label:
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println()>();
return v;
catch java.io.FileNotFoundException from label to label with label;
}
public java.util.Map diff(java.lang.String, java.lang.String) throws java.io.IOException
{
java.lang.Integer v, v, v;
boolean v, v;
java.util.List v, v;
java.util.HashMap v;
int v, v, v;
java.lang.String v, v, v, v, v, v, v;
java.io.PrintStream v, v, v, v, v, v, v, v, v;
java.util.Properties v, v;
java.util.Iterator v, v;
org.apache.wiki.TranslationsCheck v;
java.lang.Object v, v, v, v;
java.io.InputStream v, v;
v := @this: org.apache.wiki.TranslationsCheck;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = 0;
v = 0;
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
virtualinvoke v.<java.util.Properties: void load(java.io.InputStream)>(v);
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
virtualinvoke v.<java.util.Properties: void load(java.io.InputStream)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Checking \u...");
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = specialinvoke v.<org.apache.wiki.TranslationsCheck: java.util.List sortedNames(java.util.Properties)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.util.Properties: java.lang.String getProperty(java.lang.String)>(v);
v = virtualinvoke v.<java.util.Properties: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v + 1;
if v != 1 goto label;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("\nMissing:");
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("--------");
label:
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u = \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
goto label;
label:
if v <= 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println()>();
label:
v = specialinvoke v.<org.apache.wiki.TranslationsCheck: java.util.List sortedNames(java.util.Properties)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.util.Properties: java.lang.String getProperty(java.lang.String)>(v);
v = virtualinvoke v.<java.util.Properties: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v + 1;
if v != 1 goto label;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("\nOutdated or superfluous:");
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("------------------------");
label:
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u = \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
goto label;
label:
if v <= 0 goto label;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println()>();
label:
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>(int)>(2);
v = virtualinvoke v.<java.util.Properties: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("expected", v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("missing", v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("outdated", v);
return v;
}
private java.util.List sortedNames(java.util.Properties)
{
java.util.Properties v;
java.util.Enumeration v;
org.apache.wiki.TranslationsCheck v;
java.lang.Object v;
boolean v;
java.util.ArrayList v;
v := @this: org.apache.wiki.TranslationsCheck;
v := @parameter: java.util.Properties;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<java.util.Properties: java.util.Enumeration propertyNames()>();
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
staticinvoke <java.util.Collections: void sort(java.util.List)>(v);
return v;
}
public int detectDuplicates(java.lang.String) throws java.io.IOException
{
java.util.Properties v;
java.util.Enumeration v;
org.apache.wiki.TranslationsCheck v;
java.util.TreeSet v, v, v;
int v;
java.lang.Object v;
java.lang.String v;
boolean v, v;
java.io.InputStream v;
v := @this: org.apache.wiki.TranslationsCheck;
v := @parameter: java.lang.String;
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
v = virtualinvoke v.<org.apache.wiki.TranslationsCheck: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
virtualinvoke v.<java.util.Properties: void load(java.io.InputStream)>(v);
v = virtualinvoke v.<java.util.Properties: java.util.Enumeration propertyNames()>();
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
v = v.<org.apache.wiki.TranslationsCheck: java.util.TreeSet allProps>;
v = virtualinvoke v.<java.util.TreeSet: boolean add(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.apache.wiki.TranslationsCheck: java.util.TreeSet duplProps>;
virtualinvoke v.<java.util.TreeSet: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.wiki.TranslationsCheck: java.util.TreeSet duplProps>;
v = virtualinvoke v.<java.util.TreeSet: int size()>();
return v;
}
java.io.InputStream getResourceAsStream(java.lang.String)
{
org.apache.wiki.TranslationsCheck v;
java.lang.Class v;
java.lang.ClassLoader v;
java.lang.String v, v, v;
java.io.InputStream v;
v := @this: org.apache.wiki.TranslationsCheck;
v := @parameter: java.lang.String;
v = class "Lorg/apache/wiki/TranslationsCheck;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = v.<org.apache.wiki.TranslationsCheck: java.lang.String base>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
v = virtualinvoke v.<java.lang.ClassLoader: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
return v;
}
static void <clinit>()
{
java.lang.String[] v;
v = newarray (java.lang.String)[10];
v[0] = "de";
v[1] = "en";
v[2] = "es";
v[3] = "fi";
v[4] = "fr";
v[5] = "it";
v[6] = "nl";
v[7] = "pt_BR";
v[8] = "ru";
v[9] = "zh_CN";
<org.apache.wiki.TranslationsCheck: java.lang.String[] LANGS> = v;
return;
}
}