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

vice
#1 2011-11-04 16:10

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

вставил в .thaccess

################ 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:

<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:

<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

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

# 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:

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

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

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

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