Como implementar pacotes de idiomas em php
-
24-09-2019 - |
Pergunta
Criei três pacotes de idiomas para o meu site: inglês, espanhol e francês. Estou apenas tendo problemas para implementá -los com base na seleção do usuário. Eu tenho o seguinte menu suspenso:
<select onchange='document.location.href=this.options[this.selectedIndex].value;'> <option>Select</option> <option value="?lang=eng">US English</option> <option value="?lang=esp">Español</option> <option value="?lang=fra">Français</option> </select>
Como posso incluir os arquivos de idiomas com base no que o usuário seleciona, simplesmente não sei o que colocar como o doença no If Declaração.
Obrigado.
Solução
No início, salve o valor que o usuário selecionou na sessão do usuário. por exemplo:
switch($_POST['lang']) {
case 'en': $_SESSION['lang'] = 'English'; break;
case 'sp': $_SESSION['lang'] = 'Spanish'; break;
default: $_SESSION['lang'] = 'English'; break;
}
Em todas as solicitações de página, busque os arquivos de idioma da pasta de idiomas relevante de acordo com o valor que você salvou.
Por exemplo, é assim que parecerá a estrutura dos arquivos:
- Inglês
- Global.php
- Register.php
- Espanhol
- Global.php
- Register.php
Então, sempre que você precisar carregar um arquivo de texto, use:
function load_text_file($filename) {
include 'languages/' . $_SESSION['lang'] . '/' . $filename.'php';
return $txt; // $txt should be an array
}
//...
$ text = array (); $ text += load_text_file ('global'); $ text += load_text_file ('registro');
Outras dicas
Ao trazer a opção por meio de uma sequência de consulta, você pode acessá -la com
$lang = $_GET['lang']
Para o meu modelo, esse pedaço de código é
$_SESSION['language'] = 'english';