Привет всем! Делаю мультиязычный сайт. Заходим на сайт с России навпример и нам в сессию $_SESSION['lang'] присваивается значение ru И дальше скрипт видит switch Код (Text): switch($_SESSION['lang']) : default: include(''.dirname(__FILE__).'/lang/en.php'); break; case 'en': include(''.dirname(__FILE__).'/lang/en.php'); break; case 'ru': include(''.dirname(__FILE__).'/lang/ru.php'); break; case 'es': include(''.dirname(__FILE__).'/lang/es.php'); break; endswitch; И подключает файл. Файл например ru.php такого вида: Код (Text): $lang=array( "about_site" => "О нас", "blog" => "Блог", "faq" => "FAQ") И на сайте в определенном месте подключаем массив $lang['blog'], но а вот если не этого массива (blog), как можно сделать что скрипт искал его например в файле en.php, где он будет точно?
Сделать функцию, которая будет решать что делать, искать файл или просто выводить его. Вызов в хтмл Код (PHP): <?=a('about_site')?> А как у вас выводятся строки?
Всмысле как? Вот так <?=lang('about_site')?>, например подключаем файл ru.php, и там есть массив 'about_site', и вот выводим его <?=lang('site')?>, а если в ru.php его нету и вместо пустого места выводить, искать его в файле en.php, а подскажите как пример создать функцию
Ну к примеру Код (PHP): <?php $lang=array();//где-то там вверху function a($word){ global $lang; if(isset($lang) && count($lang)>0){//если массив был загружен и не пустой return $lang[$word]; }else{ include(''.dirname(__FILE__).'/lang/'.$_SESSION['lang'].'.php'); return $lang[$word]; } } В хтмл в любом месте вызывать Код (PHP): <?=a('about_site')?> Ну это примерно, надо ещё подумать, потестить.
Отлично. Я тебя не правильно понял, подумал, что файл языка не всегда может быть подключен. Но выход похожий. Можно узнавать, есть ли ключ, и так Код (PHP): <?php if(isset($lang[word])){//если есть запись // }