…Значит, взял я на днях заказ на трехъязычный сайт. В работе использовал плагин qTranslate Plus. Плагин отлично справился со своей задачей, не считая некоторых тонкостей. Кто пользовался плагином qTranslate Plus, тот знает, что плагин переводит статьи, категории, теги, меню при помощи дополнительных полей для языка или специальных шорткодов:
[:en]English Text [:ru]Русский текст [:uа]Український Текст
Вот пример:
Но как же быть, если текст или ссылка, которые нужно перевести на разные языки, находится в самом коде в файлах «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>.
Обратите внимание на слоган, который находится в шапке перед языковым переключателем: «наше життя в словах». Эти слова написаны в коде.
Чтобы перевод лозунга переводился, я использовал вот такой простенький 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 – это название функции.
Вот так выглядит у меня на странице:
Зеленым цветом я показал, как выводил переключатель языков, желтым – слоган.
Еще один нюанс! Если к хвосту ссылки не добавить языковый хвостик, то ссылка всегда будет направлять на русскую статью. Сравните:
○ Стандартная ссылка
/avtor/
○ Ссылка на украинскую версию
/avtor/?lang=ua
○ Ссылка на английскую версию
/avtor/?lang=en
Для этого в коде нужно прописать к ссылкам вот такой код:
<?php if(isset($_GET['lang'])) {$lang = $_GET['lang'];} ?> <a href =" /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']; } } }
Если вы хоть немножко разбираетесь в HTML и PHP, проблем быть не должно. Все работает, можете не сомневаться . Пробуйте.
Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓
Последние новости категории:
Похожие статьи
Популярные статьи:
-
Как узнать id компьютера
Дата: 29 марта 2013
Прокомментировано:90
просмотров: 330379 -
Размеры форматов листов А0 – А7
Дата: 23 января 2013
Прокомментировано:3
просмотров: 274711 -
Смешные логические загадки с подвохом, отгадки прилагаются
Дата: 12 ноября 2014
Прокомментировано:5
просмотров: 222615 -
Готовые макеты блоков для веб-страниц на HTML и CSS
Дата: 25 июня 2014
Прокомментировано:23
просмотров: 187976 -
Установка windows 7 на ноутбук
Дата: 18 декабря 2012
Прокомментировано:169
просмотров: 186569
2 Ответов на комментарий - Мое дополнение к мультиязычному плагину qTranslate Plus
Добавить комментарий
Метки: wordpress, без плагинов
здравствуйте, степан!
уже в который раз ваши записи мне помогают)
все работает! слоган переводится=)
но есть еще дополнительный вопрос. получается, что таким описанным вами образом, можно перевести хоть какие части, хоть на какой странице. но, как бы одну строку, один раздел, один слоган и т.д.
а если, например, нужно чтобы переводился такой кусок?
такой кусок целиком одной функцией нельзя прописать?
каждую строчку надо будет делать отдельной функцией?
извините, если задача покажется дурацкой)) но вот именно так надо)))
Здравствуйте! Теоретически, такой кусок целиком можно прописать, а если практически, еще не пробовал!
Только когда будете пробовать, ссылка должна быть не с двумя кавычками, а с одной. Вот пример: