Многоязычность ?

#
Re: Многоязычность ?
MedzhitovAs писал(а):
чем вам возможности jQuery не устроили???

Во-1х, тем что это не будет работать для non-js пользователей. (Лучик ненависти всем кто не думает о том, что сайт должен выполнять свою основную функцию даже если не удалось загрузить ни стили, ни скрипты, ни графику. Хороший сайт должен работать даже в lynx)
Во-2х, тем что это, мягко говоря, не seo-friendly. СЕОшники вас за такую реализацию закидают гнилыми помидорами, и попросят быстренько убрать лишний контент со страницы. Это пользователю он будет не виден, а поисковики проиндексируют его за милую душу, и тем самым изменят плотность ключевиков и другие метафизические сео-параметры страницы )
Заказов не беру. Консультирую редко.
#
Re: Многоязычность ?
понравится эта реализация СЕОнистам или нет - это дело иное) тем более в вопросе у человека ничего не звучало из озвученного вами... следовательно человека это не особо парит... в крайнем случае решит сам))
я всего лишь привел один из возможных вариантов решения поставленного вопроса еще на первой странице... )

при всем моем к вам уважении - кому то может такой вариант и пригодится.. .пусть не полной мультиязычности сайта, а для реализации множества иных идей )

посему даю готовый вариант..

1. гуглом находим плагин (jquery.cookie.js) и выложив его на хостинге (путь виден по ссылке) вписываем
<script type="text/javascript" src="/hostcmsfiles/jquery/jquery.cookie.js"></script>
в макет сайта (плагин весит всего 4кб)
2. тут два варианта - или вписать в шаблон скрипт, или поместив его в файл - прикрепить к макету тем же способом что и сам плагин...
привожу рабочий код:

<script language="javascript">
$(document).ready(function(){

   var cookieName = 'lang';   // даем имя кукису
   var cookieOptions = {expires: 7, path: '/'};       // задаем опции хранения...  expires: 7 обозначает срок жизни кукиса 7 дней
   var variant = '';

   $("#btn_ru").click(function () {      // обрабатываем нажатие кнопки русской версии сайта
      $(".eng").css("display","none");   // скрываем аглицкий
      $(".ru").css("display","block");   // отображаем русский
      variant = 'ru';
        $.cookie(cookieName, null, {path:'/'});
      $.cookie(cookieName, variant, cookieOptions);    //и записываем в куки новое значение
   });
   
   $("#btn_eng").click(function () {            
      $(".eng").css("display","block");         
      $(".ru").css("display","none");         
      variant = 'eng';
        $.cookie(cookieName, null, {path:'/'});
      $.cookie(cookieName, variant, cookieOptions);
   });
   
   if ( ''+$.cookie(cookieName) == 'ru') {      // смотрим какое же значение хранится у нас в кукисах, и если это RU, то показываем русский блок...
      $(".eng").css("display","none");   // скрываем аглицкий
      $(".ru").css("display","block");   // отображаем русский
        } else if ( ''+$.cookie(cookieName) == 'eng') {      // такс, в куках нет упоминаний о том что был ранее выбран русский вариант... проверяем - может английский тогда??? (показываем аглицкий если нашли)
      $(".eng").css("display","block");   // скрываем аглицкий
      $(".ru").css("display","none");      // отображаем русский
      } else {            // похоже куки у нас или не были созданы или померли от старости.. что ж, тогджа остается определить по системе - какой же язык установлен у человека..
      var langNew = (navigator.language || navigator.systemLanguage || navigator.userLanguage).substr(0, 2).toLowerCase();
      if (langNew == 'ru') {
         $(".ru").css("display","block");
         $(".eng").css("display","none");
         $cookie(cookieName, langNew, cookieOptions);
      } else {
         langNew = 'eng';
         $(".ru").css("display","none");
         $(".eng").css("display","block");
         $cookie(cookieName, langNew, cookieOptions);
      }
   }   
});
</script>

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

что же может данный скрипт?
при загрузке страница смотрит имеется ли кукис в данными о выбранном ранее языке... если находит его, то выбирает из него значение и отображает текст согласно выбранному ранее пользователем варианту... ну а ежели пользователь зашел впервые, то понятно кукисов нет... и тогда запускается определение основного языка системы и уже на основании него устанавливается язык текста...
ну и естессно выбранный последний вариант выбора языка сохраняется в кукисе и хранится там 7 дней (срок можно увеличить или уменьшить, достаточно вместо 7ки поставить нужное число дней) благодаря чему при загрузке активируется последний выбранный пользователем языковой вариант...
#
Re: Многоязычность ?
код конечно можно было б еще прилизать для красоты... но в таком виде людям несколько проще будет в нем разобраться.. по этой же причине и камменты вставил)
#
Re: Многоязычность ?
MedzhitovAs писал(а):
понравится эта реализация СЕОнистам или нет - это дело иное) тем более в вопросе у человека ничего не звучало из озвученного вами...
В нынешних реалиях, озвученное мною подразумевается по умолчанию, поэтому вслух, как правило, и не озвучивается. Хороший разработчик отличается от обычного тем, что хороший сразу понимает, что даже если это не озвучено, это все равно будет нужно.

MedzhitovAs писал(а):
следовательно человека это не особо парит...
_ПОКА_ не парит ) Потому что он обычный разработчик.
Когда он сделает сайт, и его отдадут контентщикам, и они набьют его начальным контентом, а потом сайт отдадут сеошникам, и они скажут что так не пойдет и надо все переделать, да при чем, возможно, переделка потребует еще и перенабивки контентом по другим правилам, вот тогда это его будет парить.
Однако это будет уже поздно, это будут лишние нервы и лишние деньги.

А об уважении-то никто и не спорит, при всем моем к вам также )
Я просто указываю на потенциальные проблемы в вашем решении. Если кто-то захочет им воспользоваться, он просто будет иметь их в виду.
Заказов не беру. Консультирую редко.
Авторизация