Merge pull request #158 from kruland2607/l10nReport

Added little l10n properties analysis tool, and fixed some obvious errors in cs & it localizations.
This commit is contained in:
kruland2607 2013-10-11 13:25:55 -07:00
commit 6cd1bffc82
3 changed files with 97 additions and 7 deletions

View File

@ -1308,8 +1308,7 @@ PlotConfiguration.Flightside = Letov
PlotConfiguration.Stability = Stabilita vs. cas
PlotConfiguration.Dragcoef = Brzdící koeficient vs. Machovo císlo
PlotConfiguration.Rollcharacteristics = Charakteristiky prícného náklonu
PlotConfiguration.Angleofattack = Úhel nábehu a orientace
vs cas
PlotConfiguration.Angleofattack = Úhel nábehu a orientace vs cas
PlotConfiguration.Simulationtime = Simulacní krok a výpocetní cas
! Warning
@ -1582,10 +1581,7 @@ CustomFinImport.errorParsingFile = Chyba behem zpracov
CustomFinImport.undo = Importovat sadu volno tvarových stabilizátoru
CustomFinImport.error.title = Chyba behem nahrávání profilu stabilizátoru
CustomFinImport.error.badimage = Nemohu vyvodit tvar stabilizátoru z obrázku.
CustomFinImport.description = Obrázek bude zmenen na cernobílý
(cerná pro stabilizátor), ujistete se prosím, \u017Ee jste pou\u017Eily cernou barvu na stabilizátor
a bílou nebo svetlou barvu na pozadí. Stabilizátor
se musí dotýkat steny obrázku, která predstavuje uchycení pro stabilizátor.
CustomFinImport.description = Obrázek bude zmenen na cernobílý \n(cerná pro stabilizátor), ujistete se prosím, \u017Ee jste pou\u017Eily cernou barvu na stabilizátor \na bílou nebo svetlou barvu na pozadí. Stabilizátor \nse musí dotýkat steny obrázku, která predstavuje uchycení pro stabilizátor.
PresetModel.lbl.select = Výber predvolby:

View File

@ -1350,7 +1350,7 @@ FlightDataType.TYPE_ROLL_FORCING_COEFF = Roll forcing coefficient
FlightDataType.TYPE_ROLL_DAMPING_COEFF = Roll damping coefficient
FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Pitch damping coefficient
FlightDataType.TYPE_YAW_DAMPING_MOMENT_COEFF = Yaw damping coefficient
FlightDataType.TYPE_REFERENCE_Lunghezza = Reference lenght
FlightDataType.TYPE_REFERENCE_LENGTH = Reference length
FlightDataType.TYPE_REFERENCE_AREA = Reference area
FlightDataType.TYPE_ORIENTATION_THETA = Orientazione verticale (zenith)
FlightDataType.TYPE_ORIENTATION_PHI = Orientazione laterale (azimuth)

View File

@ -0,0 +1,94 @@
package net.sf.openrocket.utils;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import net.sf.openrocket.gui.util.SwingPreferences;
public class L10nPropertyReport {
public static void main(String[] args) throws Exception {
Properties english;
Map<String, Properties> langs = new HashMap<String, Properties>();
System.out.println("Loading All Resource files");
english = new Properties();
InputStream in = L10nPropertyReport.class.getResourceAsStream("/l10n/messages.properties");
english.load(in);
System.out.println("en contains " + english.keySet().size());
for (Locale l : SwingPreferences.getSupportedLocales()) {
String localename = l.getLanguage();
if ("en".equals(localename)) {
continue;
}
Properties p = new Properties();
in = L10nPropertyReport.class.getResourceAsStream("/l10n/messages_" + localename + ".properties");
p.load(in);
System.out.println(localename + " contains " + p.keySet().size());
langs.put(localename, p);
}
// check for languages missing an en key:
List<String> sortedKeys = getSortedKeys(english);
for (String key : sortedKeys) {
List<String> missing = new ArrayList<String>(10);
for (Map.Entry<String, Properties> en : langs.entrySet()) {
if (en.getValue().getProperty(key) != null) {
continue;
}
missing.add(en.getKey());
}
if (missing.size() > 0) {
System.out.println(key + " missing from " + missing);
}
}
// Check each locale for extra keys:
for (Map.Entry<String, Properties> lang : langs.entrySet()) {
System.out.println("Extra keys in " + lang.getKey());
sortedKeys = getSortedKeys(lang.getValue());
for (String key : sortedKeys) {
if (english.getProperty(key) == null) {
System.out.println("\t" + key);
}
}
}
}
private static List<String> getSortedKeys(Properties p) {
List<String> sortedKeys = new ArrayList<String>(p.keySet().size());
for (Object obj : p.keySet()) {
sortedKeys.add((String) obj);
}
Collections.sort(sortedKeys);
return sortedKeys;
}
}