|
|
[ Вопрос ] Как весь мультиязычный сайт перевести на англ.язык? |
|
Программирование - PHP, MySQL, JavaScript, CSS, HTML верстка и т.д. |
![]() |
|
Опции темы | Оценить тему | Опции просмотра |
![]() |
#1 |
|
![]() ![]() День добрый!
Есть сайт на WordPress. Стоит задача сделать из него мультиязычный сайт (русс+англ. версии). Установила плагин Polylang Всё великолепно перевелось и работает, кроме 3 мест на сайте: 1) футер 2) на главной странице кнопка "читать далее" 3) на главной странице блок описания о чем сайт, который задается в настройках темы. Можно ли дополнительно к плагину прописать какой-то код или что-то ещё, что будет анализировать какая версия сайта показывается (рус или англ) и будет выводить ВСЁ на соответствующем языке?Если да, то как это сделать? Спасибо! |
![]() |
![]() ![]() ![]() |
![]() |
#2 |
|
![]() Про штатные возможности WP не скажу (допускаю, они вовсе отсутствуют), поэтому целесообразно решить проблему двумя строчками на PHP
1) Через функцию $_SERVER['REQUEST_URI'] определить текущий URL страницы 2) В зависимости от наличия/отсутствия англоязычной составляющей (обычно это "/en/"), средствами условного оператора If выводить (echo) русскоязычный или англоязычный текст соответственно. |
![]() |
![]() ![]() ![]() |
![]() |
#3 | |
|
![]() ![]() Цитата:
Предполагаю, что так: <?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> ?> Или нет? |
|
![]() |
![]() ![]() ![]() |
![]() |
#4 |
|
![]() @psyhelp24, не совсем.
Я предлагал определить версию языка по текущему URL'у. А Вашей версии используется мой путь, плюс языковой перфикс $_get["lang"] Целесообразнее использовать либо одно, либо другое. Но не видя сайта и методы работы языкового плагина, при все своем желании, готовый код написать не смогу. |
![]() |
![]() ![]() ![]() |
![]() |
#5 |
|
![]() @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 году от Рождества Христова Знаменитым Сайтостроителем Петей"; } |
![]() |
![]() ![]() ![]() |
![]() |
#6 | ||
|
![]() ![]() Не получилось ((
Цитата:
В какой именно вставлять? Цитата:
Вот мне нужно в этот кусок вставить: <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 } ?> В какое именно место вставлять? |
||
![]() |
![]() ![]() ![]() |
![]() |
#7 |
|
![]() Вставьте в header.php
Он по идее должен одним из первых загружаться. Допускаю, что вероятнее всего Вы не поставили теги открытия и закрытия сессии PHP, <?php и ?> Код:
if (DetectLanguage()=='en') { //В этом месте выводим английский текст. } else { printf( __( ' %s При использовании материалов сайта ссылка на ресурс обязательна | %s ' , 'arcade' ), date( '2014-Y |' ), ' <a href="' . home_url() . '">' . get_bloginfo( 'name' ) .'</a>' ); } |
![]() |
![]() ![]() ![]() |
![]() |
#8 |
|
![]() ![]() не получается.
Попробовала функцию дополнительно прописать в файле футер. Всё равно, возникает ощущение, что эта функция "не подхватывается". выводится только русская часть текста, которая после "else" |
![]() |
![]() ![]() ![]() |
![]() |
#9 |
|
![]() @psyhelp24, стучите в скайп, решим.
Но на самом деле, с учетом специфики Ваших задач, я бы настоятельно рекомендовал забить в поиске "php для начинающих" и потеряться для окружающих на пару недель. ![]() |
![]() |
![]() ![]() ![]() |
![]() |
Метки |
мультиязычность |
|
Опции темы | |
Опции просмотра | Оценка этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мультиязычный сайт. Атрибут 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.
|