Тема: Language Switcher+Gettext=мультиязычный блог

Передо мной встала задача сделать мультиязычный блог на основе WordPress 2.2. Я поставил Language Switcher WordPress Plugin, версия 1.08. Этот модуль организует уникальные ссылки типа www.домен.ru/здесь_уникальный_URL/lang/ru или www.домен.ru/здесь_уникальный_URL/lang/en, хотя обе ссылки ведут на одну и ту же страницу. (Примечание - в URL используется слово lang, это значение переменной $langSwitchPermalink. Вы можете сами менять его в файле langswitch.php, что я и сделал, т.к. первоначальное значение переменной было длинное).

1. Устанавливаем Language Switcher как обычный плагин, активируем его.

2.Заходим в администраторскую часть: НАСТРОЙКИ -> LANGUAGE SWITCHER и устанавливаем необходимые языки, а также форматы вывода времени и даты.

3. Выводим меню с доступными языками в файле sidebar.php:

<ul>
<?php if(function_exists('langswitch_list_langs')) { langswitch_list_langs(true, true); } ?>
</ul>

Рассмотрим функцию langswitch_list_langs(true, true). Первый параметр - это отображение флага в меню, второй - отображение текстового обозначения языка. Возможные значения true или false.

4. Переводим текст в записях и на страницах, а также в заголовках. Для этого текст обрамляется "тегами":

<lang_en>This is the post text in English</lang_en>
<lang_ru>Этот текст отобразится только для русской версии.</lang_ru>
<lang_all>Этот текст будет виден на всех языках.</lang_all>
И этот текст тоже будет виден на всех языках, т.к. он не обрамлен "языковыми тегами".

Внимание! Если вы переводите заголовки записей, страниц, рубрик и пр. замените в данных местах тег вида <lang_en> на [lang_en].

5. Теперь необходимо перевести текстовые элементы, встречающиеся в самом WordPress и установленных плагинах. Это слова Рубрики, Ссылки, Поиск, Архив и пр. Естественно, что на английской версии сайта они должны отображаться, как Categories, Links, Search, Archive. Это можно достаточно легко реализовать с помощью "технологии" Gettext. Всё, что я далее излагаю, я почерпнул здесь - http://php.russofile.ru/ru/authors/multilangual/php_gettext_prof/.

5.1 У меня на хостинге библиотека Gettext была уже установлена, потому ничем не могу помочь по установке.
5.2 Теперь необходимо "разметить" те места в файлах .php WordPress и установленных плагинах, в которых будет делаться лингвистическая замена. Например, вместо

<?php _e('Архив'); ?> или <h3>Новости</h3>

следует вставить

<?php echo _('Архив'); ?> или <h3><?php echo _('Новости'); ?></h3>

Прочитайте раздел GetText – взгляд изнутри на странице http://php.russofile.ru/ru/authors/multilangual/php_gettext_prof/, возможна эта информация вам поможет!

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

5.3 С помощью программы Poedit подготовьте файлы .po и .mo.
Прочитайте раздел GetText – профессиональная работа на странице http://php.russofile.ru/ru/authors/multilangual/php_gettext_prof/, возможна эта информация вам поможет!

5.4 Для удобства, создайте в корне своего приложения папку locale. Внутри этой директории необходимо создать папки для каждого из поддерживаемых языков: ru/, en/ и так далее. Внутри них необходимо создать папку LC_MESSAGES, а в эту папку, в свою очередь, необходимо поместить созданные нами .mo файлы для каждого языка (.po файлы можете поместить туда же, это не помешает). Для правильного нахождения двухбуквенного сочетания для каждого языка воспользуйтесь этой таблицей: http://www.loc.gov/standards/iso639-2/langcodes.html, или документацией по GetText.

   /locale/en/LC_MESSAGES/es.mo 
                          es.po 
           ru/LC_MESSAGES/ru.po 
                          ru.mo

5.5 Закачиваете все эти папки и "языковые" файлы на хостинг.

2

Re: Language Switcher+Gettext=мультиязычный блог

А вот такое видали?
http://www.qianqin.de/qtranslate/
Мощная вешь и полность автоматизированная.... Никаких там копаний в коде и плясок с бубном. Опробано на wordpress 2.3.3

3 (23-03-2008 13:33:47 отредактировано Coscom)

Re: Language Switcher+Gettext=мультиязычный блог

Simulacrum пишет:

А вот такое видали?
http://www.qianqin.de/qtranslate/
Мощная вешь и полность автоматизированная.... Никаких там копаний в коде и плясок с бубном. Опробано на wordpress 2.3.3

Очень полезная вещь. Настройка показалась сложной...по подробнее можно написать (с нуля, если можно).

Тема у меня без виджетов. В этом случае можно использовать?

4

Re: Language Switcher+Gettext=мультиязычный блог

Там на сайте автора всё напаисано... NO PROBLEM

http://www.qianqin.de/qtranslate/faq/

I don’t use Widgets, how can I let qTranslate generated the Language Selector/Switcher?
    Just put qtrans_generateLanguageSelectCode($type) in your Templates.
If you set $type = ‘image’, flags will be used, $type = ‘both’ will show flags and language, $type=’dropdown’ will generated a dropdown list instead, default is ‘text’.
Example:
    <?php echo qtrans_generateLanguageSelectCode('both'); ?>

Никаких сложных настроек там нет.  Всё очень наглядно... Указываешь какой у тебя язык по умолчанию, добавляешь нужные, удаляешь не нужные языки...

5

Re: Language Switcher+Gettext=мультиязычный блог

Simulacrum пишет:

Там на сайте автора всё напаисано... NO PROBLEM

http://www.qianqin.de/qtranslate/faq/

I don’t use Widgets, how can I let qTranslate generated the Language Selector/Switcher?
    Just put qtrans_generateLanguageSelectCode($type) in your Templates.
If you set $type = ‘image’, flags will be used, $type = ‘both’ will show flags and language, $type=’dropdown’ will generated a dropdown list instead, default is ‘text’.
Example:
    <?php echo qtrans_generateLanguageSelectCode('both'); ?>

Никаких сложных настроек там нет.  Всё очень наглядно... Указываешь какой у тебя язык по умолчанию, добавляешь нужные, удаляешь не нужные языки...

Я имею в виду сам переводчик. Переводится только интерфейс сайта? А соответствующий текст надо вставлять в соотв. язык ?

6

Re: Language Switcher+Gettext=мультиязычный блог

не понял, какой текст в какой язык надо вставлять?

7

Re: Language Switcher+Gettext=мультиязычный блог

Во первых, это не переводчик.
Для отображения интерфейса сайта используются файлы .mo которые кладутся в папку wp-content/languages
Язык плагинов отображатеся тоже из .mo файлов.
Текст для публикации просто вводится в редакторе, без каких либо тэгов вводимых вручную...
По ссылке, которую я дал вы увидите скиншоты, которые сами за себя говорят...

8

Re: Language Switcher+Gettext=мультиязычный блог

Simulacrum пишет:

не понял, какой текст в какой язык надо вставлять?

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

9

Re: Language Switcher+Gettext=мультиязычный блог

Simulacrum пишет:

Во первых, это не переводчик.
Для отображения интерфейса сайта используются файлы .mo которые кладутся в папку wp-content/languages
Язык плагинов отображатеся тоже из .mo файлов.
Текст для публикации просто вводится в редакторе, без каких либо тэгов вводимых вручную...
По ссылке, которую я дал вы увидите скиншоты, которые сами за себя говорят...

Понял smile.

Re: Language Switcher+Gettext=мультиязычный блог

А где взять файл .mo для англ. языка?

не люблю сбербанк

11

Re: Language Switcher+Gettext=мультиязычный блог

Вордпресс сам по себе англоязычный (сюрприз, сюрприз!). так что никаких файлов перевода нет для английского.

Едет вебмастер в поезде и слышит: <td></td> … <td></td> … <td></td>
шаблоны Темы

Re: Language Switcher+Gettext=мультиязычный блог

снимаю вопрос :-)

не люблю сбербанк

13

Re: Language Switcher+Gettext=мультиязычный блог

qtranslate не работает на этом 000webhost.com сервере, а на другом работает.
а также qtranslate не работает на локальном сервере (vertrigo и wamp).  помогите, кто может...

14

Re: Language Switcher+Gettext=мультиязычный блог

закачал и подключил LANGUAGE SWITCHER - все работает так как нужно с блогом, но с системными сообщения небольшая загвоздка

1) здесь http://php.russofile.ru/ru/authors/multilangual/php_gettext_prof/ сказано "В следующей вкладке задайте путь (пути), где находятся скрипты вашего проекта."
http://php.russofile.ru/resources/graphix/0000/ma03.png

файлы вордпресс, которые я распаковал сам, он не видит, пишет "не нахожу файлов"

поэтому вопрос, как надо правильно с ним работать, чтоб они увиделись? или это не нужно?

2) в приведенном примере нет русского в теме, а у меня он есть, и есть готовые файлы ru_Ru.po и ru_Ru.mo можно ли использовать их как основу для создания de.po и en.po?

3) "Для удобства, создайте в корне своего приложения папку locale. Внутри этой директории необходимо создать папки для каждого из поддерживаемых языков: ru/, en/ и так далее. Внутри них необходимо создать папку LC_MESSAGES, а в эту папку, в свою очередь, необходимо поместить созданные нами .mo файлы для каждого языка (.po файлы можете поместить туда же, это не помешает)."
где в корне? на хосте в папке www? и как к ним и куда прописать путь, чтоб при нажатии на флаг языка на сайте переводилось все что и должно?

*чиби зарылся в документацию по GetText понимая, что он ничего не понимает*

15

Re: Language Switcher+Gettext=мультиязычный блог

кто может ставил даный плагин, подскажите: вот к примеру для самих постов - перевод
<lang_en>This is the post text in English</lang_en>
<lang_ru>Этот текст отобразится только для русской версии.</lang_ru>
<lang_all>Этот текст будет виден на всех языках.</lang_all>
И этот текст тоже будет виден на всех языках, т.к. он не обрамлен "языковыми тегами".

а как сделать чтобы переводило (точнее менялся скин) в самой уже теме, к примеру в index.php нужно менять 'Style'?

    <div class="post-date"><?php the_time('M') ?><span class="post-title-info">
                                                       
                                  <?php echo _('Style'); ?>
                   
                    : <?php the_category(', ') ?>  &nbsp;|&nbsp;autor: <?php the_author_link(); ?>  </span> </div>
       
           
в тегах никаких не получается, пробовал черех gettext - добавил 3 строчки

#: C:\TEMP\wordpress\main\project-wp27rus\wordpress/wp-content/themes/dark_planet_theme/index.php:15
msgid "Style"
msgstr "Стиль"


в файле ru_RU.po    и программой proedit - сгенерировал новый ru_RU.mo,  а так как это через плагин LANGSWITCH то и переименовал в ru.mo
если бы не видело ядро перевода - то файл был бы не верный, но админку и все переводит, а Style не переводит. ПОдстажите пожалуйста, уже 3 сутки сижу, не получается

16

Re: Language Switcher+Gettext=мультиязычный блог

И тишина, Плагин 3х язычны и правда классный.
Поставлю попробую на самый последний вордпресс, по настроению отпишусь.

17

Re: Language Switcher+Gettext=мультиязычный блог

В WordPress работает Language Switcher WordPress Plugin.
Подскажите, пожалуйста, как сделать, чтобы в карте сайта в ссылках не было символов [].