Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Мультиязычность, модульность..


Автор: QaaZ 10.1.2009, 19:30
Всем привет, сначало небольшое введение)) 
С утра отрубили инет и планов как на зло никаких не было.
Решил я покодить чего-нибудь, ну вроде что-то получилось, хорошо или плохо, вот хотелось бы чтобы вы оценили. smile


index.php
Код

# Определяем константы
define("GUARD", "1");


# Подгружаем конфиги\ядро\библиотеки
include_once('conf/config.php');
include_once('core.php');
include_once('route.php');


# Подключаем шаблон
include_once('template/default/index.php');



route.php
Код

<?php
# защищаем от несанкционированного запроса о_О
if (!defined('GUARD')) die ("Доступ закрыт.");

# Определяем язык
if (isset($_GET['lang']))
    {
        if (($_GET['lang'] == 'en')) 
                {
                    $conf['site']['language'] = "english";
                    include_once("conf/lang/english.php");
                }
        if (($_GET['lang'] == 'ru')) 
                {
                    $conf['site']['language'] = "russian";
                    include_once("conf/lang/russian.php");
                }
        }
    else { include_once("conf/lang/".$conf['site']['language'].".php"); }    


# Подсовываем нужные модули
if (isset($_GET['mod']) && $_GET['mod'] != "")
    {
        if (@!fopen("modules/".$_GET['mod']."/".$_GET['mod']."_index.php", r))
            {
            header('Location: '.$conf['site']['path'].'/page404.php');
            }
        else 
            {
            $mod = $_GET['mod'];
            include_once('modules/'.$mod.'/'.$mod.'_index.php');
            $j3o['$mod']['content'] = 'modules/'.$mod.'/'.$mod.'_echo.php';
            $module[modul][menu] = 'modules/menu/index.php';
                
            }
    } else {

        {
        include_once('modules/'.$conf['site']['home'].'/'.$conf['site']['home'].'_index.php');
        $mod = $conf['site']['home'];
        $j3o['$mod']['content'] = 'modules/'.$mod.'/'.$mod.'_echo.php';
        $module[modul][menu] = 'modules/menu/index.php';
        }
           }    

?>



Вот smile Это нигде не используется, ни на каком рабочем проекте, да  и написал за сегодня, пока инета не было...Баловался. 
Покритикуйте пожалуйста и по возможности помогите с решением проблемы:

1) Как лучше всего реализовать мультиязычность?
2) Как генерировать меню, с учётом мультиязычности? Т.е. если пользовотель выбрал русский($_GET['lang'] == ru), то у него всегда был русский. Пока были мысли только записывать в куки. Есть другой какой-нибудь вариант?

Автор: awers 10.1.2009, 19:34
2) сессии, куки. думаю остальные варианты не очень.

Автор: QaaZ 10.1.2009, 19:42
awers, Спасибо. smile

Автор: Majesty 13.1.2009, 13:24
Цитата(awers @  10.1.2009,  19:34 Найти цитируемый пост)
2) сессии, куки. думаю остальные варианты не очень.
лучше, все же, сквозной $_GET['lang'], потому как сессию или куку придётся ставить пожизненную, да и с ходу не поймёшь, на какую языковую версию сайта попадёшь сразу. тут вопрос в том, какой это сайт. если веб-сервис, то сессия/кука предпочтительнее (один раз переключил язык и радуешься), а если корпоративный сайт, то разные языковые версии могут сильно друг от друга отличаться и тут уже нужно как-то язык идентифицировать в урле.

Автор: QaaZ 13.1.2009, 15:12
Majesty,  Спасибо, сделал с помощью  $_GET['lang'] ;

Фактически система локализации готова, теперь думаю над тем, как сделать _мультиязычный_ контент и вообще стоит ли или нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)