Dicionários
Introdução
Dicionários é o sistema de traduções de textos fixos da interface do website — rótulos, mensagens, textos de botões — coisas que não são conteúdo de página, mas texto "embutido" no código, e que ainda assim precisa de existir em cada idioma.
Envolve dois formulários no backoffice:
- Entrada (
dictionary_entry) - Dicionário (
dictionary)
Entrada
Define uma "chave" de tradução — Código (code, usado no código para ir buscar o valor) e Descrição. Ex.: uma entrada contact-form-success, usada para a mensagem de sucesso do formulário de contacto (é exatamente essa que aparece no ContactForm da Funcionalidade).
Dicionário
É o valor traduzido de uma Entrada, para um determinado Idioma (language_id) — campo Valor (value, aceita HTML).
Ao contrário das Configurações, o Dicionário não tem um mecanismo de fallback sem idioma — cada Entrada precisa de um Valor definido explicitamente para cada idioma em que for usada. Se faltar a tradução num idioma, o texto que aparece é o próprio código da Entrada (ex.: contact-form-success), não um valor genérico.
Programaticamente
A classe website/src/common/Cluar.js disponibiliza funções para ler entradas do dicionário, todas devolvendo o código da entrada como resultado se não houver tradução (útil para notar traduções em falta):
Cluar.dictionary(entrada)— obtém o valor traduzido no idioma atual, tal como foi guardado (pode incluir HTML).Cluar.plainDictionary(entrada)— igual, mas remove tags<p>e<br>. É a mais usada em rótulos de interface (botões, campos de formulário, notificações).Cluar.plainTitle(entrada)— igual, mas remove apenas tags<p>.Cluar.plainHTML(entrada)— remove todas as tags HTML.Cluar.dictionaryNoParagraph(entrada)— remove apenas tags<p>(equivalente aoplainTitle).
Próximo passo
Explora os Templates.