package mods.eln.i18n; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Map; import java.util.Properties; import java.util.Set; class LanguageFileUpdater { private LanguageFileUpdater() { } private static void updateFile(final File languageFile, final Map<String, Set<TranslationItem>> stringsToTranslate) throws IOException { // Parse the existing translations from the language file. Properties existingTranslations = new Properties(); existingTranslations.load(new FileInputStream(languageFile)); // Update the existing language file. LanguageFileGenerator.updateFile(languageFile, stringsToTranslate, existingTranslations); } public static void main(String... args) { try { if (args.length != 2) System.exit(1); final File srcFolder = new File(args[0]); final File languageFileOrFolder = new File(args[1]); // Check if the source folder is present. if (!srcFolder.isDirectory()) System.exit(1); // Get the strings to translate from the actual source code. Map<String, Set<TranslationItem>> stringsToTranslate = SourceCodeParser.parseSourceFolder(srcFolder); // If a single file is passed to the main method, we just update that particular file. if (languageFileOrFolder.isFile()) { updateFile(languageFileOrFolder, stringsToTranslate); } else if (languageFileOrFolder.isDirectory()) { for (File file : languageFileOrFolder.listFiles()) { if (file.getName().endsWith(".lang") && !file.getName().startsWith("_")) { updateFile(file, stringsToTranslate); } } } } catch (IOException e) { e.printStackTrace(); Runtime.getRuntime().exit(1); } } }