[Include] zlang - GVar per player lang system
#1

zlang
About
GVar 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[]) 
Remove language
PHP код:
Lang_Remove(Lang:lang
Load language file
PHP код:
Lang_LoadFile(Lang:langfilename[]) 
Unload language file
PHP код:
Lang_UnloadFile(Lang:langfilename[] = ""fid INVALID_LANG_FILE_ID
Reload all language files
PHP код:
Lang_Reload(Lang:lang
Get language id by *code* or *name*
PHP код:
Lang:Lang_Get(code[] = ""name[] = ""
Set language name
PHP код:
Lang_SetName(Lang:langname[]) 
Get language name
PHP код:
Lang_GetName(Lang:langname[], const size sizeof(name)) 
Get language name and return it
PHP код:
Lang_ReturnName(Lang:lang
Set language code
PHP код:
Lang_SetCode(Lang:langcode[]) 
Get language code
PHP код:
Lang_GetCode(Lang:langcode[], const size sizeof(code)) 
Get language code and return it
PHP код:
Lang_ReturnCode(Lang:lang
Get language codes string
PHP код:
Lang_GetCodes(result[], const size sizeof(result), const separator '/', const bool:isuppercase false
Get language codes string and return it
PHP код:
Lang_ReturnCodes(const separator '/', const bool:isuppercase false
Check language on valid
PHP код:
Lang_IsValid(Lang:lang
Get languages count
PHP код:
Lang_GetCount() 
Set player language
PHP код:
Lang_SetPlayerLang(playeridLang:lang
Get player language
PHP код:
Lang:Lang_GetPlayerLang(playerid
Set player language by code
PHP код:
Lang:Lang_SetPlayerLangByCode(playeridcode[]) 
Set player language by name
PHP код:
Lang:Lang_SetPlayerLangByName(playeridname[]) 
Set default server language
PHP код:
Lang_SetDefaultLang(Lang:lang
Get default server language
PHP код:
Lang_GetDefaultLang() 
Get language text
PHP код:
Lang_GetText(Lang:lang, var[], text[], const size sizeof(text), {Float_}:...) 
Get player language text
PHP код:
Lang_GetPlayerText(playerid, var[], text[], const size sizeof(text), {Float_}:...) 
Get default language text
PHP код:
Lang_GetDefaultText(var[], text[], const size sizeof(text), {Float_}:...) 
Remove language text
PHP код:
Lang_RemoveText(Lang:lang, var[]) 
Is language text exists
PHP код:
Lang_IsTextExists(Lang:lang, var[]) 
Language printf function with default language
PHP код:
Lang_printf(var[], {Float_}:...) 
Language printf function with specific language
PHP код:
Lang_printfex(Lang:lang, var[], {Float_}:...) 
Language print function with default language
PHP код:
Lang_print(var[], {Float_}:...) 
Language print function with specific language
PHP код:
Lang_printex(Lang:lang, var[]) 
Send language text to player
PHP код:
Lang_SendText(playerid, var[], {Float_}:...) 
Send language text to all players
PHP код:
Lang_SendTextToAll(var[], {Float_}:...) 
Send language text to all players in array
PHP код:
Lang_SendTextToPlayers(players[], var[], {Float_}:...) 
Show language dialog to player
PHP код:
Lang_ShowDialog(playeriddialogidstylevar_caption[], var_info[], var_button1[], var_button2[], {Float_}:...) 
Show language game text to player
PHP код:
Lang_GameText(playeridtimestyle, var[], {Float_}:...) 
Show language game text to all players
PHP код:
Lang_GameTextForAll(timestyle, var[], {Float_}:...) 
Create player TextDraw with language var
PHP код:
Lang_CreatePlayerTextDraw(playeridFloat:xFloat:y, var[], {Float_}:...) 
Sets the language text to the player TextDraw
PHP код:
Lang_PlayerTextDrawSetString(playeridPlayerText:text, var[], {Float_}:...) 
Language file format
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
Example
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(playeridcmdtext[])
{
    if (
strcmp(cmdtext"/ru"true3) == 0) {
        
Lang_SetPlayerLang(playeridgLang[e_LANG_RU]);
        
Lang_SendText(playerid"LANGUAGE_CHANGED");
        return 
1;
    }
    if (
strcmp(cmdtext"/en"true3) == 0) {
        
Lang_SetPlayerLang(playeridgLang[e_LANG_EN]);
        
Lang_SendText(playerid"LANGUAGE_CHANGED");
        return 
1;
    }
    if (
strcmp(cmdtext"/help"true5) == 0) {
        
Lang_SendText(playerid"HELLO_MSG");
        
Lang_SendText(playerid"COMMANDS_LIST");
        return 
1;
    }
    if (
strcmp(cmdtext"/help330"true5) == 0) {
        
Lang_SendText(playerid"Hello, World!");
        
Lang_SendText(playerid"Commands: /help, /en, /ru");
        return 
1;
    }
    return 
0;

scriptfiles/en.ini:
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 
scriptfiles/ru.ini:
PHP код:
COLOR_GRAY = {CCCCCC}
LANGUAGE_CHANGED = \v(COLOR_GRAY)Теперь вы используете русский язык.
HELLO_MSG Привет, {00FF00}Мир!
COMMANDS_LIST Команды: /help, /en, /ru
# in zlang 3.3.0
HelloWorld! = \v(HELLO_MSG)
Commands: /help, /en, /ru = \v(COMMANDS_LIST
Download
- GitHub download page: https://github.com/Open-GTO/zlang/releases
Reply


Messages In This Thread
zlang - GVar per player lang system - by ZiGGi - 27.11.2016, 10:44
Re: zlang - GVar per player lang system - by ZiGGi - 25.11.2017, 13:54
Re: zlang - GVar per player lang system - by Kaperstone - 25.11.2017, 13:56
Re: zlang - GVar per player lang system - by ToiletDuck - 25.11.2017, 13:56
Re: zlang - GVar per player lang system - by Kaperstone - 15.01.2018, 18:13
Re: zlang - GVar per player lang system - by ZiGGi - 16.01.2018, 04:26
Re: zlang - GVar per player lang system - by Kaperstone - 16.01.2018, 05:29
Re: zlang - GVar per player lang system - by ZiGGi - 16.01.2018, 05:53
Re: zlang - GVar per player lang system - by Kaperstone - 16.01.2018, 06:22
Re: zlang - GVar per player lang system - by kurta999 - 16.01.2018, 19:34
Re: zlang - GVar per player lang system - by Dice_ - 29.04.2018, 04:10
Re: zlang - GVar per player lang system - by ZiGGi - 29.04.2018, 07:19

Forum Jump:


Users browsing this thread: 1 Guest(s)