• Привет всем.
    CMS: WordPress 3.4.1
    Тема: Wedding Album 1.3

    Описание: Тема на английском языке. Имеется языковый файл. Перевожу при помощи него на русский язык. Всю тему успешно перевел.

    Проблема: В админке страница с настройками темы оформлена в виде вкладок. На одной вкладке общие настройки, на второй стили, на третьей слайдшоу и т.д. Когда задаю этим вкладкам русские названия, то переключение по вкладкам невозможно. Похоже что якоря ссылок и названия вкладок это одно и то же.

    Вопрос: Как перевести название вкладок, оставив их работоспособность?

    Фрагмент кода в котором заданы названия:

    <?php
    //Theme options config
    $options = array (
    
    	//General settings
    	array(	'name' => __('General','weddingalbum'),
      	'type' => 'heading' ),
      
      ...
    
      
    	//Styling options
    	array(	'name' => __('Styling','weddingalbum'),
      	'type' => 'heading' ),
      
      array(	'name' => __('Skins','weddingalbum'),
      	'type' => 'subheading' ),
    ...

    где — General и Styling — первые две вкладки):
    … — вырезанные куски кода.

    Фрагмент кода в котором обрабатываются ссылки:

    //Render options menu
    	public function renderAdminMenu($options) {
      $index=1;
      $out='<ul>';
      foreach($options as $option) {
      	if($option['type']=='heading') {
        $out.='<li class="item_'.$index.'" id="'.preg_replace('/[\s\W]+/','-',$option['name']).'"><span>'.$option['name'].'</span></li>';
        $index++;
      	}  
      }
      $out.='</ul>';
      return $out;
    	}

    Пытался добавить еще одно поле, которое будет обрабатываться как якорь в ссылке, но что-то не вышло. В php не силен. Буду рад помощи. Спасибо.

    Даю ссылку на скачивание этой темы. Если не лень, установите и попробуйте переименовать.
    Скачать тему Wedding Album 1.3: http://files.mail.ru/MXLI88

Просмотр 1 ответа (всего 1)
  • Решено!

    Вчера, спустя пятнадцать минут решил задачу. Если кому пригодится опишу как.
    В первом фрагменте кода добавляем еще одну переменную (name_id), которую будет перехватывать языковый файл и убираем нижнее подчеркивание со скобками напротив ‘name’.
    Должно получиться:

    'name' => 'General','weddingalbum',
       'name_id' => __('General','weddingalbum'),
       'type' => 'heading' ),
    
    ...
    
    //Styling options
     array( 'name' => 'Styling','weddingalbum',
       'name_id' => __('Styling','weddingalbum'),
       'type' => 'heading' ),
    
    ...

    Так продлелываем для каждого блока к которому относится ‘type’=>’heading’

    После этого во втором фрагменте кода внутри тега span заменяем
    <span>'.$option['name'].'</span>
    на
    <span>'.$option['name_id'].'</span>

    Таким образом языковый файл перехватывает переменную, которая подставляется в название вкладки, а для функции ссылки бурется прежнее значение ‘name’.

    Итог: Вкладки переключаются и переведены на русский язык.

Просмотр 1 ответа (всего 1)
  • Тема «Проблема с переводом темы WordPress» закрыта для новых ответов.