Мультиязычность

Аватар пользователя rinat_s rinat_s 8 апреля 2010 в 13:18

Установил модуль i18n. Но что мне не нравиться это то, что при переводе материала создается новый материал. Допустим, перевод для страницы node/1 появляется в ru/node/2. Как сделать так чтобы перевод страницы хранился в аналогичной странице, например длч kk/node/1 в ru/node/1?

Комментарии

Аватар пользователя glu2006 glu2006 8 апреля 2010 в 13:49

Никак, или заворачивайте весь ваш контент в функцию t(). Но это в 1000000 раз геморойней.

Аватар пользователя Alangasar Alangasar 8 апреля 2010 в 14:36

Как вариант добавить cck поле для англ. версии, в node.tpl.php проверять текущий язык и выводить соответствующее поле.

Аватар пользователя rinat_s rinat_s 8 апреля 2010 в 15:25

"Alangasar" wrote:
Как вариант добавить cck поле для англ. версии, в node.tpl.php проверять текущий язык и выводить соответствующее поле.

А можете более подробней рассказать. В смысле как все это реализовать, что добавлять в код?

Аватар пользователя kuzyakiev@drupal.org kuzyakiev@drupal.org 8 апреля 2010 в 15:26

Если вам не нравиться вид ссылки, включите модуль path, поставте модуль patauto. Создайте шаблон для названий страницы, допустим её название и ссылки будут иметь вид
kk/about
ru/about
about (- для языка по умолчанию, или для языка 'en' если к нему не выставлен префикс(def) )

у каждой из нод будет параметр tnid (который будет указывать на оригинал ноды), в том числе и у оригинала, так что работать с этим будет просто

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 8 апреля 2010 в 16:02

"rinat_s" wrote:
Но что мне не нравиться это то, что при переводе материала создается новый материал.

Это всем не нравится. Заявленная мультиязычность Друпала на самом деле фейк,т.е она как-бы есть, но как-бы её нету. Улыбаемся и машем :0

Аватар пользователя glu2006 glu2006 8 апреля 2010 в 16:47

<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a> wrote:
Это всем не нравится. Заявленная мультиязычность Друпала на самом деле фейк,т.е она как-бы есть, но как-бы её нету. Улыбаемся и машем :0

А как по Вашему должна осуществляться мультиязычность?
По моему в Друпале наиболее оптимально это реализовано ведь к примеру абсолютно не всегда содержание контента на русском должно быть 100% переведено и зеркально отображено для других языков.
Вы можете предложить лучший способ реализации мультиязычности без создания еще больших нагрузок на сервер?

В Джумле насколько я помню мультиязычность была реализована компонентом fish который просто к body основного языка добавлял свое поле в которое можно было написать перевод (вариант с ССК), остальные системные переводы реализовывались в inc файлах которые в зависимости от локали подгружались в память, а не доставались запросами из БД как в Друпале.

Зато как прекрасно управлять контентом Smile хочу показываю новость для англоязычного раздела, хочу нет причем в варианте с ССК куча запросов по node_load все равно выполнится, даже если поле ССК пустое, а вот если нет ноды с языком то ничего и не произойдет, что существенно снижает нагрузку на сервер.

Эту систему тоже не дубы делали Wink

Аватар пользователя Alangasar Alangasar 8 апреля 2010 в 16:08

ну както так

<?php
if ($language->language == 'ru'){
echo 
$node->field_ru_text['0']['view'];
}
else{
echo 
$node->field_en_text['0']['view'];
}
?>

надеюсь поля создавать умеете?

Аватар пользователя fixit fixit 8 апреля 2010 в 17:28

"glu2006" wrote:
абсолютно не всегда содержание контента на русском должно быть 100% переведено и зеркально отображено для других языков

Согласен полностью. Иногда нужно показать на другом языке совсем другое содержимое, иногда полное переведенное зеркало. Гибкость решения - большой плюс