Painéis Muti Idiomas

De Qknow
Ir para: navegação, pesquisa

This post is available in English. Click on flag at side.

EnglishFlag.jpg


Introdução

Painéis de múltiplos idiomas são especialmente úteis para empresas com operações que vão além da fronteira do próprio país com propósito de publicar dados estratégicas sem que seja necessário desenvolver diferentes dashboards, cada um em um idioma. Em uma mesma estrutura de dados é possível apresentar aos tomadores de decisão a opção de escolha do idioma dos elementos gráficos visuais. Neste caso, os dados são mantidos iguais enquanto as informações sobre títulos, etiquetas, legendas e afins são alterados automaticamente com base na preferência do usuário.

O primeiro passo para montar um painel que sirva a múltiplos idiomas é utilizar uma tabela de apoio em nível de script para carregar a relação dos textos que serão utilizados em diferentes locais da aplicação. Esta tabela pode ser um arquivo de entrada em formato Excel ou Textual, ou mesmo uma carga do tipo INLINE.

Para simular a construção de um painel que possibilite o usuário trocar os textos para outro idioma, utilize o fragmento de carga de dados abaixo. A tabela é composta por três colunas sendo Index destinada a identificar cada linha exclusivamente para que possa ser referenciada posteriormente, e as colunas seguintes English e Português, irão conter os textos para os elementos gráficos da interface em inglês e português, respectivamente. Para incluir outros idiomas basta adicionar uma coluna a mais e incluir os textos correspondentes.

Translations:
LOAD * Inline [
Index, English, Português
   1 , Customer, Cliente
   2 , City, Cidade
   3 , State, Estado
   4 , Country, País
   5 , Phone, Telefone
   6 , Mobile, Celular
   7 , Address, Endereço
   8 , Company, Empresa
   9 , Fax, Fax
   10, ZipCode, Cep];

Preparando o Script de Idiomas

Uma vez que exista uma tabela contendo os textos que serão úteis ao painel, é preciso configurar tabelas de apoio que irão exibir uma lista dos idiomas disponíveis ao usuário. No exemplo em questão, o painel será preparado para acomodar textos em português ou inglês, de acordo com a seleção definida pelo cliente. O primeiro passo é a definição de uma variável que se utilizará de um campo definido posteriormente, tal como no seguinte exemplo:

LET vLanguage = '=Minstring(#Language)';

A função Minstring irá retornar a primeira ocorrência do texto definido no campo #Language, ainda não carregado. A tabela de apoio abaixo é destinada a montar a estrutura necessária transformando cada coluna de idioma (neste caso Português e English em uma nova coluna chamada de Translation.

Language:
CROSSTABLE (Language, Translation) LOAD
   Index, 
   English, 
   Português
RESIDENT Translations;
Qknow translation01.PNG

Se o script fosse interrompido nesta posição seria possível visualizar o que a instrução CROSSTABLE está realizando. Na prática este comando está criando uma nova coluna chamada Language e movendo os dados de idiomas para abaixo da coluna criada. Assim, ao invés de termos duas colunas definindo idiomas, agora há apenas uma contendo duas linhas para cada valor da coluna Index.

O CROSSTABLE realiza uma operação semelhante ao comando UNPIVOT presente em algumas linguagens, como T-SQL do SQL Server. No entanto, o script não se encerra neste ponto, pois é preciso criar uma lista onde o usuário poderão fazer a seleção do idioma dos textos.

Assim, as seguintes instruções completam o código. Uma vez que a tabela transposta realizou seu papel, não é necessário mantê-la em memória, motivo pelo qual a instrução DROP TABLE é utilizada.

LanguageList:
LOAD Language As #Language
 RESIDENT Language
 WHERE Language > 0;

DROP TABLE Language;

Utilizando a Tabela de Idiomas

Para utilizar a tabela de idiomas nos vários elementos gráficos é preciso informar qual índice textual representa o texto desejado. Na primeira tabela INLINE apresentada na introdução deste artigo, os textos em inglês e em português estão disponíveis para cada valor do campo Index. Desta maneira, é possível informar qual texto será apresentado de acordo com a seleção do usuário. A seguinte instrução carrega uma série de campos de exemplo que serão úteis a essa demonstração.

LOAD ClienteID, 
     NomeEmpresa, NomeContato, Endereco, Cidade, Estado, CodigoPostal, 
     Pais, Fone, Fax, DataCadastro, DataModificação
FROM [qknow_clientes_v1.0.xls] (biff, embedded labels, table is Clientes$);

Após executar o script contendo todas as instruções acima, é possível adicionar Listas a interface gráfica do painel para avaliar o comportamento da seleção dos idiomas. Para que os textos apareçam no idioma escolhido pelo usuário, é preciso utilizar uma fórmula informando qual item do campo Index se deseja obter o texto. Por exemplo, o campo Cidade pode ter o texto em português ou em inglês, pelo texto City.

=Minstring({<Index = {2}>} [$(vLanguage)])

A função acima obterá o texto de índice igual a 2 na tabela de idiomas através da variável $(vLanguage). O resultado será o texto em português ou em inglês dependendo da seleção feita na lista #Language, como nos exemplos a seguir.

Qknow translation03.PNG

Qknow translation02.PNG

Para cada item que se deseja usar múltiplos idiomas é preciso adicionar a fórmula acima. Por isso, neste exemplo, em cada lista foi preciso editar o Titulo na guia Geral de maneira a utilizar o Index correspondente ao texto desejado. Os índices para os campos Cidade, Estado e País são 2, 3 e 4, respectivamente. Textos diversos podem ser adicionados a tabela de tradução para que possam ser úteis em diferentes partes do painel, seja lá onde for necessário um texto traduzido. Para manter um idioma sempre assinalado, nas propriedades da lista $(vLanguage) certifique-se de marcar a opção Sempre Um Valor Selecionado na guia Geral.

Outros Assuntos




Envelope01.jpg
Procurando Algo? Fale Conosco!

Índice de Artigos | Página Principal