aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/core/language/ManagerLanguage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/core/language/ManagerLanguage.java')
-rw-r--r--src/Java/binnie/core/language/ManagerLanguage.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/Java/binnie/core/language/ManagerLanguage.java b/src/Java/binnie/core/language/ManagerLanguage.java
new file mode 100644
index 0000000000..b4deb37344
--- /dev/null
+++ b/src/Java/binnie/core/language/ManagerLanguage.java
@@ -0,0 +1,59 @@
+package binnie.core.language;
+
+import binnie.core.AbstractMod;
+import binnie.core.ManagerBase;
+import java.util.HashMap;
+import java.util.Map;
+import net.minecraft.util.StatCollector;
+
+public class ManagerLanguage
+ extends ManagerBase
+{
+ private Map<Object, String> objNames = new HashMap();
+
+ public void addObjectName(Object obj, String name)
+ {
+ this.objNames.put(obj, name);
+ }
+
+ public String unlocalised(AbstractMod mod, String id)
+ {
+ return mod.getModID() + "." + id;
+ }
+
+ public String localise(Object key)
+ {
+ String loc = StatCollector.translateToLocal(key.toString());
+ if (loc.equals(key.toString())) {
+ return this.objNames.containsKey(key) ? localise(this.objNames.get(key)) : key.toString();
+ }
+ return loc;
+ }
+
+ public String localise(AbstractMod mod, String id)
+ {
+ return localise(unlocalised(mod, id));
+ }
+
+ public String localiseOrBlank(AbstractMod mod, String id)
+ {
+ return localiseOrBlank(unlocalised(mod, id));
+ }
+
+ public String localise(AbstractMod mod, String id, Object... objs)
+ {
+ return String.format(localise(mod, id), objs);
+ }
+
+ public String localiseOrBlank(Object key)
+ {
+ String trans = localise(key);
+ return trans.equals(key) ? "" : trans;
+ }
+
+ public boolean canLocalise(Object key)
+ {
+ String trans = localise(key);
+ return !trans.equals(key);
+ }
+}