Metalmedved.com теперь и на английском

Мой сайт теперь имеет интерфейс и на английском. Несколько слов о том, как я это сделал.

UK

После того, как я решил добавить в свой блог поддержку нескольких языков, первое что надо было сделать – выбрать плагин. На сегодняшний день наиболее предпочтительными являются два решения: qTranslate и WPML Multilingual CMS. Остальные плагины вроде WP Multilingual, mLanguage или xLanguage либо не имеют должной степени интеграции, либо вовсе некорректно работают в новых версиях wordpress.

Безусловно, WPML Multilingual CMS предоставляет гораздо больше возможностей для локализации, однако он перешел на коммерческую основу. Поэтому очевидным выбором стал qTranslate.

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


[:en] или <!--:en--><!--:-->

Так же плагин обладает неплохими интеграционными свойствами: совместно с ним работают специльная версия плагина Google XML Sitemaps, а так же плагин qTranslate META, для локализации meta-тегов.

Несколько моментов по локализации интерфейса блога:

  • Прежде всего на странице параметров плагина необходимо добавить русский язык, установить его для блога по умолчанию и удалить неиспользованные вами языки. Хотя русского интерфейса в плагине нет, даже минимальных знаний в английском достаточно, чтобы во всем разобраться.
  • Для локализаций названий виджетов подошли теги вида [:en]. Например, в заголовке виджета поиск у меня написано:

    [:ru]Поиск [:en]Search
  • Вставка меню выбора языков в произвольное место кода:

    <?php echo qtrans_generateLanguageSelectCode('image'); ?>
  • Выбор языка в коде страницы осуществляется двумя способами:
    либо использовать функцию _e. Например:


    <?php _e('[:ru]Отправить! [:en]Send!'); ?>

    либо использовать определение локали вручную. Например:


    <?php if(get_locale() == 'ru_RU') { ?>
    Отправить!
    <?php } else { ?>
    Send!
    <?php } ?>
  • Корректировка неправильного отображения даты и времени. Если вместо при включении плагина вместо даты начинает отображаться время или наоборот, то необходимо в шаблоне темы заменить вызов функции the_time() на the_date() или наоборот соответственно. Важно так же использовать необходимые параметры при вызове, например:

    Опубликовано <?php the_date('d M Y') ?> в <?php the_time('G:i'); ?>
  • Исправление неправильных навигационных ссылок по страницам блога осуществляется следующим образом. Определяем локаль вручную как написано выше и вместо

    <?php next_posts_link('« Previous') ?>
    <?php previous_posts_link('Next »') ?>

    пишем


    <?php echo(str_replace ('.com', '.com/en', strval(get_next_posts_link('« Previous')))) ?>
    <?php echo(str_replace ('.com', '.com/en', strval(get_previous_posts_link('Next »')))) ?>

И немного о недостатках. Главным из которых, конечно же является несовместимость с популярными SEO плагинами (AIOSEO, PSEO). Частично проблема решается использованием плагина qTranslate META, однако в этом случае от SEO плагинов придется вовсе отказаться. Лично я пока не использую qTranslate META в пользу SEO оптимизации. Так же существует проблема с локализацией поиска по блогу. При переходе на страницу результатов поиска сбрасывается выбранный язык. Хотя все эти проблемы обсуждаются на форуме поддержки плагина qTranslate, решений пока найти не удалось.

Без сомнения, на сегодняшний день qTranslate – наиболее эффективное бесплатное решение для локализации блога на wordpress. Пока я сделал локализацию лишь интерфейса темы, однако в ближайшем будущем я переведу статьи, посвященные конвертации 3D моделей.

Поделиться:

  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • В закладки Google
  • Блог Я.ру
  • Мой Мир
  • Print

Метки: , , ,

 
 
 

6 комментариев на «Metalmedved.com теперь и на английском»

  1. denis
    10 сен 2011 в 18:33

    Для локализаций названий виджетов подошли теги вида [:en]. Например, в заголовке виджета поиск у меня написано:     Где именно нужно прописывать [:en]  в каком конкретно файле или в редакторе админ панели что именно ?
     

  2. MetalMedved
    10 сен 2011 в 20:48

    консоль/виджеты в sidebar справа выбираешь нужный виджет и пишешь в заголовок «[:en]Search [:ru]Поиск»

  3. Юлия
    05 дек 2011 в 1:16

    Т.е. этот плагин несовместим с плагином All in One Seo Pack?
    А как тогда зарабатывать на блоге с таким плагином без SEO?

    Я планировала установить этот плагин для 2-язычного блога: на русском и английском. 2 цели – контекстная реклама и привлечение целевых посетителей.  

  4. MetalMedved
    05 дек 2011 в 2:55

    В принципе AIO SEO c qTranslate работать будут, но именно SEO свойства написать на двух языках с помощью вышеописанных средств мне не удалось . Есть вот такая версия AIO SEO, в которой обещают поддержку qTranslate, но я не не пробовал

  5. Юлия
    07 дек 2011 в 18:29

    А что не получилось с плагином All in One Seo Pack – прописать Title, Description, Keywords на двух языках для статей и для главной страницы? Или что-то другое?

  6. MetalMedved
    07 дек 2011 в 18:54

    Кроме Title, Description и Keywords для записей и страниц проблем не было.

Ваш отзыв