1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
package net.tylermurphy.hideAndSeek.configuration;
import net.md_5.bungee.api.ChatColor;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class Localization {
public static final Map<String,LocalizationString> LOCAL = new HashMap<>();
public static final Map<String,LocalizationString> DEFAULT_LOCAL = new HashMap<>();
private static final Map<String,String[][]> CHANGES = new HashMap<String,String[][]>() {{
put("en-US", new String[][]{
{"WORLDBORDER_DECREASING"},
{"START","TAUNTED"},
{"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"}
});
put("de-DE", new String[][]{
{},
{"TAUNTED"},
{"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"}
});
}};
public static void loadLocalization() {
ConfigManager manager = ConfigManager.create("localization.yml", "lang/localization_"+Config.locale +".yml");
int PLUGIN_VERSION = manager.getDefaultInt("version");
int VERSION = manager.getInt("version");
if (VERSION < PLUGIN_VERSION) {
for(int i = VERSION; i < PLUGIN_VERSION; i++) {
if (i < 1) continue;
String[] changeList = CHANGES.get(Config.locale)[i-1];
for(String change : changeList)
manager.reset("Localization." + change);
}
manager.reset("version");
}
String SELECTED_LOCAL = manager.getString("type");
if (SELECTED_LOCAL == null) {
manager.reset("type");
} else if (!SELECTED_LOCAL.equals(Config.locale)) {
manager.resetFile("lang"+File.separator+"localization_"+Config.locale +".yml");
}
manager.saveConfig();
for(String key : manager.getConfigurationSection("Localization").getKeys(false)) {
LOCAL.put(
key,
new LocalizationString( ChatColor.translateAlternateColorCodes('&', manager.getString("Localization."+key) ) )
);
}
for(String key : manager.getDefaultConfigurationSection("Localization").getKeys(false)) {
DEFAULT_LOCAL.put(
key,
new LocalizationString( ChatColor.translateAlternateColorCodes('&', manager.getString("Localization."+key) ) )
);
}
}
public static LocalizationString message(String key) {
LocalizationString message = LOCAL.get(key);
if (message == null) {
LocalizationString defaultMessage = DEFAULT_LOCAL.get(key);
if(defaultMessage == null) {
return new LocalizationString(ChatColor.RED + "" + ChatColor.ITALIC + key + " is not found in localization.yml. This is a plugin issue, please report it.");
}
return new LocalizationString(defaultMessage.toString());
}
return new LocalizationString(message.toString());
}
}
|