Мультиязычность

Тема в разделе "PHP", создана пользователем shamantc, 21 май 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. shamantc

    shamantc ЗлОй ШаМан

    Заблокирован
    Регистр.:
    3 ноя 2008
    Сообщения:
    655
    Симпатии:
    184
    Как можно сделать, несколько языков, например щас вс записанно в разные файлы, хотелось бы что бы была папка lang а в ней файл lang.php а в файлах я мог прописывать
    lang_1="Введите пароль";
    lang_2="Введите логин";
    Ну в общем сть понятно как это можно организовать?
     
  2. tarantas

    tarantas Постоялец

    Регистр.:
    22 мар 2008
    Сообщения:
    75
    Симпатии:
    14
    Через базу данных, либо кукисы ( но 1 вариант - лучше ).
     
  3. shamantc

    shamantc ЗлОй ШаМан

    Заблокирован
    Регистр.:
    3 ноя 2008
    Сообщения:
    655
    Симпатии:
    184
    Можно подробнее?
     
  4. Drak0n4ik

    Drak0n4ik Создатель

    Регистр.:
    8 май 2009
    Сообщения:
    25
    Симпатии:
    1
    Например в базе данных хранить массив с разными языками. И уже по надобности вытаскиваешь нужный массив. Для хранения массивов в БД используй функцию serialize() и unserialize() {PHP}

    Если использовать ланг-файлы — то подключать соответственно нужный файл.
    а выглядеть должно приблизительно так:
    на любой вывод текста должна идти переменная из ланг-файла.

    Тарантас тебя не так понял. Он имел ввиду, что предпочтительный язык юзера хранить в БД, но можно и в кукисах.
     
  5. shamantc

    shamantc ЗлОй ШаМан

    Заблокирован
    Регистр.:
    3 ноя 2008
    Сообщения:
    655
    Симпатии:
    184
    Ну создам я lang файл и во всх остальных файлах внутри напишу Lang_1=... и т.д.
    какого должно быть соержание lang файла и как он будет подключаться к сайту ну смысле как бует dtmc пицип работы, можно более подробно желательно в примерах как это должно выглядить
     
  6. agent_smit

    agent_smit Постоялец

    Регистр.:
    12 дек 2008
    Сообщения:
    60
    Симпатии:
    11
  7. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    создаешь файл к примеру russian.lang, загоняешь туда контент по такому правилу:

    PHP:
    <?
    define ("_LANG_SITE_YES""Да");
    define ("_LANG_SITE_NO""Нет");
    ...
    и так далее
    ?>
    потом заисываешь это дело в сессию примерно так:

    PHP:
    if (!file_exists(_BASE_PATH."languages/".$session->get("language").".lang"))
    {
     print
    "язык (".$session->get("language").") не грузится!";   
    }
    else
    {
    $session->set("language"_SITE_LANGUAGE);
    define("_LANGUAGE"$session->get("language"));
    }
    потом иклудишь файл с языком:
    PHP:
    include("languages/"._LANGUAGE.".lang");
    вот как то так)
     
  8. RomAndry

    RomAndry Постоялец

    Регистр.:
    21 ноя 2007
    Сообщения:
    102
    Симпатии:
    24
    как вариант, создаешь массив $lang и разные файлы языковые в которых
    PHP:
    $lang['username'] = 'userName';
    $lang['password'] = 'password';
    и далее по логике инклюдим нужный файл.
    настройку языка для юзера храним в сессии и если надо в базе и потом из базы в сессию опять
    нагружать базу языками не очень приемлемо для нагрузки
     
  9. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Вот поэтому надо делать отдельный языковой файл;)
     
Статус темы:
Закрыта.