Помогите составить условие: если в url есть категория "/en/", то выводится текст на английском

Рейтинг: 0Ответов: 3Опубликовано: 22.01.2015

Подскажите, как будет выглядеть условие.

Есть "site.ru/ru/" с текстом на русском языке, при переходе на англ. язык урл меняется на "site.ru/en/". Иногда фрагменты текста остаются на русском языке (заголовки спойлеров, например). Хочу перевести их с помощью условия:

if (url содержит /en/);
echo 'английский текст';
else echo 'русский текст';

Как прописать это условие: "url содержит /en/"?

Если есть какие-то другие способы перевода, их тоже рассмотрю. Благодарю за внимание.

Ответы

▲ 1Принят

Способов море:

  1. Использовать Ваш "ужасный" способ. Править/расширять языки будет проблематично и ресурсоемко.

  2. Хранить переводы в БД. Для каждого языка создать по БД: project_ru и project_en. Либо все в одной бд.

  3. Создать языковые файлы, на уровне обычных php файлов. Данный способ легок в понимании и реализации.

Если проект небольшой, то советую использовать 3-й способ.

П.С. забудьте Ваш способ. Привыкайте сразу к хорошим вещам!

▲ 1

strpos

$mystring = '/en/dsad/dsa/dsa/';
$findme   = '/en/';
if(strpos($mystring, $findme)!==false) {
echo 'английский текст';
} else {
echo 'русский текст';
}
▲ 1
function getLang()
{
    $uri = explode('/', $_SERVER['REQUEST_URI']);
    return $uri[1];
}

if (getLang()=='en')
....

Вообще, посмотрите, что содержит массив $_SERVER через print_r($_SERVER), например.