27.11.2016, 10:44
(
Последний раз редактировалось ZiGGi; 25.11.2017 в 14:01.
)
zlang
AboutGVar per player lang system.
Requirements
- GVar plugin
- foreach - not necessary but recommended
Libraries compatible with zlang
- mdialog - new look for Dialog_Open, Dialog_Message and Dialog_MessageEx functions.
Defines
List of all defines here (no table tag on this forum): https://github.com/Open-GTO/zlang#defines
Functions
Add language
PHP код:
Lang:Lang_Add(code[], name[])
PHP код:
Lang_Remove(Lang:lang)
PHP код:
Lang_LoadFile(Lang:lang, filename[])
PHP код:
Lang_UnloadFile(Lang:lang, filename[] = "", fid = INVALID_LANG_FILE_ID)
PHP код:
Lang_Reload(Lang:lang)
PHP код:
Lang:Lang_Get(code[] = "", name[] = "")
PHP код:
Lang_SetName(Lang:lang, name[])
PHP код:
Lang_GetName(Lang:lang, name[], const size = sizeof(name))
PHP код:
Lang_ReturnName(Lang:lang)
PHP код:
Lang_SetCode(Lang:lang, code[])
PHP код:
Lang_GetCode(Lang:lang, code[], const size = sizeof(code))
PHP код:
Lang_ReturnCode(Lang:lang)
PHP код:
Lang_GetCodes(result[], const size = sizeof(result), const separator = '/', const bool:isuppercase = false)
PHP код:
Lang_ReturnCodes(const separator = '/', const bool:isuppercase = false)
PHP код:
Lang_IsValid(Lang:lang)
PHP код:
Lang_GetCount()
PHP код:
Lang_SetPlayerLang(playerid, Lang:lang)
PHP код:
Lang:Lang_GetPlayerLang(playerid)
PHP код:
Lang:Lang_SetPlayerLangByCode(playerid, code[])
PHP код:
Lang:Lang_SetPlayerLangByName(playerid, name[])
PHP код:
Lang_SetDefaultLang(Lang:lang)
PHP код:
Lang_GetDefaultLang()
PHP код:
Lang_GetText(Lang:lang, var[], text[], const size = sizeof(text), {Float, _}:...)
PHP код:
Lang_GetPlayerText(playerid, var[], text[], const size = sizeof(text), {Float, _}:...)
PHP код:
Lang_GetDefaultText(var[], text[], const size = sizeof(text), {Float, _}:...)
PHP код:
Lang_RemoveText(Lang:lang, var[])
PHP код:
Lang_IsTextExists(Lang:lang, var[])
PHP код:
Lang_printf(var[], {Float, _}:...)
PHP код:
Lang_printfex(Lang:lang, var[], {Float, _}:...)
PHP код:
Lang_print(var[], {Float, _}:...)
PHP код:
Lang_printex(Lang:lang, var[])
PHP код:
Lang_SendText(playerid, var[], {Float, _}:...)
PHP код:
Lang_SendTextToAll(var[], {Float, _}:...)
PHP код:
Lang_SendTextToPlayers(players[], var[], {Float, _}:...)
PHP код:
Lang_ShowDialog(playerid, dialogid, style, var_caption[], var_info[], var_button1[], var_button2[], {Float, _}:...)
PHP код:
Lang_GameText(playerid, time, style, var[], {Float, _}:...)
PHP код:
Lang_GameTextForAll(time, style, var[], {Float, _}:...)
PHP код:
Lang_CreatePlayerTextDraw(playerid, Float:x, Float:y, var[], {Float, _}:...)
PHP код:
Lang_PlayerTextDrawSetString(playerid, PlayerText:text, var[], {Float, _}:...)
Language file format is a standard INI file format (without sections). It supports a variety of special characters, such as \n, \t, \%, \s, \\, \<value>, \x<hex>.
Variables
You can use variables in your text files. This supports any nesting level.
PHP код:
HELLO_MSG = Hello
COLOR_RED = {FF0000}
COLOR_GREEN = {00FF00}
COLOR_WHITE = {FFFFFF}
NAME_ONE = \v(COLOR_RED)Alex\v(COLOR_WHITE)
NAME_TWO = \v(COLOR_GREEN)Peter\v(COLOR_WHITE)
MESSAGE_HELLO = \v(COLOR_WHITE)\v(HELLO_MSG) \v(NAME_ONE) and \v(NAME_TWO)
PHP код:
#include <a_samp>
#include <gvar>
#include <zlang>
enum e_LANG_INFO {
Lang:e_LANG_EN,
Lang:e_LANG_RU,
}
static
gLang[e_LANG_INFO];
main() {}
public OnGameModeInit()
{
// load languages
gLang[e_LANG_RU] = Lang_Add("ru", "Russian");
gLang[e_LANG_EN] = Lang_Add("en", "English");
Lang_LoadFile(gLang[e_LANG_RU], "ru.ini");
Lang_LoadFile(gLang[e_LANG_EN], "en.ini");
// set english as the default language
Lang_SetDefaultLang(gLang[e_LANG_EN]);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/ru", true, 3) == 0) {
Lang_SetPlayerLang(playerid, gLang[e_LANG_RU]);
Lang_SendText(playerid, "LANGUAGE_CHANGED");
return 1;
}
if (strcmp(cmdtext, "/en", true, 3) == 0) {
Lang_SetPlayerLang(playerid, gLang[e_LANG_EN]);
Lang_SendText(playerid, "LANGUAGE_CHANGED");
return 1;
}
if (strcmp(cmdtext, "/help", true, 5) == 0) {
Lang_SendText(playerid, "HELLO_MSG");
Lang_SendText(playerid, "COMMANDS_LIST");
return 1;
}
if (strcmp(cmdtext, "/help330", true, 5) == 0) {
Lang_SendText(playerid, "Hello, World!");
Lang_SendText(playerid, "Commands: /help, /en, /ru");
return 1;
}
return 0;
}
PHP код:
COLOR_GRAY = {CCCCCC}
LANGUAGE_CHANGED = \v(COLOR_GRAY)Now you are using english language.
HELLO_MSG = Hello, {00FF00}World!
COMMANDS_LIST = Commands: /help, /en, /ru
PHP код:
COLOR_GRAY = {CCCCCC}
LANGUAGE_CHANGED = \v(COLOR_GRAY)Теперь вы используете русский язык.
HELLO_MSG = Привет, {00FF00}Мир!
COMMANDS_LIST = Команды: /help, /en, /ru
# in zlang 3.3.0
Hello, World! = \v(HELLO_MSG)
Commands: /help, /en, /ru = \v(COMMANDS_LIST)
- GitHub download page: https://github.com/Open-GTO/zlang/releases