- 1,976
- 68
- 220
Доброго всем времени суток о/
В общем, есть у меня команда, принимающая один аргумент. Используя
И вот именно в нём и загвоздка - на сервере, насколько я знаю, по-дефолту стоит английский (en_US), и его нельзя поменять.
И вот вопрос - как в любом месте в коде (пока что только для
В общем, есть у меня команда, принимающая один аргумент. Используя
StatCollector
я умудрился локализовать её таким образом, что в зависимости от языка этот аргумент может принимать слова на русском, английском, и любом другом языке при условии перевода команды в .lang-файле.И вот именно в нём и загвоздка - на сервере, насколько я знаю, по-дефолту стоит английский (en_US), и его нельзя поменять.
И вот вопрос - как в любом месте в коде (пока что только для
PlayerLoggedInEvent
и CommandBase
надо) узнать какой язык стоит на клиенте и в соответствии с ним локализовать текст???
Java:
// Отправка сообщения по эвенту при входе (3 штуки таких)
// На клиенте всё норм, на сервере английский
e.player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("elvenstory.welcome2")));
// Автозаполнение аргумента команды локализованным текстом
// то же самое, сервер чисто англ
String[] ss = new String[9];
for (int i = 0; i < ss.length; i++) ss[i] = EnumRace.fromID(i + 1).localize();
return getListOfStringsMatchingLastWord(args, ss);
// Получение элемента enum'а по делокализованной строке (и дальше обработка, не суть)
public static EnumRace fromString(String name) {
name = unlocalize(name);
// ... return ...
}