Еще раз о многоязычном сайте на Blogger

<<

Ivan

Сообщение 06 май 2013, 10:29

Знаю, что Blogger не поддерживает многоязычную структуру блогов, но по причине большой необходимости, у меня есть полная англоязычная версия сайта. По сути, это отдельный сайт, который взаимосвязан с русским через кнопку переводчика в гаджете.
http://www.ivankrutoyarov.com/
Смирился с, не совсем удачными адресами, но не дает покоя переадресовка. Из-за того, что URL переадресации не определяется динамически, я не могу с русской страницы сообщения перейти на английский аналог сообщения, только на главную (она прописана по умолчанию).
Хотелось бы где-то хранить массив из двух колонок(для двух языков) вида

URL русский ---------------->> URL английский
1. URL 1 rus -------------------->> URL 1 en
............... -------------------->> ..........
n. URL n rus -------------------->> URL n en

в котором можно прописать адреса страниц русского сайта и адреса английских аналогов. Зная URL страницы, на которой находится пользователь, в массиве ищется этот URL и по его позиции в массиве выбирается URL аналога на другом языке.

Можно ли в Blogger организовать подобную структуру? Где можно посмотреть информацию?
<<

antoshabrain

Сообщение 06 май 2013, 11:24

В настройках сообщения, можно ставить свой url и потом просто копировать url одного из языков в тему другого. Либо, в теории, найти какую нибудь js библиотеку, которая каким то образом при определенном действии меняет боди на iframe с другого блога. Либо сразу на одном блоге писать на нескольких языках, тоже с помощью какой нибудь библиотеки подгружать нужную версию текста пользователю. Конечно, при таком варианте сложно говорить о рекламе для буржуев, хотя если она в боди и это эдсенс или что то подобное то возможны варианты.
<<

Ivan

Сообщение 06 май 2013, 11:42

Немного не понял, но пока ждал ответа, пришла в голову такая мысль:
Не нужно никакого массива. В коде самого сообщения (или страницы) прописать сразу переменную, которая бы содержала URL аналога сообщения (страницы) на другом языке. Вы это имели в виду?
Как потом вытащить этот URL для гаджета, чтобы на него переадресовать переводчик?
<<

Ivan

Сообщение 06 май 2013, 15:10

Как нужно описать в коде каждого сообщения переменную для присвоения URL страницы на другом языке?
Какой вид в гаджете должна иметь конструкция
<a href="URL ПЕРЕМЕННАЯ'><img.../></a>,
чтобы работала ссылка?
<<

aldous

Сообщение 06 май 2013, 19:10

Сейчас Blogger и Яндекс поддерживаю мультиязычную разметку постов.
http://googlerussiablog.blogspot.ru/201 ... pdate.html
http://webmaster.ya.ru/replies.xml?item_no=15326
<<

Ivan

Сообщение 07 май 2013, 15:24

К сожалению, я понимаю, что мне этим уже не воспользоваться. Сайт работает давно и имеет ли смысл его переделывать (точнее даже не один)?
Если идти старым путем, озвучу еще раз чисто технические вопросы к знатокам кода:
Как нужно описать в коде каждого сообщения "ПЕРЕМЕННУЮ URL" этого сообщения на другом языке?
Какой вид в гаджете должна иметь конструкция
<a href="ПЕРЕМЕННАЯ URL"><img.../></a>,
чтобы работала ссылка?
<<

antoshabrain

Сообщение 07 май 2013, 15:47

Ivan писал(а):К сожалению, я понимаю, что мне этим уже не воспользоваться. Сайт работает давно и имеет ли смысл его переделывать (точнее даже не один)?
Если идти старым путем, озвучу еще раз чисто технические вопросы к знатокам кода:
Как нужно описать в коде каждого сообщения "ПЕРЕМЕННУЮ URL" этого сообщения на другом языке?
Какой вид в гаджете должна иметь конструкция
<a href="ПЕРЕМЕННАЯ URL"><img.../></a>,
чтобы работала ссылка?


Я далеко не прогер, знаю только базово, но php не поддерживается блоггером, если только, конечно, не пихнуть его через iframe. Если видите потенциал сайта и есть время, то обязательно переделывайте, заодно много недочетов найдете в процессе работы над старыми постами. Есть сумбурная догадка, что это можно сделать спомощью парсера spyder на питоне, но я от этого далек. Гугл дает возможность бесплатно разместить приложение на питоне, щяс правда ссылку не найду, вкладок over 9000 и все тормозит ужасно.
<<

Ivan

Сообщение 08 май 2013, 16:31

Аntoshabrain, спасибо за совет.
Сайт на английском нужен обязательно. У меня бывают выставки за границей, общаюсь со многими людьми. Не знаю, стоит ли вообще переживать о переделках (рейтинги и прочее). Тематика у меня узкая, сейчас больше 100 человек в день не бывает. Знать бы, что это пойдет на пользу...
Я не понял из этих ссылок, как все-таки организована навигация страниц с языка на язык. С адресами все красиво - это ясно. Гугл будет переключать автоматически на нужную версию, в зависимости от определения местоположения? А если русский человек в Штатах захочет почитать русскую версию? Как переключаться, тем более именно на нужном сообщении (чего я и добиваюсь)? Пока не понял, как будут поисковики делать выдачу.
Вообщем, пока вопросы. Наверное нужно делать тестовый блог.
Кстати, в PHP еще до публикации этой рубрики нашел что-то, на мой взгляд, похожее на мою задачу, попробовал - не работало.
Жду мнений по этому вопросу. Буду благодарен, если кто-то поделится умными мыслями.
<<

aldous

Сообщение 08 май 2013, 20:07

но php не поддерживается блоггером

Спецы из IBM считают по-другому. Есть подложка для Blogger и PHP, только нам это не нужно.
<<

terkin88

Сообщение 31 июл 2015, 22:04

Тоже интересовался этим вопросом. В русскоязычном сегменте мало чего нашлось. Но в англоязычной блогосфере откопал довольно интересную и работающую инструкцию.

Взято с англоязычного блога /go.php?http://polytimenerd.blogspot.com/2012/06/multilanguage-posts-in-your-blog.html за авторством Alessandro Pellegrini. Сообщение аж 2012 года. Здесь нужно работать с кодом каждого сообщения. Тогда при переключении кнопок (об этом позже), будет отображаться тот или иной вариант текста. На заголовки статей , страниц, ярлыков и виджетов это не действует.

Описываю по порядку, как и в данном посте.

Например, я хочу, чтобы блог был на английском и русском языках.

1 Создаем новый пост, и выбираю кнопку HTML (которая в левом верхнем углу рядом с кнопкой создать), чтобы в редакторе сообщения отражалась его кодировка.


2 Вставляем в сообщение следующий код :

  Код:
<div class="lang:russian">
Это русский текст
</div>
<div class="lang:english">
This is English content
</div>


Где "Это русский текст" - русский текст, а "This is English content" - английский текст (К.О)

3 Снова переключаем редактор нашего поста из режима HTML в визуальный режим (нажимаем кнопу создать в левом углу над полем редактора). Мы видим два предложения: "Это русский текст" и "This is English content". Выделяем эти предложения по очереди и вместо них вставляем заранее написанные и разбитые на абзацы тексты (оригинал и перевод). Клавишей Enter работать не нужно - английская версия будет стоять впритык к последнему абзацу русского текста - это нормально.

4 Сохраняем сообщение. Переходим в раздел Дизайн и добавляем гаджет HTML/JavaScript (лучше в самом видном месте - это будут наши кнопки для переключения между языками). Например, назовет этот гаджет Языки/ Languages . Вставляем в содержание следующий код:

  Код:
<script language="Javascript">
function getElementsByClass(searchClass,node,tag) {
        var classElements = new Array();
        if ( node == null )
                node = document;
        if ( tag == null )
                tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;
        var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
        for (i = 0, j = 0; i < elsLen; i++) {
                if ( pattern.test(els[i].className) ) {
                        classElements[j] = els[i];
                        j++;
                }
        }
        return classElements;
}

function show_en() {
        var ru = getElementsByClass('lang:russian', null, null);
        var en = getElementsByClass('lang:english', null, null);

        for(i = 0; i < ru.length; i++) {
                ru[i].style.display = 'none';
        }

        for(i = 0; i < en.length; i++) {
               en[i].style.display = 'block';
        }
}

function show_ru() {
        var ru = getElementsByClass('lang:russian', null, null);
        var en = getElementsByClass('lang:english', null, null);

        for(i = 0; i < ru.length; i++) {
                ru[i].style.display = 'block';
        }

        for(i = 0; i < en.length; i++) {
               en[i].style.display = 'none';
        }
}

</script>


<a href="#" onclick="show_en();"><img src="[b]ссылка на иконку английского флага[/b]" /></a>
<a href="#" onclick="show_ru();"><img src="[b]ссылка на иконку российского флага[/b]" /></a>


В качестве картинок российского и английского флага заранее готовим иконки, заливаем их куда-нибудь в блог или на другой хостинг, и указываем соответствующие ссылки. Здесь все понятно.

5 Сохраняем . В блоге появляется новый виджет "язык / language" - 2 кнопки с изображением флагов. В сообщении мы по прежнему видим два текста на русском и английском языках. При переключении кнопок отображается только одна версия. Чтобы исправить это, переходим в редактор шаблона. " Шаблон - Изменить HTML"

6 Через комбинацию клавиш ctr + F в коде шаблона находим тег <body ( На всякий случай рекомендуется сохранить резервную копию шаблона на компьютер)

7 Вставляем в тег (отсутпив пробел от слова body) одну из следующих записей:

onload='show_ru();' - если мы хотим, чтобы по умолчанию в постах блога отображался русский текст


onload='show_en();' -если мы хотим, чтобы по умолчанию в постах блога отображался английский текст

8 Сохраняем шаблон

9 Проверяем. На страницах видим лишь одну версию текста. При переключении языка получаем его переведенный вариант.

Спасибо автору Alessandro Pellegrini.

PS Как было сказано, мультиязычными можно сделать только сообщения (и может быть страницы). Но различные заголовки, названия гаджетов и страниц, название блога изменяться не будут.
Последний раз редактировалось Admin 06 авг 2015, 06:53, всего редактировалось 1 раз.
Причина: ВВкод

Вернуться в Вопросы от новичков

Работает на phpBB © 2000, 2002, 2005, 2007 phpBB Group. Дизайн ST Software и Blogger Форум. Русская поддержка phpBB
ЧПУ ссылки от phpbb seo