07.12.2014, 23:40
(
Последний раз редактировалось VeNuZ_; 17.12.2014 в 13:15.
)
Rui Almeida Tradutor
Continuaзгo
Continuaзгo desta include para plugin.
Aqui: https://sampforum.blast.hk/showthread.php?tid=551121
Continuaзгo realizada pelo Willian_Luigi. Obrigado!
Introduзгo
Olб, esta й a minha primeira include, e server para criar um servidor Multi-Lang.
A ideia de criar esta include surgiu quando estava a ver um tуpico e todas as formas que via de traduzir o gamemode ocupava no mнnimo 4 linhas, com esta include necessita apenas de 1 linha! Й um cуdigo muito simples mas bom (penso eu xD).
Funзхes
Continuaзгo
Continuaзгo desta include para plugin.
Aqui: https://sampforum.blast.hk/showthread.php?tid=551121
Continuaзгo realizada pelo Willian_Luigi. Obrigado!
Introduзгo
Olб, esta й a minha primeira include, e server para criar um servidor Multi-Lang.
A ideia de criar esta include surgiu quando estava a ver um tуpico e todas as formas que via de traduzir o gamemode ocupava no mнnimo 4 linhas, com esta include necessita apenas de 1 linha! Й um cуdigo muito simples mas bom (penso eu xD).
Funзхes
pawn Код:
RT_setText(lang[], key[], text[]) ou RT::setText(lang[], key[], text[])
pawn Код:
//Exemplo:
//Caso pt:
RT::setText("pt", "HELLO", "Olб, %s!");
//Caso ing:
RT::setText("ing", "HELLO", "Hello, %s!");
pawn Код:
RT_getText(lang[], key[]) ou RT::getText(lang[], key[])
pawn Код:
//Exemplo:
new string[128];
formatF(string, RT::getText("pt", "HELLO"), "WPNiGGas_");//Este define jб vкm com o include
SendClientMessage(playerid, 0xFFFFFFFF, string);
Exemplo de como usar
pawn Код:
#include <a_samp>
#define FILE_DIRECTORY "langs/%s.ini" // tem de estar antes de inserir a include!
#include <RA_T>
#define DEFAULT_LANG "ing"
#define LANG_PT "pt" // nome do ficheiro da linguagem
#define LANG_ING "ing" // o mesmo..
new lang[MAX_PLAYERS][10]; // Variбvel que define qual a linguagem do jogador
new message[128];
main(){}
public OnGameModeInit()
{
// Inserir as frases nos ficheiros!
RT::setText(LANG_ING, "WELCOME_MESSAGE", "Hello %s, choise your language! Use /pt or /ing!");//como й a default so precisamos da mensagem em inglкs!
RT::setText(LANG_ING, "HELLO", "Hello, %s!");
RT::setText(LANG_ING, "CHAT_SAY", "%s (%d) say:");
RT::setText(LANG_PT, "HELLO", "Olб, %s!");
RT::setText(LANG_PT, "CHAT_SAY", "%s (%d) diz:");
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
lang[playerid] = DEFAULT_LANG;
formatText(message, RT::getText(lang[playerid], "WELCOME_MESSAGE"), getName(playerid));
SendClientMessage(playerid, 0xFFFFFF, message);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/pt", true))//escolher linguagem pt
{
lang[playerid] = LANG_PT;
formatText(message, RT::getText(lang[playerid], "HELLO"), getName(playerid));
SendClientMessage(playerid, 0xFFFFFF, message);
return 1;
}
if(!strcmp(cmdtext, "/ing", true))//escolher linguagem ing
{
lang[playerid] = LANG_ING;
formatText(message, RT::getText(lang[playerid], "HELLO"), getName(playerid));
SendClientMessage(playerid, 0xFFFFFF, message);
return 1;
}
return 0;
}
public OnPlayerText(playerid, text[])
{
for(new i; i <= GetMaxPlayers(); i++)
{
formatText(message, RT::getText(lang[i], "CHAT_SAY"), getName(playerid), playerid);
SendClientMessage(i, -1, message);
}
return 0;
}
stock getName(playerid)
{
new name[MAX_PLAYER_NAME+1];
GetPlayerName(playerid, name, sizeof name);
return name;
}