Jump to content
TLThings

Recommended Posts

(O título está inglês para chamar mais atenção)

Ontem vi-me a falar sozinho na shoutbox e hoje cheguei a seguinte conclusão.

 

Ultimamente tenho andado um pouco viciado em PHP & HTML  e graças a isso, decidi meter na cabeça criar um sistema completo de multilinguagens em:

  • Site;
  • Client;
  • Serverside

 

No site está otimizado e bem estruturado mas no client e no serverside não estão bem exatamente da forma como eu quero e daí pedir-vos sugestões.

Esta é a forma como eu tenho feito:

PHP:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Python:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Tenho feito de forma a ser por tutorial pois estou a pensar em lançar o mesmo quando acabar.

 

Um print de como está no login:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

 

O pedido agora é: Como devo de fazer o sistema? Por identificação de IP ou por algo como mudança de linguagem presente por quest  (sou bastante fã de LUA rs)?

 

Pedi já opiniões externas e debateram-se dizendo que se for IP acabará por a desvantagem de (por exemplo) ser impossível um português morar no estrangeiro e querer jogar na língua materna e é por essa razão que estou mais inclinado para fazer por quest (a minha ideia seria criar uma função como ch->GetLang que pudesse indicar a que linguagem ele tem de forma a poder ser mudado o locale_string/translate.lua/oxquiz.lua/.

 

Obrigado desde já pela atenção

 

  • Like 7
  • Upvote 6
Link to post
Share on other sites

primeiramente, concordo com o tierri em usar ambas, (só minha opinião mas faz assim, primeiro login ele identifica por ip, mas dando a opção após o login para alterar para algum outro idioma) só minha opinião nada a se considerar muito

  • Like 1
Link to post
Share on other sites

a melhor opçao ate agora encontrada neste caso foi criar uma db na acout fazendo a mudança com o clik na flag porem me acausou muitas dores de cabeça , realmente , apos analizar a rubinum varias e varias vezes ocasialmente me espertou interesse mas é um trabalho muito grande para isso, o geito é comprar o systema do vegas ou esperar cair na net ele completo . e se algem tiver interece em desemvolver algo estou a disposiçao em ajudar pois é um dos sistemas que eu mais quiz até hoje

eu tenho um client com o sistema do rubinum mais eu nao recomendo pois esta faltando umas coisas .

  • Like 1
Link to post
Share on other sites
Please login or register to see this quote.

Isto é Metin2 e um sistema relativamente fácil de se fazer com os devidos conhecimentos, não faz sentido comprar a ninguém.

 

Respondendo ao tópico, concordo com a resposta do Tierri.

  • Like 1
Link to post
Share on other sites

Eu tenho umas svfiles de canto que estava a fazer com o kemazi, no entanto ele depois desapareceu, nós estávamos a fazer apenas por quest e na parte do client, não tem nada relacionado com o ip, caso queiras poderei ajudar 

  • Like 1
Link to post
Share on other sites

se é realmente facil , por que nao essiste na internet outro sistema ?

apesar que o sistema pode sim ser feito , porem precisa de pessoas no projeto deste sistema Com conhecimentos AB e Phyton , mas acho dificil , pois estava a procurar algem com conhecimentos em phyton para ajudar-me e ate agora nada .

  • Like 1
Link to post
Share on other sites

Vou fazer offtopic só para dizer que Vegas não é developer nenhum especial. Tem muita mania, mas é bastante bom a  copiar coisas já existentes. Basta ver o código que ele faz.

Existem inúmeros sistemas multi-lingua, sendo que o primeiro a ir para a net foi derivado da leak do wom2.

Acho que cada um deve fazer as coisas por ele próprio, pois assim é que sistemas seguros são feitos.

  • Like 2
Link to post
Share on other sites
Please login or register to see this quote.

Não o conheço pessoalmente, mas já vi códigos dele e não são nada do outro mundo. Muitos dos sistemas são coisas fáceis de se fazer com um nível intermédio de conhecimentos.

Edited by Logic
  • Like 1
Link to post
Share on other sites
Please login or register to see this quote.

Concordo . eu nao percebo muito em phyton se fosse Ab ate iria numa boa , estou trabalhando num projeto a meses solo eu ja implementei tanta coisa e deixei tanta coisa de lado por chegar na area de phyton e nao conseguir resolver :/

  • Like 1
Link to post
Share on other sites

O problema é que o VegaS é "internacionalmente" conhecido e interpretam-no como o único capaz de fazer estes tipos de sistemas.

Vejo mesmo pessoas que chegam a dizer "nada é igual se fosse o vegas a fazer" o que respeito mas há que ter bom senso para saber que ele não é o único com competências.

Longe de mim comparar-me com ele, até porque há sistemas que ele criou e que eu implementei, mas chega de dar dickriding nele.

 

Continuando com o tópico, utilizei um pouco de tudo o que disseram:

  • Criei uma aba na tabela account onde estará a linguagem definida (ideia dada pelo @trample):

    Hidden Content

      Give reaction or reply to this topic to see the hidden content.

Por default, todas as contas virão em inglês, sendo que assim que entrarem poderão escolher a linguagem.

 

  • As quests poderão ser facilmente modificadas pelo translate.lua (ideia dada pelo @AprendizM2):

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Invés de fazer do_file na questlib, preferi fazer pela source criando um diretório para as linguagens: Language_GetBasePath

Com novas funções como pc.get_lang() que busca qual é a linguagem que temos inserido na base de dados, poderemos utilizar algo como isto:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Esta forma de fazer é bastante simples e penso que deva de estar público em algum lugar.

 

  • Estou a trabalhar para deteção de IP utilizando o GeoLite2++ (ideia dada pelo @Tierri Lopes)

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Ainda não está concluído, é apenas para terem uma ideia de como será feito a deteção (podem utilizar que não me importo).

 

 

Estou a pensar em como devo de fazer a identificação para o locale_string.txt, penso que serei capaz de remodelar por completo a forma como ela é estruturada e ser chamada como um ficheiro de lua (exemplo):

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

  • Like 4
  • Upvote 1
Link to post
Share on other sites

Marcos chegou ao ponto onde eu quis debater > Perto de onde voce esta eu parei

Aonde voce relacionou quest com Multlocale é um problema .

Pensa comigo , na DB essiste uma aba Dizendo o nome da pasta que ela acessa para obter os recursos na inicializaçao do sever .

eu tive a ideia de criar outras pastas exemplo : polones , turk , pt, porem vai ter diversas pastas na inicializaçao do sever .

a intençao é fazer em que cada accout com o tipo de linguagem acessa a esta pasta .

assim nao essistirar multlocale  para mim era a forma correta .

gostei muito de ver voce empenhado nisso , eu tbn fiquei bucado de tempo me matando aqui , eu resolvi optar pelo sistema do vegas , nao pq ele e pika , e pelo conteudo que ele tem nas maos eu queria poder enxergar oque ele fez corretamente .

  • Like 1
Link to post
Share on other sites
Please login or register to see this quote.

Mário*

 

Na verdade não há nenhum problema que tenha a ver com traduções de quest, pela forma que fiz (ou mesmo fazendo do_file pela questlib) não teria qualquer problema no que toca a isso, a aba que te referes é do common.locale mas não é necessário mudar de forma alguma porque poderás meter todas dentro da pasta /portugal (ou o nome qualquer que tenhas) e meteres de forma a que o jogador vá buscar certo .txt, tal como fiz com o mob_names:

Português:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Inglês:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

  • Like 3
Link to post
Share on other sites

Read from different locale_string can be doing without problem, also read item name when you pickup can be read from locale proto instead of DB...

I tried to add client part for flag and this is a problem for me.

 

Anyway...is not best solution use IP for determine language because IP sometime can be different...but nice work :1_grinning:

  • Like 1
Link to post
Share on other sites

Default: Inglês.
Selecionar no login (guardar no locale.cfg) - lembrar de dar reload aos modulos locale quando selecionado um novo idioma - e no handshake enviar o idioma escolhido para o servidor atualizar os dados do user (assim como o novo idioma).

Podes adicionar também o item_names.txt do servidor no client, e fazer com que este o carregue no momento em que os outros locale/*.txt são carregados (deste modo podes continuar a utilizar a função item.GetItemName() sem grandes alterações no python).

In-game podes optar por meter opção no Game Options, enviar um packet a pedir a mudança. 

Pela parte do servidor, ler vários locale_strings diferentes; e a parte quest, tbh não causa problemas nenhuns.

 

Este foi o planeamento e métodos que utilizei para desenvolver este sistema.

  • Like 1
  • Upvote 1
Link to post
Share on other sites
Please login or register to see this quote.

 

O default encontra-se em inglês de momento.

De momento utilizo a opção de reiniciar o cliente por motivos de estética até conseguir ter um código perfeitamente aceitável. - Utilizo somente alguns ficheiros para a parte /locale/country sendo que o resto fica no default que é o pt.

A ideia do item_names e de meter nas opções é muito bem vinda mesmo, é algo que irei adaptar para o sistema.

O locale_string foi totalmente complicado para mim mas deixo já um obrigado ao @Sil3nce por me ter salvado.

 

Tens razão, a parte da quest não causa problemas nenhuns e torna-se super acessível para futuros usos.

  • Like 1
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.