[Tutorial] Sistema de tradução |
0 | ||
Um sistema de tradução é algo indispensável em minigame, mas, como fazer um? Para criar um sistema de tradução, precisamos descobrir a comunidade que o minigame está rodando, e fazer uma tabela retornar as traduções corretamente. Primeiramente, vamos criar uma tabela para guardar as traduções; Script a dit : Agora que temos a tabela, vamos usar o tfm.get.room.community, ele irá retornar a sigla da comunidade em que o minigame está rodando, lembrando que se o minigame estiver no cafofo, a comunidade será 'xx'. Script a dit : Agora que nós temos a tabela de traduções, e a comunidade, iremos criar a função que irá traduzir os textos: Script a dit : E se meu minigame estiver rodando num servidor que não tem a tradução? Então iremos usar um else, e mudar a comunidade para en, já que o inglês é uma linguagem universal: a dit : Agora que nós temos tudo funcionando, precisamos criar as traduções! Vamos seguir este esquema: Aqui temos uma tabela de exemplo: Scripts a dit : Pronto! Agora o sistema de tradução irá funcionar sem erro algum. Script a dit : |
Hydroper « Citoyen » 1418312400000
| 0 | ||
Aeoh, vai ajudar mt. -q Bom tutorial, Ashhh. |
Operop « Citoyen » 1418312940000
| 0 | ||
comunidade=tfm.get.room.community==("xx" or "INT" or traducoes[tfm.get.room.cummunity]==nil) and "EN" melhor fazer o manual também, vai que o player está em outro server. Dernière modification le 1418313600000 |
0 | ||
Bem legal, eu fazia de outro jeito. Mas esse jeito é bem mais fácil de traduzir e editar... |
Squalleze « Citoyen » 1418341500000
| 0 | ||
Achei enorme, eu uso assim: T = {  ['EN'] = {...},  ['BR'] = {...} } _Tt = function()  return T[tfm.get.room.community] or T['EN'] end print(_Tt()['...']) é bem mais curto e simples '-' |
Operop « Citoyen » 1418342640000
| 0 | ||
squalleze a dit : Não '-' EN={oi="HI"} BR={oi="OI"} function tra() return _G[tfm.get.room.community] or _G['EN'] end print(tra()['oi']) |
Squalleze « Citoyen » 1418342760000
| 0 | ||
operop a dit : prefiro usar o T para ficar mais organizado, e eu n to acostumado a usar variável global, só que ela é boa \o/ |
Operop « Citoyen » 1418784060000
| 0 | ||
squalleze a dit : o meu tem 16 bytes a menos. continua organizado se você potar tabela debaixo de tabela... |
Tocutoeltuco « Censeur » 1428854100000
| 0 | ||
Eu uso... t = { BR = { welcome = "Olá! seja bem-vindo" }, ES = { welcome = "Hola! sea bienvenido" }, EN = { welcome = "Hello! welcome to you!" } } function traduzir(mes) if t[tfm.get.room.community] and t[tfm.get.room.community][mes] then return t[tfm.get.room.community][mes] else return t.EN[mes] end end print(traduzir("welcome")) |
Indentado « Citoyen » 1435884960000
| 0 | ||
eu faço assim |