Как сделать верхнее и нижнее меню мультиязычным?
Написал Administrator   
Friday, 12 May 2006

Есть множество сравнительно простых варианта.

1. Элементы навигации вложить в языковые файлы системы, тем самым при выборе определенного языка в навигации будут выведены именно те элементы которые предназначены только дня него.
В языковые константы можно вкладывать не только фразы, но и HTML код, с соблюдением синтаксиса PHP.

Есть множество сравнительно простых варианта.

1. Элементы навигации вложить в языковые файлы системы, тем самым при выборе определенного языка в навигации будут выведены именно те элементы которые предназначены только дня него.
В языковые константы можно вкладывать не только фразы, но и HTML код, с соблюдением синтаксиса PHP.
Пример:
В руском языковом файле для графической ссылки на главную указываем:

define("_NAV_HOME","<img border='0' src='images/home_ru.gif' width='1' height='1'>");

Для английской аудитории:

define("_NAV_HOME","<img border='0' src='images/home_en.gif' width='1' height='1'>");

После этого в соответствующем файле системы (для верхней навигации это скорее всего будет файл header.php) дописываем в массив вывода шаблона новое значение:

   $template->assign_vars(array(
        'TOPNAVHOME' => _NAV_HOME)
    );

Ну и выводим все это дело в соответствующем файле оформления

2. Можно воспользоваться системной константой определения текущей языковой версии _SNSS_LANG, и создавая условие выводить ту или иную навигацию, к примеру, в том же файле header.php для верхней навигации пишем:

    if(_SNSS_LANG == "ru") { $nav_block = "Содержание навигации для русской аудитории"; }
    else if(_SNSS_LANG == "en") { $nav_block = "Содержание навигации для англоязычной аудитории"; }

И т.д. в зависимости от количества языков в системе

3. Можно воспользоваться логикой подставления значения для графических объектов, к примеру, для графической кнопки "На главную" создаем иконки со следующими названиями:
ru_navhome.gif
en_navhome.gif и т.д.
Снова в файле header.php создаем элементы вывода в шаблоне

    $nav_home = ""._SNSS_LANG."_navhome.gif";
    $template->assign_vars(array(
        'TOPNAVHOME' => $nav_home)
    );

Т.е. название файла графики будет генерироваться автоматически в зависимости от текущей языковой версии.

Т.е. как видите вариантов множество. И к тому что я перечислил можно прибавить еще, но думаю что и этого должно хватить на все случаи жизни-)

Последнее обновление ( Friday, 24 November 2006 )