qTranslate показать доступные языки для сообщений на странице

Мне нужно, чтобы пропущенные языки отображались на странице блога. У меня 4 языка (немецкий, чешский, английский, французский), поэтому, когда у меня есть английская почта с немецким переводом, мне нужно показать, что на чешском и французском нет перевода, и что английский и немецкий в порядке. Я обнаружил, что в админке у меня есть столбец «Языки» с аналогичной информацией на странице «Все сообщения», и я нашел для него код.

function qtranxf_languageColumn($column) {
global $q_config, $post;
if ($column == 'language') {
    $missing_languages = null;
    $available_languages = qtranxf_getAvailableLanguages($post->post_content);
    if($available_languages === FALSE){
        echo _x('Languages are not set', 'Appears in the column "Languages" on post listing pages, when content has no language tags yet.', 'qtranslate');
    }else{
        $missing_languages = array_diff($q_config['enabled_languages'], $available_languages);
        $available_languages_name = array();
        $language_names = null;
        foreach($available_languages as $language) {
            if(isset($q_config['language_name'][$language])){
                $language_name = $q_config['language_name'][$language];
            }else{
                if(!$language_names) $language_names = qtranxf_default_language_name();
                $language_name = isset($language_names[$language]) ? $language_names[$language] : __('Unknown Language', 'qtranslate');
                $language_name .= ' ('.__('Not enabled', 'qtranslate').')';
            }
            $available_languages_name[] = $language_name;
        }
        $available_languages_names = join(', ', $available_languages_name);
        echo apply_filters('qtranslate_available_languages_names',$available_languages_names);
    }
    do_action('qtranslate_languageColumn', $available_languages, $missing_languages);
}
return $column;

}

но я не знаю, как это исправить по моим потребностям, пожалуйста, помогите мне с этим вопросом!


person Karina Dubinina    schedule 24.01.2017    source источник


Ответы (1)


вы должны сделать что-то вроде этого: (в вашей теме single.php или entry-content.php)

 // get the post id
 $post = get_post();
 $post_id = $post -> ID;

 // check if en is available and the current language not english
 if(!qtranxf_isAvailableIn($post_id, 'en') && qtranxf_getLanguage() != 'en'){ // no En content
    echo 'no english';
 }

 // check if the french is available and the current language not french
 if(!qtranxf_isAvailableIn($post_id, 'fr') && qtranxf_getLanguage() != 'fr'){ // no FR content
    echo 'no french';
 }

 // check if the czech is available and the current language not czech
 if(!qtranxf_isAvailableIn($post_id, 'cz') && qtranxf_getLanguage() != 'cz'){ // no cz content
    echo 'no czech';
 }

 // check if the german is available and the current language not german
 if(!qtranxf_isAvailableIn($post_id, 'de') && qtranxf_getLanguage() != 'de'){ // no Ger content
    echo 'no german';
 }

Непроверенный код
, который может помочь вам найти работающее решение.

person Ali Salti    schedule 24.01.2017
comment
У вас есть скайп или фейсбук для общения? У меня есть для вас небольшие задания. Будет платить за это - person Karina Dubinina; 26.01.2017