diff --git a/src/main/java/net/citizensnpcs/Citizens.java b/src/main/java/net/citizensnpcs/Citizens.java index 98b06e3f1..c2d8c196a 100644 --- a/src/main/java/net/citizensnpcs/Citizens.java +++ b/src/main/java/net/citizensnpcs/Citizens.java @@ -3,7 +3,6 @@ package net.citizensnpcs; import java.io.File; import java.io.IOException; import java.util.Iterator; -import java.util.Locale; import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.CitizensAPI; @@ -43,7 +42,6 @@ import net.citizensnpcs.npc.NPCSelector; import net.citizensnpcs.util.Messages; import net.citizensnpcs.util.Messaging; import net.citizensnpcs.util.StringHelper; -import net.citizensnpcs.util.Translator; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; @@ -209,7 +207,6 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { return; } config = new Settings(getDataFolder()); - setupTranslator(); registerScriptHelpers(); saves = NPCDataStore.create(getDataFolder()); @@ -318,29 +315,6 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { // allows all plugin classes to be imported. } - private void setupTranslator() { - Locale locale = Locale.getDefault(); - String setting = Setting.LOCALE.asString(); - if (!setting.isEmpty()) { - String[] parts = setting.split("[\\._]"); - switch (parts.length) { - case 1: - locale = new Locale(parts[0]); - break; - case 2: - locale = new Locale(parts[0], parts[1]); - break; - case 3: - locale = new Locale(parts[0], parts[1], parts[2]); - break; - default: - break; - } - } - Translator.setInstance(new File(getDataFolder(), "lang"), locale); - Messaging.logTr(Messages.LOCALE_NOTIFICATION, locale); - } - private void startMetrics() { try { metrics = new Metrics(Citizens.this); diff --git a/src/main/java/net/citizensnpcs/util/Translator.java b/src/main/java/net/citizensnpcs/util/Translator.java index 418c1a43c..875f1c328 100644 --- a/src/main/java/net/citizensnpcs/util/Translator.java +++ b/src/main/java/net/citizensnpcs/util/Translator.java @@ -19,6 +19,9 @@ import java.util.Properties; import java.util.PropertyResourceBundle; import java.util.ResourceBundle; +import net.citizensnpcs.Settings.Setting; +import net.citizensnpcs.api.CitizensAPI; + import com.google.common.collect.Maps; import com.google.common.io.Closeables; import com.google.common.io.Files; @@ -246,16 +249,39 @@ public class Translator { } } - public static void setInstance(File resourceFile, Locale locale) { - instance = new Translator(resourceFile, locale); - } - public static String translate(String key, Locale preferredLocale, Object... msg) { + if (instance == null) + createInstance(); return StringHelper.parseColors(msg.length == 0 ? instance.translate(key, preferredLocale) : instance .format(key, preferredLocale, msg)); } public static String translate(String key, Object... msg) { + if (instance == null) + createInstance(); return translate(key, instance.defaultLocale, msg); } + + private static void createInstance() { + Locale locale = Locale.getDefault(); + String setting = Setting.LOCALE.asString(); + if (!setting.isEmpty()) { + String[] parts = setting.split("[\\._]"); + switch (parts.length) { + case 1: + locale = new Locale(parts[0]); + break; + case 2: + locale = new Locale(parts[0], parts[1]); + break; + case 3: + locale = new Locale(parts[0], parts[1], parts[2]); + break; + default: + break; + } + } + instance = new Translator(new File(CitizensAPI.getDataFolder(), "lang"), locale); + Messaging.logTr(Messages.LOCALE_NOTIFICATION, locale); + } }