Já trabalhei deste modo. Porém, os dados se é PT ou EN estão salvos no BD.
Vou incrementar o que foi dito por mim no post anterior. O usuário não pode alterar a linguagem de nada, apenas o Administrador. Estou pensando em cada usuário selecionar a lingua preferida, lembrando que isso é só de acesso à admin, users normais não podem mecher neste tipo de config...
Seguinte:
Tem o arquivo da pasta: 'data/Config.php' e nele tem a configuração com o banco de dados. E um include de um arquivo de linguagem. Após isso, em páginas normais, eu faço o include, e puxo a linha do arquivo de linguagem. Pra melhorar o sistema de linguagens, eu fiz multi-lingue, e criei vários arquivos: en, es, ru, etc. E fiz o include do arquivo: 'data/linguagem/en/site.php' na página de configuração. Criei uma tabela chamada 'linguagens', com os campos, 'uid', 'nome' 'path', 'codigo' e nele inseri o valor '1', 'Inglês', 'en', 'en-us'. O 'uid' é apenas para separa-los, 'nome' é para identificação dos mesmos para os administradores, 'path' é o local onde está a pasta do arquivo e 'codigo' é para inserir nas páginas no código-fonte para o navegador distinguir a linguagem a ser acessada, o chamado:
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
passando por tudo isso, no arquivo 'data/Config.php' eu insiro uma conexão com a tabela 'configuracoes' pego o campo 'lang', que estará preenchido com o número '1' (int), depois disso eu faço outra conexão com a tabela 'linguagens' e faço um WHERE com o 'uid' = igual à que está na tabela 'configuracoes'.
Pronto, já sei a linguagem selecionada e onde o path da linguagem atual se localiza. Certo, então bastaria eu fazer um include:
include("data/linguagem/" . $LINGUAGENS["path"] . "/arquivo.php");
ou
include("data/linguagem/" . $LINGUAGENS["path"] . ".php");
Tudo bem até ai, mas se eu querer separar os arquivos da pasta 'admin' dos arquivos do site?
Aí me veio a ideia, eu faço um IF, se a URL a ser digitada conter a pasta/palavra 'admin' eu incluo o arquivo:
include("data/linguagem/" . $LINGUAGENS["path"] . "/admin.php");
Se não foi, incluo o arquivo que é do site, ou seja, se o usuário não tá acessando a pasta admin, obviamente, ele não está na administração, logo não é necessário o arquivo de linguagens da admin. Então eu incluo:
include("data/linguagem/" . $LINGUAGENS["path"] . "/site.php");
Meu intuito com isso é velocidade. Por que armazenar tudo em um arquivo, deixa-lo gigante e lerdo unindo a parte frontal e a administração? O jeito é separa-los, essa foi minha ideia, além de deixar mais organizado!
Bem, abraços, espero que eu solucione meu problema. Breve disponibilizo este script aqui, apesar de que a parte teórica já estar explicada.
Edição feita por: Cleiton Garcia da Silva, 01/06/2011, 20:21.