Задать вопрос
@WELES333
Студент, специальность "Информатика".

Как перевести сайт без перезагрузки используя gettext?

Для перевода своего index.php я заинклудил в него такой php скрипт:
<?php
require_once("lib/streams.php");
require_once("lib/gettext.php");
// $locale_lang = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
// $selected_lang = array("pl_PL","en_US");
// $locale_lang = in_array($locale_lang, $selected_lang) ?  $locale_lang : "en_US";
$locale_lang = $_GET['lang'];

$locale_file = new FileReader("locale/$locale_lang/LC_MESSAGES/messages.mo");

$locale_fetch = new gettext_reader($locale_file);

function __($text){
	global $locale_fetch;
	return $locale_fetch->translate($text);
}

Для запуска перевода сделал следующий JS:
$('.bfh-selectbox-options div ul li a').on('click', function() {
   refLang =  "lang=" + $(this).attr('data-option');

   refLang = $('.bfh-selectbox > input ').attr('value');
if (refLang == "en_US") {
   window.location.href='//localhost:3000/index.php?lang=en_US';
  } else if (refLang == "pl_PL") {
     window.location.href='//localhost:3000/index.php?lang=pl_PL';
   }


И все работает нормально, только вот хотелось бы сделать перевод без перегрузки страницы. Структура каталога:
f1c18a44c7444d88a1ceea4e8c88a3d2.png
Попробовал сделать так:
$('.bfh-selectbox-options div ul li a').on('click', function() {
   refLang =  "lang=" + $(this).attr('data-option');
    $.get("php/getlang.php", refLang);
  });

Но получаю ошибку:
require_once(): Failed opening required 'php/lib/streams.php'
Как можно это исправить?
  • Вопрос задан
  • 255 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@WELES333 Автор вопроса
Студент, специальность "Информатика".
я пробовал ставить так,
require_once("php/lib/streams.php");
require_once("php/lib/gettext.php");


но тогда get их не читает
Ответ написан
Ваш ответ на вопрос

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

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