diff options
Diffstat (limited to 'src/Java/binnie/core/language/ManagerLanguage.java')
-rw-r--r-- | src/Java/binnie/core/language/ManagerLanguage.java | 59 |
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); + } +} |