Texto em árabe e RTL
Modelagem de árabe de primeira classe e texto da direita para a esquerda, além da ação Set Text.
O dxDrawText do MTA não modela nem reordena o árabe por conta própria — passe árabe para ele e o resultado será renderizado como letras desconectadas, da esquerda para a direita. O Easelt Builder corrige isso para você no momento da exportação, de modo que qualquer texto em árabe que você digite na sua GUI saia conectado, na ordem correta e correto dentro do jogo. Esta página explica exatamente o que acontece e como trabalhar com isso.
Por que o árabe precisa de tratamento especial
Dentro do jogo, o dxDrawText do MTA:SA é um desenhador de texto simples. Ele não aplica as duas coisas que o árabe exige: modelagem (escolher a forma conectada da letra para cada posição — inicial, medial, final ou isolada) e bidi (dispor o script da direita para a esquerda). Deixado por conta própria, o dxDrawText imprime o árabe como uma sequência de glifos isolados e desconectados fluindo da esquerda para a direita — ilegível para quem fala árabe.
O Easelt Builder resolve isso para que você nunca precise lidar com o detalhe de baixo nível. Você digita árabe da mesma forma que digitaria em qualquer outro lugar, e o Lua exportado carrega o texto totalmente preparado que o dxDrawText consegue renderizar corretamente.
Pré-visualização vs. exportação
Há dois momentos em que o árabe é renderizado, e eles funcionam de formas diferentes. Entender essa divisão explica por que o editor sempre parece correto — mesmo antes de o Easelt fazer o seu trabalho.
O navegador lhe dá uma pré-visualização correta de graça, mas o motor do jogo não consegue — então o trabalho de verdade acontece na exportação, onde o texto preparado é gravado no seu Lua.
O que o Easelt faz na exportação
No momento da exportação, o Easelt executa duas transformações em cada trecho de texto antes de gravá-lo no Lua.
- Remodelagem — cada letra árabe é convertida para a sua forma de apresentação Unicode correta (forma conectada) com base na sua posição na palavra, para que as letras vizinhas se unam da maneira como o árabe deve ser.
- Bidi simplificado — o texto é reordenado da direita para a esquerda, enquanto quaisquer sequências de caracteres latinos e números dentro dele são mantidas da esquerda para a direita para que permaneçam legíveis.
A saída de ambas as etapas é gravada no Lua exportado. A GUI dentro do jogo então mostra árabe correto, conectado e ordenado corretamente, sem nenhum código de modelagem em tempo de execução do seu lado.
Onde o árabe é tratado
A remodelagem e o bidi se aplicam a qualquer texto que você digite em um elemento — não existe um "modo árabe" especial para ativar. Todo controle que contém texto é coberto:
| Elemento / campo | Suporte a árabe |
|---|---|
| Rótulos de texto | Remodelado e reordenado na exportação |
| Botões | Remodelado e reordenado na exportação |
| Caixas de edição | Remodelado e reordenado na exportação |
| Caixas de seleção | Remodelado e reordenado na exportação |
| Títulos de grupo | Remodelado e reordenado na exportação |
| Rótulos de progresso | Remodelado e reordenado na exportação |
| Itens de lista suspensa | Remodelado e reordenado na exportação |
Mistura de latim e números
Você não precisa isolar palavras em latim ou dígitos do seu árabe. Quando o Easelt aplica o bidi, ele mantém as sequências de caracteres latinos e números da esquerda para a direita dentro de uma string que, de resto, é da direita para a esquerda, de modo que rótulos como uma legenda em árabe com um nome em inglês incorporado ou um valor numérico sejam lidos corretamente dentro do jogo.
Basta digitar strings mistas naturalmente — árabe com uma palavra em inglês ou um número no meio sai com cada sequência fluindo na direção correta.
Ligaduras lam-alef
A ligadura lam-alef — a forma combinada de لا que o árabe exige em vez de duas letras separadas — é tratada automaticamente durante a remodelagem. Você não precisa digitar nenhum caractere especial ou ligadura; o Easelt produz a forma combinada correta para você.
Alterações de texto em tempo de execução com o Blueprint
O texto estático não é a única coisa que é remodelada. A ação Set Text do Blueprint também oferece suporte a árabe: quando a sua GUI altera o texto de um elemento em tempo de execução por meio do Set Text, esse novo texto também é remodelado, de modo que as atualizações dinâmicas permanecem tão corretas quanto o texto que você projetou.
Tanto o texto em tempo de design quanto as alterações de Set Text em tempo de execução passam pela mesma remodelagem e bidi, de modo que a sua GUI permanece consistente, quer o texto seja fixo, quer seja atualizado ao vivo.
Como usar
Não há configuração nem fluxo de trabalho para aprender. Todo o recurso se resume a uma única prática:
- Digite árabe normalmenteInsira o seu árabe em qualquer campo de texto — rótulo, botão, caixa de edição, caixa de seleção, título de grupo, rótulo de progresso ou item de lista suspensa — exatamente como você o escreveria em qualquer lugar.
- Verifique a pré-visualizaçãoO editor mostra árabe correto, conectado e da direita para a esquerda imediatamente, porque o navegador o modela para você.
- ExporteO Easelt remodela para formas de apresentação e aplica bidi simplificado, gravando o resultado no Lua para que a GUI dentro do jogo corresponda.
A única coisa a lembrar: basta digitar árabe normalmente. O Easelt cuida da modelagem e da direção para você.
Estes próprios documentos também estão disponíveis em árabe — para que você possa ler esta página no mesmo idioma que as suas GUIs falam.