|
|
|
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 });
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|