BloGGood.ru

Блог Костаневича Степана

До Нового Года осталось:

Блог на разные темы, seo-оптимизация, раскрутка сайта, создание сайта, вкусные эффекты для сайта и многое другое…

Главная » Wordpress » Мое дополнение к мультиязычному плагину qTranslate Plus

Мое дополнение к мультиязычному плагину qTranslate Plus

2015-03-20 / Вр:21:52 / просмотров: 5820

…Значит, взял я на днях заказ на трехъязычный сайт. В работе использовал плагин qTranslate Plus. Плагин отлично справился со своей задачей, не считая некоторых тонкостей. Кто пользовался плагином qTranslate Plus, тот знает, что плагин переводит статьи, категории, теги, меню при помощи дополнительных полей для языка или специальных шорткодов:

[:en]English Text [:ru]Русский текст [:uа]Український Текст 

Вот пример:

Мое дополнение к мультиязычному плагину qTranslate Plus

Но как же быть, если текст или ссылка, которые нужно перевести на разные языки, находится в самом коде в файлах «index.php», «single.php», «page.php», «header.php», «header.php», «footer.php» и т.д.  Дело в том, что данный шорткод работать не будет, текст и ссылка переводиться не будут. Но я решил эту проблему!

Поэтапно поделюсь своим опытом, может, когда-то кому-то это пригодится.
Итак, первым делом я вывел на сайте переключатель языков таким кодом:

<a href="?lang=ua">UA</a> <a href="?lang=ru">RU</a> <a href="?lang=en">EN</a>

Этот код у меня находится в файле «header.php» между тегами <body></body>.

Мое дополнение к мультиязычному плагину qTranslate Plus

Обратите внимание на слоган, который находится в шапке перед языковым переключателем: «наше життя в словах». Эти слова написаны в коде.

Мое дополнение к мультиязычному плагину qTranslate Plus

Чтобы перевод лозунга переводился, я использовал вот такой простенький php-код конструкцию if и else, а также function.
Вставил этот код в файл темы «functions.php» перед «?>»:

function bloggood()
{
$quotes['ua'] = "наше життя в словах";
$quotes['ru'] = "наша жизнь в словах";
$quotes['en'] = "our life in words";

$lang = $_GET['lang'];

if ($lang == "ru")
{
echo $quotes['ru'];
}
else
{
if ($lang == "en")
{
echo $quotes['en'];
}
else
{
echo $quotes['ua'];
}
}
}

Настройки:
Строка №1«bloggood» - это название функции. Функцию можно называть как угодно, только на латинице.
Строка №3, №4, №5 – в скобках ('......') пишется фраза на разных языках: «ua» - укр. текст, «ru» - рус. текст, «en» - англ. текст.

Теперь выведем функцию в шапке сайта. Для этого в файле «header.php» я прописал вот этот код:

<?php bloggood(); ?>

bloggood – это название функции.

Вот так выглядит у меня на странице:

Мое дополнение к мультиязычному плагину qTranslate Plus

Зеленым цветом я показал, как  выводил переключатель языков, желтым – слоган.

Еще один нюанс! Если к хвосту ссылки не добавить языковый хвостик, то ссылка всегда будет направлять на русскую статью. Сравните:

○ Стандартная ссылка

https://bloggood.ru/avtor/

○ Ссылка на украинскую версию

https://bloggood.ru/avtor/?lang=ua

○ Ссылка на английскую версию

https://bloggood.ru/avtor/?lang=en

Для этого в коде нужно прописать к ссылкам вот такой код:

<?php 
if(isset($_GET['lang'])) {$lang = $_GET['lang'];}
?>
<a href =" https://bloggood.ru/avtor/?lang=<?=$lang ?>"> <?php avtor()  ?> </a>

и в файле «functions.php» перед «?>» для перевода текста, например, «Об авторе» вставьте вот такой код:

function avtor()
{
$quotes['ua'] = "Про автора";
$quotes['ru'] = "Об авторе";
$quotes['en'] = "Author";

$lang = $_GET['lang'];

if ($lang == "ru")
{
echo $quotes['ru'];
}
else
{
if ($lang == "en")
{
echo $quotes['en'];
}
else
{
echo $quotes['ua'];
}
}
}

Мое дополнение к мультиязычному плагину qTranslate Plus

Если вы хоть немножко разбираетесь в HTML и PHP, проблем быть не должно. Все работает, можете не сомневаться :smile:. Пробуйте.

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Получай обновления блога!!! Подпишись:

Популярные статьи:

2 Ответов на комментарий - Мое дополнение к мультиязычному плагину qTranslate Plus

  1. sardana

    здравствуйте, степан!
    уже в который раз ваши записи мне помогают)
    все работает! слоган переводится=)
    но есть еще дополнительный вопрос. получается, что таким описанным вами образом, можно перевести хоть какие части, хоть на какой странице. но, как бы одну строку, один раздел, один слоган и т.д.
    а если, например, нужно чтобы переводился такой кусок?

    <h2 class="box">Naše aktivity:</h2>
    <ul class="main-menu">
                <li><a href="https://yi/hungry-for-change/">Hungry for change</a></li>
                <li><a href="https://yi/vzdelavaci-pobyty/">Vzdelavaci pobyty</a></li>
                <li><a href="https://yi/konference-a-seminar/">Konference a semináře</a></li>
                <li><a href="https://yi/mezinarodni-treninky/">Mezinárodní tréninky</a></li>
                <li><a href="https://yi/inkubator-napadu/">Inkubator nápadí</a></li>
    </ul>
    

    такой кусок целиком одной функцией нельзя прописать?
    каждую строчку надо будет делать отдельной функцией?
    извините, если задача покажется дурацкой)) но вот именно так надо)))

  2. Степан => автор блога Степан => автор блога

    Здравствуйте! Теоретически, такой кусок целиком можно прописать, а если практически, еще не пробовал!
    Только когда будете пробовать, ссылка должна быть не с двумя кавычками, а с одной. Вот пример:

    $quotes['ua'] = "<li><a href='https://yi/hungry-for-change/'>Hungry for change</a></li>
                     <li><a href='https://yi/vzdelavaci-pobyty/'>Vzdelavaci pobyty</a></li>";
    $quotes['ru'] = "<li><a href='https://yi/hungry-for-change/'>на русском</a></li>
                     <li><a href='https://yi/vzdelavaci-pobyty/'>на русском</a></li>";
    

Добавить комментарий

;-) :| :x :twisted: :smokes: :smile: :shock: :sad: :rose: :roll: :razz: :pop-corne: :oops: :o :mrgreen: :lol: :idea: :grin: :gazeta: :evil: :cry: :cool: :coffe: :arrow: :???: :?: :!:

Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так: [code] ваш код [/code]

Метки: ,

Мои цели на 2018-2019:

1). Закончить тему «Bootstrap»

2). Закончить тему «Все про PHP и MySQL»

3). Создать портфолио и мини интернет-магазин шаблонов

4). Довести количество статей до 800

5). Добиться посещаемости 3000 человек/сутки

6). Увеличить число подписчиков до 250

Статистика по блогу

Количество записей на блоге: 802
Количество страниц на блоге: 20
Количество рубрик на блоге: 28
Количество меток на блоге: 72
Количество комментариев на блоге: 4573