Перевод виджета рейтингов graddit на любой язык

2012-06-24
Виджет рейтингов graddit поддерживает два языка: русский и английский. Это определяется параметром rus или eng при вызове виджета (подробнее здесь). Разумеется, это не совсем удобно, если ваши страницы написаны на другом языке, получается языковая каша, которая выглядит не очень красиво. Рассмотрим на примере самого популярного кода виджета (жёлтые звёзды) как можно решить проблему перевода. Код выглядит так:

<b:if cond='data:blog.pageType != &quot;static_page&quot;'>
  <div expr:id='"labels_" + data:post.id' style='display: none; visibility: hidden;'>
    <b:if cond='data:post.labels'>
      <b:loop values='data:post.labels' var='label'><data:label.name/>,</b:loop>
    </b:if>
  </div> Нравится пост? 
  <div expr:id='data:post.id' style='padding-left: 3px; padding-right: 3px; display: inline; visibility: hidden;'>{[[&#39;&lt;img src=&quot;http://img.graddit.com/img/star.png&quot;/&gt;&#39;]]}</div>
  <script expr:src='&quot;http://graddit.com/rate/rus/5/&quot; + data:post.id + &quot;?stats=&quot; + data:post.id + &quot;&amp;info=info-&quot; + data:post.id + &quot;&amp;info_delay=2&amp;class_star=ffbs_star_img&amp;class_star_set=ffbs_star_img_set&amp;class_star_vote=ffbs_star_img_vote&amp;views=yes&amp;id=&quot; + data:post.id + &quot;&amp;url=&quot; + data:post.url + &quot;&amp;labels=labels_&quot; + data:post.id + &quot;&quot;' type='text/javascript'/>
</b:if>

Жирным выделен интересующий нас элемент div. Помимо указанного выше он может содержать следующие значение в data-атрибутах:
  • data-label-votes - текст для "голосов";
  • data-label-views - текст для "просмотров";
  • data-label-rating - текст для "рейтинга"'
  • data-label-info-rating - текст для рейтингов во всплывающем окне с расшифровкой голосов.
Проще понять на примере. Такой код (с добавленным параметром average=yes для отображения значения рейтинга):

<b:if cond='data:blog.pageType != &quot;static_page&quot;'>
  <div expr:id='"labels_" + data:post.id' style='display: none; visibility: hidden;'>
    <b:if cond='data:post.labels'>
      <b:loop values='data:post.labels' var='label'><data:label.name/>,</b:loop>
    </b:if>
  </div> Нравится пост? 
  <div data-label-votes='проголосовало: ' data-label-views='посмотрели: ' data-label-rating='оценили на: ' data-label-info-rating='Подробно' expr:id='data:post.id' style='padding-left: 3px; padding-right: 3px; display: inline; visibility: hidden;'>{[[&#39;&lt;img src=&quot;http://img.graddit.com/img/star.png&quot;/&gt;&#39;]]}</div>
  <script expr:src='&quot;http://graddit.com/rate/rus/5/&quot; + data:post.id + &quot;?stats=&quot; + data:post.id + &quot;&amp;info=info-&quot; + data:post.id + &quot;&amp;info_delay=2&amp;class_star=ffbs_star_img&amp;class_star_set=ffbs_star_img_set&amp;class_star_vote=ffbs_star_img_vote&amp;views=yes&amp;average=yes&amp;id=&quot; + data:post.id + &quot;&amp;url=&quot; + data:post.url + &quot;&amp;labels=labels_&quot; + data:post.id + &quot;&quot;' type='text/javascript'/>
</b:if>

Даст вот такой рейтинг:

{[['']]}


В отличие от стандартного, который вы видите ниже.

Оцени и поделись
{[['']]}


Ещё больше полезного:

Комментариев нет:

Отправка комментария