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.

Foi útil?

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';

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top