Просмотр полной версии : [Вопрос] Поддержка двух языков на сервере.
Приветик, есть мод ДМ на русском языке, я вот задумался, было бы не плохо сделать поддержку английского языка, чтобы удобнее было иностранцам. Как это лучше реализовать в моде? а то дублировать строчки на проверки if(rus) не хотелось бы так :)
upd.
p.s. в cs 1.6 на amx было удобно с подключением LANG файлов. в моде пишешь типо L_HELLO а в LANG файле:
[RU]
L_HELLO = привет
[EN]
L_HELLO = hi
Спасибо.
kushichka
27.06.2016, 22:21
Думаю и здесь можно попробовать сделать через языковые файлы, хотя бы при помощи PVar'ов.. Нужно подумать как это лучше реализовать.
Ну например вот так:
// 2 - количество языков, 1 - количество строк текста, 144 - максимальная длина текста(лимит sa-mp)
new LangugeText[2][1][144] = {
{
{"English text"}
},
{
{"Русский текст"}
}
};
public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, "Language", 1); // 0 - английский язык, 1 - русский язык
}
CMD:englishtext(playerid, params[])
{
SendClientMessage(playerid, -1, LangugeText[GetPVarInt(playerid, "Language")][0]);
return 1;
}
CMD:russiantext(playerid, params[])
{
SendClientMessage(playerid, -1, LangugeText[GetPVarInt(playerid, "Language")][0]);
return 1;
}
p.s. по моему видел эту реализацию на официальном форуме sa-mp.com
Ну например вот так:
// 2 - количество языков, 1 - количество строк текста, 144 - максимальная длина текста(лимит sa-mp)
new LangugeText[2][1][144] = {
{
{"English text"}
},
{
{"Русский текст"}
}
};
public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, "Language", 1); // 0 - английский язык, 1 - русский язык
}
CMD:englishtext(playerid, params[])
{
SendClientMessage(playerid, -1, LangugeText[GetPVarInt(playerid, "Language")][0]);
return 1;
}
CMD:russiantext(playerid, params[])
{
SendClientMessage(playerid, -1, LangugeText[GetPVarInt(playerid, "Language")][0]);
return 1;
}
p.s. по моему видел эту реализацию на официальном форуме sa-mp.com
Спасибо. Но хотелось бы пихнуть всё в файл, как я делал в cs. Попробую сам поковырять, если не получится, тогда через твой способ.
TheMallard
28.06.2016, 09:10
https://github.com/Open-GTO/zlang
Это как-раз система языков с файлами.
https://github.com/Open-GTO/zlang
Это как-раз система языков с файлами.
У автора другие цели, он хочет предоставлять мультиязычность для каждого игрока по-отдельности, что эта система не позволяет сделать. Также она использует SVar, а их может быть очень ограниченное количество, поэтому её нужно переписать на GVar. Для SA-MP ничего адекватного в плане мультиязычности нет, в идеале нужно реализовать плагин, предоставляющий интерфейс для работы с GNU gettext, может тогда ситуация с этим улучшится.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot