package universalelectricity.prefab; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; /** * A class to help you out with translations. * * @author Calclavia * */ public class TranslationHelper { /** * Loads all the language files for a mod. This supports the loading of "child" language files * for sub-languages to be loaded all from one file instead of creating multiple of them. An * example of this usage would be different Spanish sub-translations (es_MX, es_YU). * * @param languagePath - The path to the mod's language file folder. * @param languageSupported - The languages supported. E.g: new String[]{"en_US", "en_AU", * "en_UK"} * @return The amount of language files loaded successfully. */ public static int loadLanguages(String languagePath, String[] languageSupported) { int languages = 0; /** * Load all languages. */ for (String language : languageSupported) { LanguageRegistry.instance().loadLocalization(languagePath + language + ".properties", language, false); if (LanguageRegistry.instance().getStringLocalization("children", language) != "") { try { String[] children = LanguageRegistry.instance().getStringLocalization("children", language).split(","); for (String child : children) { if (child != "" || child != null) { LanguageRegistry.instance().loadLocalization(languagePath + language + ".properties", child, false); languages++; } } } catch (Exception e) { FMLLog.severe("Failed to load a child language file."); e.printStackTrace(); } } languages++; } return languages; } /** * Gets the local text of your translation based on the given key. This will look through your * mod's translation file that was previously registered. Make sure you enter the full name * * @param key - e.g tile.block.name * @return The translated string or the default English translation if none was found. */ public static String getLocal(String key) { String text = null; if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) { text = LanguageRegistry.instance().getStringLocalization(key); } if (text == null || text == "") { text = LanguageRegistry.instance().getStringLocalization(key, "en_US"); } return text; } }