Как реализовать языковые пакеты в PHP - PullRequest
0 голосов
/ 30 января 2010

Я создал 3 языковых пакета для своего сайта: английский, испанский и французский. У меня просто проблемы с их реализацией на основе выбора пользователя. У меня есть следующее выпадающее меню:

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

Как включить языковые файлы в зависимости от того, что выбрал пользователь, я просто не знаю, что поставить в качестве условия в if: .

Спасибо.

Ответы [ 3 ]

2 голосов
/ 30 января 2010

Когда вы вводите опцию через строку запроса, вы можете получить к ней доступ с помощью

$lang = $_GET['lang']
1 голос
/ 30 января 2010

Сначала сохраните значение, выбранное пользователем в сеансе пользователя. e.g.:

<code>switch($_POST['lang']) {
    case 'en': $_SESSION['lang'] = 'English'; break;
    case 'sp': $_SESSION['lang'] = 'Spanish'; break;
    default:   $_SESSION['lang'] = 'English'; break;
}

При каждом запросе страницы извлекайте языковые файлы из соответствующей языковой папки в соответствии с сохраненным значением.

Например, вот так будет выглядеть структура файлов:

  • Английский
    • global.php
    • register.php
  • Испанский
    • global.php
    • register.php

Затем, когда вам нужно загрузить текстовый файл, используйте:

<code>function load_text_file($filename) {
    include 'languages/' . $_SESSION['lang'] . '/' . $filename.'php';
    return $txt;    // $txt should be an array
}
//...</p>

<p>$text = array();
$text += load_text_file('Global');
$text += load_text_file('Register');
0 голосов
/ 10 марта 2014

Для моего шаблона этот кусок кода

$_SESSION['language'] = 'english';

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...