Ну тут я даже не знаю с чего начать. Кто сталкивался - тот наверное знает что это такое и что эта болезнь не лечится... Опишем симптомы.
Интернациона... тьфу, не выговоришь даже. Короче, перевод контента. Болезнь заключается собственно в том, что вы просто плодите свои ноды и плодов этих ровно столько, сколько языков в вашей системе. Допустим у меня 8 языков, соответственно, для перевода одной ноды мне надо сделать ещё 7 и связать это записью в таблице. Неудобно, но куда деваться. Ещё проблема в том, что для каждой статьи должен быть свой алиас и по одному и тому же алиасу я не могу обратиться к переводам просто меняя локаль...
Перевод таксономии. Та же ситуация. Число элементов таксономии с переводами кратно числу языков в системе. Та же болезнь с алиасами.
Блоки. А вот тут-то мы сделаем прививку. Заключается она в следующем. Все (почти все) мои блоки - это симбиоз кода и настроек. Постараюсь описать как можно проще. Вот есть блок "About this article". В друпале контент (Body) блока представляет собой вызов функции, создающей контент блока и тип ввода - php код. ПРИ чем! Вся текстовка генерируемого контента обернута в функцию t(). Т.е., например, $ouptut = t('Posted: ') . $node->created; Но что делать с заголовком блока? При создании мультиязычного блока мы напоремся на проблему "размножения", что нас не устраивает. Поэтому сделаем финт ушами. Либо в шаблоне (block.tpl.php) блока, либо в функции темы описывающей блок напишем следующее:
<?php function ваш_модуль_block($block) {
$block_title = t($block->subject);
$output = "
$output .= ($block_title) ? "\t
\n" : "";
$output .= "\t
\n";
$output .= "
\n";
return $output;
}
?>
Все волшебство скрыто в самой первой строчке, где мы передаем функции t(); не кусок текста, а переменную. Как ни странно - хак (привика) работает. И я вот не знаю: то ли я гений, то ли я чего-то не понимаю? Идеи есть?
Комментарии
function ваш_модуль_block($block)
function ваша_тема_block($block)
А в принципе, все так и работают : )
Я вот про эту <?php $block_title = t($block->subject); ?> строчку говорил
Вот если бы так легко можно было перевести термины таксономии и названия пунктов меню.
Было бы идеально.
В итого после нескольких суток эксперементов воспользовался мультисайтингом.
как вариант, но вариант для своих проектов и своих сайтов... в случае работы с заказчиком - его условия все-таки приоритетнее