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