SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 16/07/2016, 06:02 PM   #1
HaRdiiZin
Gangsta
 
HaRdiiZin's Avatar
 
Join Date: Jan 2015
Location: localhost/HaRdiiZin
Posts: 803
Reputation: 98
Default Suporte a vários idiomas usando XML

Olá,
Hoje vou estar mostrando a vocês, a como criar um servidor com mais de uma língua utilizando o XML. Não vou explicar muito, porque é bem fácil, é tudo questão de prestar atenção nos códigos e seguir igual. Então vamos lá:

  1. Copie este código abaixo, e salve-o em sua scriptfiles com o nome languages.xml:
    PHP Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <language sigla="pt-BR">
        <string id="msg_boasvindas" output="Ola"/>
    </language>

    <language sigla="en">
        <string id="msg_boasvindas" output="Hello"/>
    </language>
    Vamos entender o "código":
    Quote:
    <language sigla="sigla_do_idioma_aqui">
    A onde está escrito 'sigla_do_idioma_aqui' você irá substituir pela sigla que você quer, exemplo: pt-BR, pt-PT.. etc

    Quote:
    <string id="texto_quando_o_player_loga" output="Texto pra quando o player logar no servidor"/>
    Você irá substituir 'texto_quando_o_player_loga' para o "id" do texto que você quer, esse id deve ser guardado para ser usado depois, então escolha um id de preferencia sua.
    E a onde está escrito 'Texto pra quando o player logar no servidor' é o texto final que você quer que seja exibido em sua mensagem.

    Então por exemplo:
    PHP Code:
    <string id="forum_samp" output="Olá fórum sa-mp"/> 
  2. Agora vamos ao código pawn:
    Primeiro salve a include na pasta de includes do seu gamemode, e depois chame-a no gamemode, exemplo:
    PHP Code:
    #include <xml> 
    Agora, você vai ter que abrir o arquivo XML que está na sua scriptfiles, para isso faça o seguinte:
    PHP Code:
    new XML:lang// crie uma variavel, na qual você utilizará para dizer qual é o arquivo que você está "usando"
    public OnGameModeInit()
    {
        
    lang xml_open("languages.xml"); // Indique onde está o arquivo xml.
        
    return 1;

    Você simplesmente precisará fazer isto para referenciar sua mensagem:
    Quote:
    new msg[100];
    xml_get_string(variavel definida acima, "language[@sigla=\"A sigla que você definiu lá em cima\"]/string[@id=\"O id que você definiu lá em cima\"]/@output", msg);
    Exemplo:
    PHP Code:
    new msg[100]; // variavel que irá retornar a msg 
    xml_get_string(lang"language[@sigla=\"fr\"]/string[@id=\"mensagem_Login\"]/@output"msg); 
    e para exibir para o player com uma mensagem, usariamos o SendClientMessage:
    PHP Code:
    SendClientMessage(playerid, -1msg); 
    Código final:
    PHP Code:
    new msg[100]; // variavel que irá retornar a msg 
    xml_get_string(lang"language[@sigla=\"fr\"]/string[@id=\"mensagem_Login\"]/@output"msg);
    SendClientMessage(playerid, -1msg); 


Exemplo de código:
PHP Code:
#include <a_samp>
#include "../include/xml.inc"
main()
{
    print(
"\n----------------------------------");
    print(
" Blank Gamemode by your name here");
    print(
"----------------------------------\n");
}


new 
XML:lang;
public 
OnGameModeInit()
{
    
lang xml_open("languages.xml");
    return 
1;
}

public 
OnGameModeExit()
{
    
xml_close(lang);
    return 
1;
}

public 
OnPlayerConnect(playerid)
{
    
ShowPlayerDialog(playerid1DIALOG_STYLE_LIST"Select your language""Português\nEnglish""Select""");
    return 
1;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == 1){
        new 
msg[20];
        if(
listitem==0){
                
xml_get_string(lang"language[@sigla=\"pt-BR\"]/string[@id=\"msg_boasvindas\"]/@output"msg);
                
SendClientMessage(playerid, -1msg);
                return 
1;
        }
        if(
listitem==1)
        {
            
xml_get_string(lang"language[@sigla=\"en\"]/string[@id=\"msg_boasvindas\"]/@output"msg);
            
SendClientMessage(playerid, -1msg);
            return 
1;
        }
    }
    return 
1;


Espero que tenham entendido, a explicação não ficou muito boa, mais é bem simples de se compreender. Você pode criar algo mais complexo usando este exemplo eu passei, espero que gostem. Para baixar o plugin e a include clique aqui.



Créditos do plugin a Zeex

Last edited by HaRdiiZin; 16/07/2016 at 07:17 PM.
HaRdiiZin is offline   Reply With Quote
Old 16/07/2016, 07:10 PM   #2
moura98
Huge Clucker
 
moura98's Avatar
 
Join Date: Jul 2015
Location: Brasil
Posts: 489
Reputation: 22
Default Re: Suporte a vários idiomas usando XML

boa mano, porem listitem começa do 0, e vc começou por 1, ou seja vai pegar o segundo item da lista
__________________
moura98 is offline   Reply With Quote
Old 16/07/2016, 07:17 PM   #3
HaRdiiZin
Gangsta
 
HaRdiiZin's Avatar
 
Join Date: Jan 2015
Location: localhost/HaRdiiZin
Posts: 803
Reputation: 98
Default Re: Suporte a vários idiomas usando XML

Quote:
Originally Posted by moura98 View Post
boa mano, porem listitem começa do 0, e vc começou por 1, ou seja vai pegar o segundo item da lista
Erro bobo meu. Eu parei a um tempo de mexer com Pawn..
HaRdiiZin is offline   Reply With Quote
Old 16/07/2016, 07:20 PM   #4
moura98
Huge Clucker
 
moura98's Avatar
 
Join Date: Jul 2015
Location: Brasil
Posts: 489
Reputation: 22
Default Re: Suporte a vários idiomas usando XML

Quote:
Originally Posted by HaRdiiZin View Post
Erro bobo meu. Eu parei a um tempo de mexer com Pawn..
Acontece mano, as vezes esqueço de definir Float nas variaveis huehueheu, bom tutorial!
__________________
moura98 is offline   Reply With Quote
Old 19/07/2016, 07:27 PM   #5
n0minal
High-roller
 
n0minal's Avatar
 
Join Date: Mar 2013
Location: Rio de Janeiro
Posts: 4,046
Reputation: 789
Default Re: Suporte a vários idiomas usando XML

Bom tutorial, é legal ver o povo saindo da mesmice de sempre, +8 reps
n0minal is offline   Reply With Quote
Old 19/07/2016, 08:26 PM   #6
zSuYaNw
Godfather
 
zSuYaNw's Avatar
 
Join Date: Apr 2010
Location: Santa Catarina
Posts: 6,840
Reputation: 672
Default Re: Suporte a vários idiomas usando XML

Bom trabalho! +Rep!
zSuYaNw is offline   Reply With Quote
Old 19/07/2016, 08:50 PM   #7
Dayvison_
High-roller
 
Dayvison_'s Avatar
 
Join Date: Nov 2013
Posts: 1,308
Reputation: 200
Default Re: Suporte a vários idiomas usando XML

Muito bom, talvez eu lance uma "versão" deste tutorial, porém da forma como eu uso, apenas para comparar e ver como pode ser mais fácil.(Usa XML também, porém tem alguns macros bem legais)
__________________


Dayvison_ is offline   Reply With Quote
Old 22/07/2016, 07:02 PM   #8
JesterTL
Little Clucker
 
JesterTL's Avatar
 
Join Date: Jul 2014
Location: RJ
Posts: 21
Reputation: 0
Default Re: Suporte a vários idiomas usando XML

Bem interessante!
__________________


JesterTL is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Comando /save do SA-MP (Suporte Windows 8.1) pWesley Português/Portuguese 3 05/06/2015 06:45 PM
[Off] Suporte Pawn Cidiei Português/Portuguese 18 04/03/2015 10:43 PM
[Ajuda] Criar vários veiculos usando mesma variável Spectral Português/Portuguese 12 16/08/2014 05:32 AM
[Pedido] Suporte SampForever diegomth Português/Portuguese 13 24/11/2011 01:39 PM
[PEDIDO] Função SendClientMessage com suporte para parametros Colgate Português/Portuguese 17 26/10/2011 01:06 AM


All times are GMT. The time now is 10:48 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.