Algumas das maiores comunidades de usuários do Open Journal Systems publicam em línguas escritas da direita para a esquerda. Iraque, Irã, Egito, Arábia Saudita e Jordânia somam milhares de periódicos em OJS, e muitos oferecem aos leitores uma interface em árabe ou persa. A maioria dos temas OJS de terceiros nunca foi testada nesse modo. Basta trocar o idioma para o menu ficar do lado errado, os ícones apontarem ao contrário e o texto aparecer na fonte árabe que o sistema operacional tiver.
Este artigo explica o que o OJS já faz com as línguas da direita para a esquerda (RTL), onde os temas quebram e o que um tema precisa fazer para merecer o rótulo „suporte RTL”. Termina com uma lista curta que você pode aplicar a qualquer tema, inclusive aos nossos.
O que o OJS faz sozinho
O OJS sabe quais localidades são escritas da direita para a esquerda. Quando um leitor muda a interface para árabe, persa, urdu, curdo sorani ou hebraico, a plataforma coloca dir="rtl" no corpo da página. O navegador faz o resto: o texto corre da direita para a esquerda, as listas recuam pela direita e qualquer leiaute escrito com CSS consciente da direção se espelha sozinho.
O tema padrão que vem com o OJS inclui uma folha de estilos dedicada a esse caso. Por isso uma instalação limpa do OJS fica aceitável em árabe, e por isso os problemas começam no momento em que o periódico instala um tema de terceiros.
Onde os temas quebram
Um tema é sobretudo CSS, e o CSS tem duas maneiras de dizer „esquerda”. A antiga é física: margin-left, padding-right, left: 0, text-align: left. Essas regras significam a mesma coisa em qualquer direção de leitura, então uma barra lateral empurrada para a esquerda em inglês continua à esquerda em árabe, onde o leitor a espera à direita. A nova é lógica: margin-inline-start, padding-inline-end, inset-inline-start, text-align: start. Essas regras seguem a direção do documento e se invertem sozinhas.
A maioria dos temas OJS de terceiros que examinamos, inclusive, até pouco tempo atrás, os dois que vendemos, foi escrita com propriedades físicas. Em um periódico em inglês ninguém percebe. Em um periódico em árabe o resultado é uma página em que o texto se lê a partir da direita enquanto a moldura continua construída para a esquerda: logotipo e navegação do lado errado, cartões de artigo com a borda de destaque na aresta errada, menus suspensos abrindo fora da tela e setas de „próximo” apontando para trás.
Há uma segunda falha, menos visível. Os temas trazem suas próprias fontes, e essas fontes costumam conter apenas glifos latinos. O texto árabe cai então em uma fonte do sistema que não combina com o design, com outro peso e outra altura de linha. O leiaute pode estar bem espelhado e ainda assim parecer quebrado.
A terceira falha é invisível até você saber onde olhar. O OJS monta o pacote de traduções de um plugin apenas a partir do idioma solicitado. Um tema que traz textos em inglês e polonês, mas nenhum arquivo em árabe, imprime chaves brutas como ##plugins.themes.clarity.articles## na interface árabe. Não há recuo para o inglês.
O que „suporte RTL” precisa significar
Quando adicionamos o suporte da direita para a esquerda ao Clarity e ao Opus, o trabalho se resumiu a cinco coisas. Qualquer tema que afirme ter suporte RTL deveria conseguir mostrar as mesmas cinco.
- Propriedades CSS lógicas em todo lugar. Cada regra física de esquerda ou direita substituída pelo equivalente lógico, e uma verificação na construção que falha quando uma nova regra física escapa. O Clarity precisou de 51 substituições, o Opus de 27.
- Uma folha RTL curta para o que as propriedades lógicas não expressam. Ícones desenhados com transformações CSS, glifos de seta digitados nos modelos, a posição da seta de um
select, uma sombra que deve cair para o outro lado. Esse arquivo deve ser curto. Se for longo, o tema está remendando CSS físico em vez de corrigi-lo. - Fontes árabes incluídas. Enviamos Noto Sans Arabic e Noto Naskh Arabic com os dois temas, declaradas com
unicode-rangepara ativarem apenas com glifos da escrita árabe. O texto latino mantém o par tipográfico que o periódico escolheu, e nenhuma requisição sai para o Google Fonts. - Arquivos de tradução para as línguas RTL. Os dois temas incluem agora textos em árabe e persa para cada chave, então a interface nunca mostra chaves brutas. Urdu, curdo e hebraico usam as traduções da própria plataforma para a interface principal; os textos próprios do tema nessas três línguas continuam em inglês.
- Testes na interface real, nas duas versões de OJS suportadas. Comparamos pixel a pixel o leiaute em inglês antes e depois da mudança para garantir que nada se movesse, e depois revisamos as interfaces em árabe e persa na página inicial, no sumário do número, na página do artigo, no arquivo, no formulário de login e na visualização móvel, no OJS 3.4 e 3.5.
Dois detalhes desse trabalho merecem ser repassados a quem fizer o mesmo. Elementos ocultos com left: -9999px, um truque comum para links destinados a leitores de tela, criam dez mil pixels de transbordamento rolável em um documento RTL e podem empurrar a página inteira para fora da vista; o lógico inset-inline-start não faz isso. E carrosséis não precisam de tratamento especial se a biblioteca lê a direção do documento; o Swiper, que o OJS usa para os destaques, lê.
Como Clarity e Opus ficam em árabe
As duas demonstrações abaixo foram geradas a partir de uma instalação real do OJS 3.5 com a interface em árabe. Nada nelas é maquete.
- Clarity em árabe, o tema moderno com o carrossel de destaques e a capa do número.
- Opus em árabe, o tema acadêmico com tipografia serifada.
As páginas de produto do Clarity e do Opus listam o suporte RTL junto com os demais recursos. Ele vem nas versões atuais para OJS 3.4 e OJS 3.5, sem custo adicional.
Uma lista para avaliar qualquer tema OJS em RTL
Antes de comprar ou instalar um tema para um periódico em árabe, persa, urdu, curdo ou hebraico, faça ao fornecedor estas seis perguntas, ou verifique você mesmo em uma instalação de teste:
- O CSS do tema usa propriedades lógicas, ou depende de uma folha RTL separada que sobrescreve regras físicas? A primeira é uma decisão de design; a segunda, um remendo que quebra a cada atualização.
- O tema inclui fontes com glifos árabes, ou o texto árabe cai na fonte do sistema?
- O tema traz arquivos de tradução para o seu idioma de interface, de modo que nenhuma
##chave##apareça? - As versões em árabe e inglês foram comparadas depois do trabalho RTL, ou o RTL foi adicionado sem conferir se o leiaute em inglês sobreviveu?
- O suporte RTL existe na versão do OJS que você realmente usa, não só na mais nova?
- Você pode ver uma demonstração gerada a partir de uma instalação real no seu idioma, e não uma captura de tela?
Se as respostas forem sim, o tema vai servir bem aos seus leitores. Se o fornecedor não souber responder, a escolha mais segura para um periódico RTL continua sendo o tema padrão do OJS, que ao menos é testado nesse modo. E seja qual for o tema escolhido, instale-o de uma fonte identificável; nosso checklist de segurança para OJS explica por que isso importa mais do que qualquer recurso visual.