Caminho no Gestor bibliotecas/lang.php
A lang.php traduz as mensagens dos scripts internos: o atualizador de banco, o compilador de recursos, o instalador de plugins. Ela não participa da tradução do site nem do painel, que usa as variáveis de texto (gestor_variaveis()) e a pasta resources/<idioma>/.
Não está no registro de bibliotecas: os scripts a incluem com require_once.
Como funciona
-
Ao ser incluída, define
$GLOBALS['lang'](padrãopt-br) e carrega$GLOBALS['dicionario']comcarregar_dicionario(). -
carregar_dicionario($lang = 'pt-br', $base = '')lêgestor/bibliotecas<base>/<lang>.json. Esse arquivo não existe na pastabibliotecas/, então o dicionário padrão é sempre vazio. -
set_lang($lang)troca o idioma e recarrega o dicionário (vazio, pelo mesmo motivo). -
__t($chave, $trocas = [])devolve a tradução ou, sem ela, a própria chave. Cada troca substitui{nome}e:nome.
Os dicionários de verdade ficam ao lado de cada script, que os mescla depois do set_lang():
set_lang('pt-br');
$arquivo = __DIR__ . '/lang/' . $GLOBALS['lang'] . '.json';
if (is_file($arquivo)) {
$GLOBALS['dicionario'] = array_merge($GLOBALS['dicionario'], json_decode(file_get_contents($arquivo), true));
}
echo __t('_compare_summary', ['tabela' => 'paginas', 'ins' => 3]);Pastas existentes: controladores/atualizacoes/lang/, controladores/plugins/lang/ e controladores/agents/arquitetura/lang/.
Armadilhas
-
O compilador de recursos (
atualizacao-dados-recursos.php) chamaset_lang('pt-br')mas não mescla a sua pastalang/: as mensagens dele saem como a chave crua (_map_file_not_found). -
A troca
:nometambém atinge prefixos: com['id' => 5],:identificadorvira5entificador. Prefira{nome}. -
As funções são declaradas dentro de
if (!function_exists(…)): se outro código já definiu__t(), a versão desta biblioteca é ignorada.
Funções
Gerado a partir de gestor/bibliotecas/lang.php · 3 funções
carregar_dicionario
ver no código · linha 25 ↗carregar_dicionario($lang = 'pt-br', $base = '')Parâmetros
$lang$base
__t
ver no código · linha 68 ↗__t($key, $replacements = [])Parâmetros
$key$replacements
set_lang
ver no código · linha 92 ↗set_lang($lang)Parâmetros
$lang