You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.8 KiB

package ru.simsonic.rscPermissions;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.util.logging.Level;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
public enum Phrases
{
PLUGIN_ENABLED ("generic.enabled"),
PLUGIN_DISABLED ("generic.disabled"),
PLUGIN_METRICS ("generic.metrics"),
PLUGIN_RELOADED ("generic.reloaded"),
MYSQL_FETCHED ("mysql.fetched"),
;
private final String node;
private String phrase;
private Phrases(String node)
{
this.node = node;
}
@Override
public String toString()
{
return phrase;
}
public static void fill(Plugin plugin, String langName)
{
final File langFile = new File(plugin.getDataFolder(), langName + ".yml");
final YamlConfiguration langConfig = YamlConfiguration.loadConfiguration(langFile);
for(Phrases value : Phrases.values())
value.phrase = langConfig.getString(value.node, value.node);
}
public static void extractAll(Plugin plugin)
{
extract(plugin, "english");
extract(plugin, "russian");
}
public static void extract(Plugin plugin, String langName)
{
try
{
final File langFile = new File(plugin.getDataFolder(), langName + ".yml");
if(!langFile.isFile())
{
final FileChannel fileChannel = new FileOutputStream(langFile).getChannel();
final InputStream langStream = BukkitPluginMain.class.getResourceAsStream("/languages/" + langName + ".yml");
fileChannel.transferFrom(Channels.newChannel(langStream), 0, Long.MAX_VALUE);
}
} catch(IOException ex) {
BukkitPluginMain.consoleLog.log(Level.WARNING, "Cannot extract language: {0}\n{1}", new Object[] { langName, ex });
}
}
}