WPML - получить переведенный контент другого языка - PullRequest
0 голосов
/ 02 апреля 2020

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

В качестве примера можно привести пользователя с Spani sh, когда его язык браузера посещает веб-сайт США, Затем они получат уведомление на испанском языке sh о том, что у нас есть сайт на испанском языке sh.

Я немного покопался и нашел несколько других потоков, которые, похоже, пытаются достичь аналогичной конечной цели: WPML получает переведенное содержимое строки со всех языков, если доступно , Вывод имен терминов таксономии для переводов , https://wpml.org/forums/topic/get-all-post-ids-for-default-language/

Используя эти и другие темы, я собрал воедино следующее:

wp_register_script ( 'main_script', plugins_url ( '/js/main.js', __FILE__ ) );
wp_register_style ( 'language_modal_style', plugins_url ( 'style.css', __FILE__ ) );

function do_the_language_stuff() {
        global $sitepress;
        global $txt;
        global $region;
        global $button;
    $get_lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,5);
    $displayLanguage = $get_lang;  // save browser lang
    $current_lang = $sitepress->get_current_language();  //save current language 
    $sitepress->switch_lang($displayLanguage); //temporarily switch to browser langauge 
        $txt = __('Choose a language to see content specific to your location.','Lang Selector'); 
        $region = __('Choose other language','Lang Selector');
        $button = __('Continue','Lang Selector');
    $sitepress->switch_lang($current_lang); // restore previous language
}
add_action( 'after_setup_theme', 'do_the_language_stuff' );

function prw_language_select() { ?>
    <div id="lang_picker" class="">
    <div class="lang_main_cont">    
    <div class="lang_left">
        <p><?php global $txt; echo $txt; ?></p>
    </div>
    <div class="lang_right">
        <p>
            <select id="country_select" class="lang_select">
                <option id="" value="/gb">UK</option>
                <option value="/country-list"><?php global $region; echo $region; ?></option>
            </select> 
    <input class="lang_btn" id="goto" type="button" value="<?php global $button; echo $button; ?>" onclick="document.location.href=document.getElementById('country_select').value"><i id="lang_close" class="fas fa-times lang_close"></i>
        </p> 
    </div>
    </div>
    </div>
<?php
}

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

Я признаю, что у меня нулевой опыт работы с php, кроме функций super basi c, но я решил, что, по крайней мере, попробую сделать удар и учиться во время выполнения. Но, если есть лучший способ добиться того, что я пытаюсь сделать, или другие аспекты моего кода неверны, пожалуйста, дайте мне знать.

...