Мультиязычность - перевод выпадающих списков

Материал из Umicms
Версия от 05:08, 29 октября 2010; VITL' (обсуждение | вклад) (Новая страница: «Если необходимо для другой языковой версии сайта перевести названия элементов выпадающе…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Если необходимо для другой языковой версии сайта перевести названия элементов выпадающего списка, то для выполнения данной задачи можно воспользоваться кастомным макросом, который пропишем в файле classes/modules/custom.php

public function optionslang($objcet_id, $title){
    $cor = cmsController::getInstance();
    $cur_lang_prefix = $cor->getLang()->getPrefix();
    if($cur_lang_prefix == 'ru') return $title;
    $object = umiObjectCollection::getInstacne()->getObject($object_id);
    if($object instanceof umiObject){
      if($value = $object->getValue($cur_lang_prefix)){
        return $value; 
      }esle{
        return $title; 
      }
    }
  }

Перед его использованием необходимо открыть на редактирование ваш справочник (модуль Шаблоны данных - Справочники), добавить в него поля с идентификатором = префиксу языковой версии сайта. Далее необходимо открыть содержимое справочника и для каждого элемента прописать переводы, в только что созданных полях.

При использовании блока search_block_line_item_relation, когда формируются элементы выпадающего списка, в данный блок передаются параметры object_id и object_name, их и передадим в наш кастомный макрос. Вызов следующий: %custom optionslang(%object_id%, %object_name%)%