RadCor
@RadCor
Если мой ответ вам помог, отмечайте его решением.

Мультиязычность на wordpress, на php работает, на CMS нет, как допилить?

Всем привет, сделал лендинг на WP, нужно добавит на него мультиязычность.
Погуглил, как сделать на PHP нашёл, и сделал.
Но когда дошло до создание темы на WP, то там эта мультиязычность не работает.

Помогите пожалуйста адаптировать код чистого PHP под WP.

И так, создаю 2 файла с языками lang-ru.php
<?
$l['abuot_us'] = 'О нас';
$l['experience'] = 'Услуги';
$l['projects'] = 'Проекты';
$l['contacts'] = 'Контакты';
?>

и lang-en.php
<?
$l['abuot_us'] = 'About us';
$l['experience'] = 'Experience';
$l['projects'] = 'Projects';
$l['contacts'] = 'Contacts';
?>

И файл который будет по URL определять какой язык отображать lang-handler.php
<?
switch($_GET['lang']) :
   default: include('inc/lang-en.php'); break;
   case 'en': include('inc/lang-en.php'); break;
   case 'ru': include('inc/lang-ru.php'); break;
endswitch;
?>

И в самом шаблоне index.php в нужные места вставляю переменные
<? get_template_part( 'inc/lang' , 'handler' ); ?>
<a href="#about" ><?=$l[abuot_us]?></a>
<a href="#services"><?=$l[experience]?></a>
<a href="#projects"><?=$l[projects]?></a>
<a href="#contacts"><?=$l[contacts]?></a>


Но когда на чистом PHP это было, то работало, когда поставил на WP, не пашет.
Я подозреваю, что проблема в файле lang.php
Попробовал вышеупомянутую конструкцию заменить на это:

<?
switch($_GET['lang']) :
   default: get_template_part( 'inc/lang' , 'en' ); break;
   case 'en': get_template_part( 'inc/lang' , 'en' ); break;
   case 'ru': get_template_part( 'inc/lang' , 'ru' ); break;
endswitch;
?>


Но что-то по прежнему не работает.
Что я делаю не так?
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 2
То что вы пишете - довольно сильное извращение. Все что вам нужно - установить плагин wpglobus. Создать файл перевода через Программу Poedit и добавить в тему.

По поводу вашего скрипта, не особо понятно (возможно плохо посмотрел) как у вас определяется сам язык:
$_GET['lang'] через что вы передаете параметр? Могу вам предложить вариант просто просматривать ссылку на наличие: /en/ и передавать результат проверки в switch.
Ответ написан
zomradPRO
@zomradPRO
сайт "под ключ"
лучшим вариантом будет установить плагин wpglobus, после создать файл перевода через программу Poedit и добавить в тему
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы