Вернуться   SEO форум - оптимизация и продвижение сайтов > Web разработки > Программирование

Важная информация
Программирование - PHP, MySQL, JavaScript, CSS, HTML верстка и т.д.

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 13.04.2015, 22:09   #1
 
Аватар для psyhelp24
 
Сообщений: 200
FR (активность): 10,706

Доп. информация
По умолчанию Автор темы Как весь мультиязычный сайт перевести на англ.язык?

День добрый!

Есть сайт на WordPress.
Стоит задача сделать из него мультиязычный сайт (русс+англ. версии).
Установила плагин Polylang
Всё великолепно перевелось и работает, кроме 3 мест на сайте:
1) футер
2) на главной странице кнопка "читать далее"
3) на главной странице блок описания о чем сайт, который задается в настройках темы.
Можно ли дополнительно к плагину прописать какой-то код или что-то ещё, что будет анализировать какая версия сайта показывается (рус или англ) и будет выводить ВСЁ на соответствующем языке?Если да, то как это сделать?
Спасибо!
psyhelp24 вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 14.04.2015, 00:28   #2
 
Аватар для jazbass
 
Сообщений: 526
FR (активность): 21,045

Доп. информация
По умолчанию

Про штатные возможности WP не скажу (допускаю, они вовсе отсутствуют), поэтому целесообразно решить проблему двумя строчками на PHP

1) Через функцию $_SERVER['REQUEST_URI'] определить текущий URL страницы
2) В зависимости от наличия/отсутствия англоязычной составляющей (обычно это "/en/"), средствами условного оператора If выводить (echo) русскоязычный или англоязычный текст соответственно.
psyhelp24: сообщение полезно
jazbass вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 14.04.2015, 17:16   #3
 
Аватар для psyhelp24
 
Сообщений: 200
FR (активность): 10,706

Доп. информация
По умолчанию Автор темы

Цитата:
Сообщение от jazbass Посмотреть сообщение
Про штатные возможности WP не скажу (допускаю, они вовсе отсутствуют), поэтому целесообразно решить проблему двумя строчками на PHP

1) Через функцию $_SERVER['REQUEST_URI'] определить текущий URL страницы
2) В зависимости от наличия/отсутствия англоязычной составляющей (обычно это "/en/"), средствами условного оператора If выводить (echo) русскоязычный или англоязычный текст соответственно.
Штатных возможностей и нет, это факт. Я как раз хотела спросить про PHP, но пока очень далека от понимания что нужно написать.

Предполагаю, что так:
<?php
$lang = isset($_SERVER['REQUEST_URI'])? $_GET["lang"]: "ru";
echo <span class="pull-left"><?php printf( __( ' %s При использовании материалов сайта ссылка на ресурс обязательна %s , 'arcade' ), date( '2014-Y |' ), ' <a href="' . home_url() . '">' . get_bloginfo( 'name' ) .'</a>' ); ?></span>

$lang = isset($_SERVER['REQUEST_URI'])? $_GET["lang"]: "en";
echo <span class="pull-left"><?php printf( __( ' %s Use of materials of the site the link to a resource is obligatory %s , 'arcade' ), date( '2014-Y |' ), ' <a href="' . home_url() . '">' . get_bloginfo( 'name' ) .'</a>' ); ?></span>
?>

Или нет?
psyhelp24 вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 14.04.2015, 17:37   #4
 
Аватар для jazbass
 
Сообщений: 526
FR (активность): 21,045

Доп. информация
По умолчанию

@psyhelp24, не совсем.
Я предлагал определить версию языка по текущему URL'у.
А Вашей версии используется мой путь, плюс языковой перфикс $_get["lang"]

Целесообразнее использовать либо одно, либо другое.
Но не видя сайта и методы работы языкового плагина, при все своем желании, готовый код написать не смогу.
jazbass вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 15.04.2015, 15:51   #5
 
Аватар для jazbass
 
Сообщений: 526
FR (активность): 21,045

Доп. информация
По умолчанию

@psyhelp24, с учетом тех данных, которые Вы мне сообщили в личку, можно уже более предметно разобраться в ситуации.

Я говорил о двух строчках кода, но напишу чуть больше, исключительно для наглядности применяемых алгоритмов. Если бы писал для себя, уместился бы в две.

Для начала, в самом начале страницы нужно объявить функцию:
Код:
function DetectLanguage() {  //объявляем функцию
$uri = $_SERVER['REQUEST_URI'];  /*переменной $uri присваиваем путь на сайте текущей страницы.
Что такое путь на сайте? А вот он - www.mysite.ru/вот/это/путь/на/сайте */

$path = explode("/", $uri['path']); /* Разбиваем путь на сайте на массив строчных данных. В качестве разделителя ориентируемся на слэш */
return strtolower($path[1]); /*Возвращаем значение функции равное первому элементу пути на сайте. Для избежания возможных ошибок данных, с помощью функции strtolower принудительно загоняя строчку в нижний регистр */
}
Затем в любом блоке сайта, который требует перевода (футер, кнопка, описание и т.д.) пишем проверочное условие:

Код:
if (DetectLanguage()=='en') //Проверяем, есть ли префикс английской версии сайта в URL
{
//Да, есть. Это английская версия. В этом месте выводим английский текст. Например, такой для футера
echo "Copyright (2015) by Very Famous Sitebuilder Petya";
}
else  /иначе мы на русской версии сайта
{
//Нет, префикс отсутствует. В этом месте выводим русский текст. Например, такой для футера
echo "Создано в 2015 году от Рождества Христова Знаменитым Сайтостроителем Петей";
}
Ну вот, собственно и все. Теперь не только в футере, а в любом месте кода можно запустить функцию и узнать на какой версии сайта (русской или английской) мы находимся. И в зависимости от результатов этой проверки выполнить или не выполнять какие-нить действия.
jazbass вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 15.04.2015, 22:47   #6
 
Аватар для psyhelp24
 
Сообщений: 200
FR (активность): 10,706

Доп. информация
По умолчанию Автор темы

Не получилось ((
Цитата:
Для начала, в самом начале страницы нужно объявить функцию:
пробовала этот код вставлять в файлы: Index, footer, front-page, single
В какой именно вставлять?


Цитата:
Затем в любом блоке сайта, который требует перевода (футер, кнопка, описание и т.д.) пишем проверочное условие:
Вставляю и на экране вижу весь этот код вместо результата.

Вот мне нужно в этот кусок вставить:
<footer id="footer" role="contentinfo">
<div id="footer-content" class="container">
<div class="row">
<div class="copyright col-lg-12">
<span class="pull-left"><?php printf( __( ' %s При использовании материалов сайта ссылка на ресурс обязательна | %s ' , 'arcade' ), date( '2014-Y |' ), ' <a href="' . home_url() . '">' . get_bloginfo( 'name' ) .'</a>' ); ?></span>
<span class="credit-link pull-right"><i class="fa fa-leaf"></i><?php if (is_home() || is_category() || is_archive() ){ ?> <?php } ?>

В какое именно место вставлять?
psyhelp24 вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 16.04.2015, 02:06   #7
 
Аватар для jazbass
 
Сообщений: 526
FR (активность): 21,045

Доп. информация
По умолчанию

Цитата:
Сообщение от psyhelp24 Посмотреть сообщение
В какой именно вставлять?
Вставьте в header.php
Он по идее должен одним из первых загружаться.


Цитата:
Сообщение от psyhelp24 Посмотреть сообщение
Вставляю и на экране вижу весь этот код вместо результата.
Допускаю, что вероятнее всего Вы не поставили теги открытия и закрытия сессии PHP, <?php и ?>

Цитата:
Сообщение от psyhelp24 Посмотреть сообщение
В какое именно место вставлять?
Код:
if (DetectLanguage()=='en') 
{
//В этом месте выводим английский текст. 
}
else  
{
printf( __( ' %s При использовании материалов сайта ссылка на ресурс обязательна | %s ' , 'arcade' ), date( '2014-Y |' ), ' <a href="' . home_url() . '">' . get_bloginfo( 'name' ) .'</a>' );
}
jazbass вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 16.04.2015, 22:13   #8
 
Аватар для psyhelp24
 
Сообщений: 200
FR (активность): 10,706

Доп. информация
По умолчанию Автор темы

не получается.
Попробовала функцию дополнительно прописать в файле футер.
Всё равно, возникает ощущение, что эта функция "не подхватывается".
выводится только русская часть текста, которая после "else"
psyhelp24 вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 17.04.2015, 00:05   #9
 
Аватар для jazbass
 
Сообщений: 526
FR (активность): 21,045

Доп. информация
По умолчанию

@psyhelp24, стучите в скайп, решим.

Но на самом деле, с учетом специфики Ваших задач, я бы настоятельно рекомендовал забить в поиске "php для начинающих" и потеряться для окружающих на пару недель.
psyhelp24: сообщение полезно
jazbass вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Ответ

Метки
мультиязычность

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции
Внимание!
Этой теме более 2633 дней. Вы можете оставить сообщение здесь. Но, обращаем внимание. Возможно, рациональней создать новую тему (найти свежее обсуждение)?


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мультиязычный сайт. Атрибут rel="alternate" (x-default hreflang=”x”) Alex LM Раскрутка в общих чертах 1 10.04.2013 18:01
Качественные переводы в короткие сроки! (англ-рус, рус-англ) 212th Фриланс - ищу работу 11 22.07.2012 22:47
англоязычный - мультиязычный сайт в рунете? profiletree Раскрутка в общих чертах 8 30.04.2012 08:02
Мультиязычный сайт на Друпал 7 newinseo Drupal 2 17.07.2011 22:56
Англ. сайт. ПР4, alexa 72,000 веб. и программирование sevabilder Продажа ссылок 0 24.02.2010 03:07

Текущее время: 20:39. Часовой пояс GMT +3.