SA-MP Forums Archive
[Include] Lang (Sistema de Idioma) (v/0.1) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] Lang (Sistema de Idioma) (v/0.1) (/showthread.php?tid=452440)



Lang (Sistema de Idioma) (v/0.1) - Knight97 - 21.07.2013

Desenvolvi esta pequena include porque precisei para o gamemode que estou a desenvolver.
Nгo tenho muito a dizer sobre ela porque alйm de estar bem simples, pelas funзхes percebe-se bem como funcionar.
Espero que alguйm a use. (:

Funзхes:

GetPlayerLang - Getar o idioma do jogador;
SetPlayerLang - Setar o idioma ao jogador;
SendClientMessageLang - Enviar uma mensagem ao jogador (no idioma do prуprio);
SendClientMessageToAllLang - Enviar uma mensagem a todos os jogadores on (cada um com o seu idioma);
GameTextForPlayerLang - Enviar uma mensagem (gametext) ao jogador (no idioma do prуprio);
GameTextForAllLang - Enviar uma mensagem (gametext) a todos os jogadores on (cada um com o seu idioma);

Como usar cada funзгo:

SetPlayerLang
pawn Код:
SetPlayerLang(playerid, lang)
ex:
pawn Код:
if(!strcmp(cmdtext, "/lang1", true))
{
    SetPlayerLanguage(playerid, 0); //PT
    SendClientMessage(playerid, 0xFFF000AA, "Idioma: Portuguкs");
    return true;
}

if(!strcmp(cmdtext, "/lang2", true))
{
    SetPlayerLanguage(playerid, 1); //ENG
    SendClientMessage(playerid, 0xFFF000AA, "Language: English");
    return true;
}

if(!strcmp(cmdtext, "/lang3", true))
{
    SetPlayerLanguage(playerid, 2); //ESP
    SendClientMessage(playerid, 0xFFF000AA, "Idioma: Espaсol");
    return true;
}
playerid - jogador que irб ser setado.
lang - o idioma que irб ser setado ao jogador (0, 1 ou 2)


SendClientMessageLang
pawn Код:
SendClientMessageLang(playerid, cor, const mensagem0[], const mensagem1[], const mensagem2[])
ex:
pawn Код:
if(!strcmp(cmdtext, "/texto", true))
{
    SendClientMessageLang(playerid, 0xFFF000AA, "Olб (:", "Hello (:", "Holla (:");
    SendClientMessageLang(playerid, 0xFFF000AA, "Eu sou bonito", "I'm beautiful", "Yo soy guapo");
    return true;
}
playerid - jogador.
cor - cor da mensagem.
const mensagem0[] - a mensagem do idioma 0.
const mensagem1[] - a mensagem do idioma 1.
const mensagem2[] - a mensagem do idioma 2.


SendClientMessageToAllLang
pawn Код:
SendClientMessageToAllLang(cor, const mensagem0[], const mensagem1[], const mensagem2[])
ex:
pawn Код:
if(!strcmp(cmdtext, "/textotodos", true))
{
    SendClientMessageToAllLang(0xFFF000AA, "Olб (:", "Hello (:", "Holla (:");
    SendClientMessageToAllLang(0xFFF000AA, "Eu sou bonito", "I'm beautiful", "Yo soy guapo");
    return true;
}
cor - cor da mensagem.
const mensagem0[] - a mensagem do idioma 0.
const mensagem1[] - a mensagem do idioma 1.
const mensagem2[] - a mensagem do idioma 2.


GameTextForPlayerLang
pawn Код:
GameTextForPlayerLang(playerid, const mensagem0[], const mensagem1[], const mensagem2[], tempo, estilo)
ex:
pawn Код:
if(!strcmp(cmdtext, "/text", true))
{
    GameTextForPlayerLang(playerid, "Eu sou bonito", "I am beautiful", "Yo soy guapo", 3000, 1);
    return true;
}
playerid - jogador.
const mensagem0[] - a mensagem do idioma 0.
const mensagem1[] - a mensagem do idioma 1.
const mensagem2[] - a mensagem do idioma 2.
tempo - o tempo que o gametext vai ficar na tela.
estilo - o estilo do gametext.


GameTextForAllLang
pawn Код:
GameTextForAllLang(const mensagem0[], const mensagem1[], const mensagem2[], tempo, estilo)
ex:
pawn Код:
if(!strcmp(cmdtext, "/texttodos", true))
{
    GameTextForAllLang("Eu sou bonito", "I am beautiful", "Yo soy guapo", 3000, 1);
    return true;
}
const mensagem0[] - a mensagem do idioma 0.
const mensagem1[] - a mensagem do idioma 1.
const mensagem2[] - a mensagem do idioma 2.
tempo - o tempo que o gametext vai ficar na tela.
estilo - o estilo do gametext.

ESTILOS - https://sampwiki.blast.hk/wiki/GameTextStyle#Text_Styles

IMAGENS:




INCLUDE:
pawn Код:
/*FUNЗХES:
GetPlayerLang(playerid)
SetPlayerLang(playerid, lang)
SendClientMessageLang(playerid, cor, const mensagem0[], const mensagem1[], const mensagem2[])
SendClientMessageToAllLang(cor, const mensagem0[], const mensagem1[], const mensagem2[])
GameTextForPlayerLang(playerid, const mensagem0[], const mensagem1[], const mensagem2[], tempo, estilo)
GameTextForAllLang(const mensagem0[], const mensagem1[], const mensagem2[], tempo, estilo)
*/


#include <a_samp>
new jLang[MAX_PLAYERS] = 0;

stock GetPlayerLang(playerid) return jLang[playerid];

stock SetPlayerLang(playerid, lang)
{
    if(lang < 0 || lang > 2)
        return false;

    if(lang == 0)
        return jLang[playerid] = 0;

    else if(lang == 1)
        return jLang[playerid] = 1;

    else if(lang == 2)
        return jLang[playerid] = 2;

    return true;
}


stock SendClientMessageLang(playerid, cor, const mensagem0[], const mensagem1[], const mensagem2[])
{
    if(jLang[playerid] == 0)
        return SendClientMessage(playerid, cor, mensagem0);

    else if(jLang[playerid] == 1)
        return SendClientMessage(playerid, cor, mensagem1);

    else if(jLang[playerid] == 2)
        return SendClientMessage(playerid, cor, mensagem2);

    return true;
}

stock SendClientMessageToAllLang(cor, const mensagem0[], const mensagem1[], const mensagem2[])
{
    for(new x = 0; x <= GetMaxPlayers(); x++)
    {
        if(IsPlayerConnected(x))
        {

            if(jLang[x] == 0)
                return SendClientMessage(x, cor, mensagem0);

            else if(jLang[x] == 1)
                return SendClientMessage(x, cor, mensagem1);

            else if(jLang[x] == 2)
                return SendClientMessage(x, cor, mensagem2);
        }
    }
    return true;
}      

stock GameTextForPlayerLang(playerid, const mensagem0[], const mensagem1[], const mensagem2[], tempo, estilo)
{
    if(jLang[playerid] == 0)
        return GameTextForPlayer(playerid, mensagem0, tempo, estilo);

    else if(jLang[playerid] == 1)
        return GameTextForPlayer(playerid, mensagem1, tempo, estilo);

    else if(jLang[playerid] == 2)
        return GameTextForPlayer(playerid, mensagem2, tempo, estilo);

    return true;
}  

stock GameTextForAllLang(const mensagem0[], const mensagem1[], const mensagem2[], tempo, estilo)
{
    for(new y = 0; y <= GetMaxPlayers(); y++)
    {
        if(IsPlayerConnected(y))
        {
            if(jLang[y] == 0)
                return GameTextForPlayer(y, mensagem0, tempo, estilo);

            else if(jLang[y] == 1)
                return GameTextForPlayer(y, mensagem1, tempo, estilo);

            else if(jLang[y] == 2)
                return GameTextForPlayer(y, mensagem2, tempo, estilo);
        }
    }
    return true;
}
http://pastebin.com/ia2Bfc6K



Re: Lang (Sistema de Idioma) (v/0.1) - godkrad - 21.07.2013

Gostei bastante. Й super difнcil achar ideias realmente novas e ъteis como a sua. Eu ja vi um que traduz direto do ******, mas a vantagem do seu й que vocк nгo se prende a traduзгo do ******, vocк faz a sua prуpria e pode ser acoplada com qualquer funcionalidade do Pawn.

Realmente muito bom mesmo, parabйns pelo excelente trabalho.

@edit
Gostaria de fazer 2 observaзхes:

- Verbo GETAR e SETAR
- Outra coisa, as funзхes que vocк criou nгo podem ser consideras NATIVES igual vocк deixou no comentбrio. O conceito de native й diferente do aplicado com essas funзхes


Re: Lang (Sistema de Idioma) (v/0.1) - Knight97 - 21.07.2013

Quote:
Originally Posted by godkrad
Посмотреть сообщение
Gostei bastante. Й super difнcil achar ideias realmente novas e ъteis como a sua. Eu ja vi que traduz direto do ******, mas a vantagem do seu й que vocк nгo se prende a traduзгo do ******, vocк faz a sua prуpria e pode ser acoplada com qualquer funcionalidade do Pawn.

Realmente muito bom mesmo, parabйns pelo excelente trabalho.

@edit
Gostaria de fazer 2 observaзхes:

- Verbo GETAR e SETAR
- Outra coisa, as funзхes que vocк criou nгo podem ser consideras NATIVES igual vocк deixou no comentбrio. O conceito de native й diferente do aplicado com essas funзхes
Pronto.
Getar й o mesmo que pegar.. setar o mesmo que colocar/dar.


Re: Lang (Sistema de Idioma) (v/0.1) - arakuta - 21.07.2013

Simples porйm muito ъtil!


Re: Lang (Sistema de Idioma) (v/0.1) - @Riichard - 21.07.2013

Gostei .


Re: Lang (Sistema de Idioma) (v/0.1) - darkxdll - 21.07.2013

Legal , pra ficar melhor ainda , vocк poderia por algo pra conectar com o ****** tradutor..
ai usa SendClientMessageLang(playerid,"Olб , seja bem vindo"); mais pros outros o sistema lк o idioma deles
e manda a frase escrita dentro da SCML pro ****** tradutor e volta o resultado...
Nгo sei se й possнvel pois eu ainda nгo mechi com MySql e HTTP..



Re: Lang (Sistema de Idioma) (v/0.1) - ProKillerpa - 21.07.2013

уtimo, irei atй atualizar meu servidor para Multi-Languages!

PHP код:
if(rep[playerid] == 1) return rep++; 



Re: Lang (Sistema de Idioma) (v/0.1) - Knight97 - 21.07.2013

Quote:
Originally Posted by darkxdll
Посмотреть сообщение
Legal , pra ficar melhor ainda , vocк poderia por algo pra conectar com o ****** tradutor..
ai usa SendClientMessageLang(playerid,"Olб , seja bem vindo"); mais pros outros o sistema lк o idioma deles
e manda a frase escrita dentro da SCML pro ****** tradutor e volta o resultado...
Nгo sei se й possнvel pois eu ainda nгo mechi com MySql e HTTP..
Quem sabe numa futura atualizaзгo amigo.


Re: Lang (Sistema de Idioma) (v/0.1) - Lуs - 21.07.2013

Й relativamente mais simples do que y_languages e consequentemente menos funcional, mas уtimo trabalho!


Re: Lang (Sistema de Idioma) (v/0.1) - Juninho_Oakley - 21.07.2013

Simples porйm interessante e ъtil, parabens!