Forums / National / Russian / Тех. поддержка / Сайт с i18n

vice
#1 2011-11-04 16:10

Поставил Сиену 0.9.4. Нужно мне сделать сайт с тремя языками (анг, рус, нем).

вставил в .thaccess

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
################ Cotonti Handy URLs for Apache #######################
 
# Below are the rules to be included in your main .htaccess file or httpd.conf
 
# Rewrite engine options
Options FollowSymLinks -Indexes
RewriteEngine On
 
# Server-relative path to Cotonti. Replace it with your path if you run Cotonti
# in a subfolder
RewriteBase "/"
 
# Default path and static files protection
RewriteRule ^(datas|images|js)/(.*)$ $1/$2 [QSA,NC,NE,L]
RewriteRule ^(.*)\.(css|js|gif|jpg|png|ico)$ $1.$2 [QSA,NC,NE,L]
 
# Language selector
RewriteRule ^(en|ru|de|nl)/(.*) index.php?rwr=$2&l=$1 [QSA,NC,NE]
 
# Protect standard .php URLs
RewriteRule ^([a-z]+)\.php(.*)$ $1.php$2 [QSA,NC,NE,L]
 
# Admin area and message are special scripts
RewriteRule ^admin/([a-z0-9]+) admin.php?m=$1 [QSA,NC,NE,L]
RewriteRule ^(admin|login|message)(/|\?|$) $1.php [QSA,NC,NE,L]
 
# All the rest goes through standard rewrite gateway
RewriteRule ^([^?]+) index.php?rwr=$1 [QSA,NC,NE,L]
Далее создал структуру типа
 
 
1 en (English)
1.1 en-articles (Articles)
1.1.1 en-articles-tech (Technical)
1.1.2 en-articles-fiction (Fiction)
1.1.3 en-articles-economy (Economy)
1.2 en-news (News)
1.3 en-goods (Goods)
1.3.1 en-goods-food (Food)
1.3.1.1 en-goods-food-fruits (Fruits)
1.3.1.2 en-goods-food-fast (Fast Food)
1.3.1.3 en-goods-food-cakes (Cakes)
1.3.2 en-goods-computers (Computers)
2 ru (Русский)
2.1 ru-articles (Статьи)
2.1.1 ru-articles-tech (Технические)
2.1.2 ru-articles-fiction (Художественные)
2.1.3 ru-articles-economy (Экономика)
2.2 ru-news (Новости)
2.3 ru-goods (Товары)
2.3.1 ru-goods-food (Еда)
2.3.1.1 ru-goods-food-fruits (Фрукты)
2.3.1.2 ru-goods-food-fast (Фаст-фуд)
2.3.1.3 ru-goods-food-cakes (Пирожные)
2.3.2 ru-goods-computers (Компьютеры)
 
Дальше в конфигурации добавил папки и локали
 
en|English
ru|Русский
de|German
 
Подскажите код селектора для добавления в header для переключения языков.
 
Trustmaster
#2 2011-11-04 17:07

В Сиене интернационализация работает по-другому, там не надо создавать альтернативные деревья категорий. Достаточно выбрать в конфигурации корневую категорию и перевести названия и описания категорий  в admin.php?m=structure&n=page по ссылке {ADMIN_STRUCTURE_I18N_LINK} (которую надо добавить в admin.structure.tpl).

Пример селектора в header.tpl:

XML/XHTML
1
2
3
4
5
6
7
8
9
<ul>         
    <!-- BEGIN: I18N_LANG -->
        <!-- BEGIN: I18N_LANG_ROW -->
        <li>
            <a href="{I18N_LANG_ROW_URL}" title="{I18N_LANG_ROW_TITLE}"><img src="images/flags/{I18N_LANG_ROW_FLAG}.png" alt="{I18N_LANG_ROW_CODE}" /></a>
        </li>
        <!-- END: I18N_LANG_ROW -->
    <!-- END: I18N_LANG -->
</ul>

Теги, которые добавляются в page.tpl:

XML/XHTML
1
2
3
4
5
6
7
8
9
10
<p> <!-- BEGIN: I18N_LANG -->
    {PHP.L.Language}:
    <ul>
        <!-- BEGIN: I18N_LANG_ROW -->
        <li><a href="{I18N_LANG_ROW_URL}">{I18N_LANG_ROW_TITLE}</a></li>
        <!-- END: I18N_LANG_ROW -->
    </ul>
    <!-- END: I18N_LANG -->
    {PAGE_I18N_TRANSLATE} {PAGE_I18N_DELETE}
</p>

Added 1 minute later:

P.S.: лучше обновиться до 0.9.5, в ней исправлены некоторые ошибки интернационализации.

May the Source be with you!
vice
#3 2011-11-07 15:22

А как же происходит пометка для разделения языков, к примеру новостей на русские или английские? Когда был нажет селектор языков. Как разделить новости на  английские и русские?

Eugene
#4 2012-02-08 19:29

В связи со значительными улучшениями URL-editor - ВОПРОС:

Нужны ли специальные строки в .htaccess для поддержки i18n ?

(было бы здорово создать руководство по i18n Siena - готов потом помочь с переводом с рус-англ и англ-рус)

Trustmaster
#5 2012-02-09 13:20

Вот такая строчка

1
2
# Language selector
RewriteRule ^(en|ru|de|nl)/(.*) $2?l=$1 [QSA,NC,NE]

нужна, если включена соответствующая опция в плагине i18n и ссылки должны быть вида /en/some/path, /ru/some/path

May the Source be with you!
esclkm
#6 2012-02-09 20:01

не понимаю как сайт работает с i18n... нужна помощь

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Moool13
#7 2012-02-09 20:37
#33094 esclkm:

не понимаю как сайт работает с i18n... нужна помощь

Сарказм?

esclkm
#8 2012-02-09 21:08

нет. непонимае... есть сайт где он пашет крайне через своеобразно... и как поправить не знаю

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Moool13
#9 2012-02-10 00:28

А что именно?

Eugene
#10 2012-02-10 07:39
#33090 Trustmaster:

Вот такая строчка

1
2
# Language selector
RewriteRule ^(en|ru|de|nl)/(.*) $2?l=$1 [QSA,NC,NE]

нужна, если включена соответствующая опция в плагине i18n и ссылки должны быть вида /en/some/path, /ru/some/path

но ведь эта строка уже есть в последней версии Siena (даже раньше появилась...). Получается, что комментарий/помощь в конфиге i18n (строка "Требует ручного обновления .htaccess") реально вводит в заблуждение. Зря потратил время, думая, что не всё донастроил... Может заменить эту строку на строку "Проверьте есть ли в вашем .htaccess правило ....... " ?