package net.buycraft.plugin.shared.config; import lombok.Getter; import java.io.IOException; import java.io.Reader; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.text.MessageFormat; import java.util.Locale; import java.util.PropertyResourceBundle; import java.util.ResourceBundle; public class BuycraftI18n { @Getter private ResourceBundle bundle; @Getter private ResourceBundle userBundle; public BuycraftI18n(Locale locale) { bundle = ResourceBundle.getBundle("buycraftx_messages", locale); } public void loadUserBundle(Path resource) throws IOException { try (Reader reader = Files.newBufferedReader(resource, StandardCharsets.UTF_8)) { userBundle = new PropertyResourceBundle(reader); } } public String get(String message, Object... params) { return MessageFormat.format(getBundleFor(message).getString(message), params); } public ResourceBundle getBundleFor(String message) { return userBundle != null && userBundle.containsKey(message) ? userBundle : bundle; } }