Menu Dinâmico - Variáveis de Linguagens

Gostaria de saber se tem como colocar uma variável no cadastro de descrição e hint no cadastro do menu dinâmico, ao invés de um texto fixo, ou seja, uma variável de tradução por exemplo?

Quando eu for cadastrar um item do menu dinâmico no banco de dados, colocar uma variável de linguagem na descrição do item e no hint e ao montar o menu dinâmico aparecer o conteúdo da variável.

Consegue sim, seria só colocar a variavel cadastrada no texto, ele vai puxar no idioma que esta selecionado.

cadastra em: Localidade -> Traduzir Aplicações

e coloca no texto ou hint a variavel q tu cadastrou (ex: {lang_varivael})

1 Curtida

Se o Menu é dinâmico e os dados vem do banco, a tradução deve vir direto do banco de dados. Ou seja criar campos para cada língua.

2 Curtidas

Boa tarde João!
Eu fiz desta maneira mas não funcionou aparece o conteúdo do campo e não o conteúdo da variável:

CREATE TABLE sec_menu (
Codigo int(11) NOT NULL,
Descricao varchar(50) DEFAULT NULL,
Link varchar(100) DEFAULT NULL,
Sub_menu int(11) DEFAULT NULL,
Ordem int(11) DEFAULT NULL,
Icone varchar(100) DEFAULT NULL,
Target varchar(10) DEFAULT NULL,
Hint varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO sec_menu (Codigo, Descricao, Link, Sub_menu, Ordem, Icone, Target, Hint) VALUES
(1, ‘{lang_menu_security}’, ‘’, 0, 0, ‘’, ‘’, ‘’),
(2, ‘{lang_list_users}’, ‘sec_grid_sec_users’, 1, 1, NULL, NULL, NULL),
(3, ‘{lang_list_apps}’, ‘sec_grid_sec_apps’, 1, 2, NULL, NULL, NULL),
(4, ‘{lang_list_groups}’, ‘sec_grid_sec_groups’, 1, 3, NULL, NULL, NULL),
(5, ‘{lang_list_users_x_groups}’, ‘sec_grid_sec_users_groups’, 1, 4, NULL, NULL, NULL),
(6, ‘{lang_list_apps_x_groups}’, ‘sec_form_sec_groups_apps’, 1, 5, NULL, NULL, NULL),
(7, ‘{lang_list_sync_apps}’, ‘sec_sync_apps’, 1, 6, NULL, NULL, NULL),
(8, ‘{lang_logged_users}’, ‘sec_logged_users’, 1, 7, NULL, NULL, NULL),
(9, ‘{lang_social_login}’, ‘sec_link_social’, 1, 8, NULL, NULL, NULL),
(10, ‘{lang_2fa}’, ‘sec_add_2fa’, 1, 9, NULL, NULL, NULL),
(11, ‘{lang_settings}’, ‘sec_settings’, 1, 10, NULL, NULL, NULL),
(12, ‘{lang_change_pswd}’, ‘sec_change_pswd’, 1, 11, NULL, NULL, NULL),
(13, ‘{lang_log_title}’, ‘app_grid_log’, 1, 12, NULL, NULL, NULL),
(14, ‘{lang_exit}’, ‘’, 0, 13, NULL, NULL, NULL);

Boa tarde, Haroldo!
Desta maneira tem que fazer mais tratamento no banco e na aplicação e não conseguiria usar de maneira tão dinâmica, quanto eu imaginava e gostaria que funcionasse.

Desculpa, mas mais dinâmico que ter o idioma em banco de dados, no meu ponto de vista é impossível.

O Scriptcase não tem dinamismo na questão idiomas, pois os valores traduzidos são fixados no momento da geração da aplicação.

Se vc precisar corrigir uma tradução precisa gerar a aplicação novamente.

Dinamismo é vc poder criar, alterar traduções depois da aplicação gerada.

2 Curtidas

Claro que não funciona, pois o idioma no SC não é dinâmico.

{lang_menu_security} somente no momento de gerar a aplicação é convertido em código para idioma traduzido.

Aí se prova que o idiomas no SC não é dinâmico e sim estático.

Você só pode usar {alguma coisa} ou [alguma coisa] ou macros nos eventos da IDE, que ao gerar a aplicação são convertidos em código PHP.

2 Curtidas

Crie uma app blank e coloque o seguinte código:

echo '<pre>', print_r($this->Ini->Nm_lang,1),'</pre>';

Verá toda a tradução (mesmo não utilizada) em sessão do PHP.
O que é um uso absurdamente exagerado de memória.

EM TEMPO

Nada impede de vc fazer ser dinâmico os idiomas no SC.

{lang_list_apps} = 'Minhas Aplicações';

Pode buscar valores do banco de dados e alimentar as propriedades no inicio das aplicações.

$this->Ini->Nm_lang['lang_list_apps'] = 'Minhas Lista de Aplicações';

onde em uma tabela de tradução você teria com chave, o índice (idioma, propriedade) e valor

idioma = ‘pt-BR’
propriedade = ‘lang_list_apps’
valor = ‘Minhas Lista de Aplicações’

2 Curtidas

Acho q eu tinha entendido errado sua pergunta, como o Haroldo falou, desse modo não vai funcionar mesmo.

1 Curtida

Valeu obrigado, vou testar e ver a performance.

Tranquilo, mesmo assim, obrigado pela atenção.

1 Curtida