Отдельная внутренняя страница "Виджеты" для каждого языка


В настоящее время я пытаюсь заставить свой сервер работать с несколькими языками. Я использую qTranslate в качестве плагина для перевода.

До сих пор я создал пользовательскую страницу опций с поддержкой нескольких языков. Когда вы нажмете на другой язык (в qTranslate на боковой панели), вы получите новую страницу параметров с подготовленными параметрами-переменными

show(option_textarea) -> 'english backend' -> show(option_textarea_en)
(saving under the same variable possible)

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

give(option_logo) -> 'german page viewing' -> return option_logo_de

Это также работает на странице виджета. ЗА ИСКЛЮЧЕНИЕМ того, что когда я переключаю свой текущий язык в бэкэнде, каждый виджет получает статус "неиспользуемый", и мне приходится вручную снова вставлять виджеты. Они не существуют для текущего активного языка и не являются предпочтительными. Так что в целом я могу устанавливать виджеты только для одного языка за раз. Виджеты с другого языка, который я установил, затем удаляются. Как я могу отключить это поведение?

Что мне нужно, так это фиксированный система редактирования виджетов, которая работает так же, как и мои параметры. Может быть, есть обходной путь для этой проблемы?

Заранее благодарю.

Author: Travis Pflanz, 2011-08-27

2 answers

Я не знаю, как работает qTraslate, но вы можете передавать фильтры в Логику виджетов, вы в основном дублируете каждый виджет, по одному для каждого языка. Я использовал этот метод с WPML для отображения виджетов на отдельных языках, что иногда может быть сложно (например, когда они делают прямые запросы к БД).

 1
Author: Wyck, 2011-09-11 03:00:22

Как указывает Вик, это самый простой способ.

У меня есть следующая функция в моем functions.php и я использую ее для фильтрации множества дублированных виджетов, по одному для каждого языка, например: is_lingo('en'), is_lingo('pt'), и т.д....

function is_lingo( $what ) 
{
    if ( !function_exists('qtrans_getLanguage') )
        return false;

    $lingo = qtrans_getLanguage(); 

    if( $what == $lingo ) 
        return true;

    return false;
}
 2
Author: brasofilo, 2012-06-30 02:02:45