Deutsch

Joomla-два-языка-шаблон-лого

1036  
alexnaum свой человек15.02.11 19:46
alexnaum
NEW 15.02.11 19:46 
что то никак не могу сообразить,
в шаблоне есть такой участок кода, где подгружается лого:
html #logo {
background:none;
filter:progid:dximagetransform.microsoft.alphaimageloader(src='<?php echo $this->baseurl ?>/templates/ythema/images/logo.png', sizingmethod='crop');}
}

ну вот, хочу подключать в зависимости от языка разные рисунки, logo.png для русского или logo1.png для нем.
Вроде как должно быть достаточно просто все, что то типа if($mosConfig_lang==russian) - и первую картинку подгружаем, if - вторую
но как эту конструкцию с этим выводом применить, что то не соображу никак..
#1 
Валидол старожил15.02.11 20:38
NEW 15.02.11 20:38 
в ответ alexnaum 15.02.11 19:46, Последний раз изменено 15.02.11 23:37 (Валидол)
Как то так

function logoSRC(){
if($mosConfig_lang==russian){$logoSrc="ПутьКРусскомуЛого";}
else{$logoSrc="ПутьКНеРусскомуЛого";}
return $logoSrc;}

..
Ну и в шаблоне:
html #logo {
background:none;
filter:progid:dximagetransform.microsoft.alphaimageloader(src='<?php echo $this->baseurl.logoSRC() ?>', sizingmethod='crop');}
}
...
#2 
alex_martirosov завсегдатай15.02.11 20:46
alex_martirosov
NEW 15.02.11 20:46 
в ответ alexnaum 15.02.11 19:46
в папке images создай 2 папки "russian" "deutsche"
в которые запишеш соответствующие лого
ну и правилный путь к картинке в шаблоне
html #logo {
background:none;
filter:progid:dximagetransform.microsoft.alphaimageloader(src='<?php echo $this->baseurl ?>/templates/ythema/images/<?php echo $mosConfig_lang ?>
/logo.png', sizingmethod='crop');}
}
#3 
alexnaum свой человек15.02.11 23:13
alexnaum
15.02.11 23:13 
в ответ Валидол 15.02.11 20:38
спасибо, это лого как оказалось, еще в css прописано -
#logo {
background:url(../images/logo.png) no-repeat top right;
height:74px;
width:960px;
float:left;
}

#4 
Валидол старожил15.02.11 23:36
NEW 15.02.11 23:36 
в ответ alexnaum 15.02.11 23:13
если надо, то css можно и подтереть
#5 
alexnaum свой человек16.02.11 11:05
alexnaum
NEW 16.02.11 11:05 
в ответ Валидол 15.02.11 23:36
в общем то хотелось бы.
Я так понимаю, что тут 2 варианта - либо стили для лого не определять в файле css, а прописывать напрямую в index.php шаблона,
либо создать второй файл css, и подключать тот или иной в зависимости от языка.
Попробовал пойти вторым путем, как показалось, более легким, используя твой алгоритм:
изначалько файл css подключается таким образом:
<link href="<?php echo $this->baseurl ?>/templates/ythema/css/template_css.css" rel="stylesheet" type="text/css" media="screen" />
прописал функцию
function tempCSS(){
if (
$mosConfig_lang==russian){
$tempCss="/templates/ythema/css/template_css.css";
}
else {
$tempCss="/templates/ythema/css/template1_css.css";
}
return $tempCss;
}

ну и тогда, следуя логике, подключение файла css должно быть где то таким:
<link href="<?php echo $this->baseurl.tempCSS() ?>" rel="stylesheet" type="text/css" media="screen" />
но что то не так, теперь вне зависимости от языка подключается нерусское лого...
что где ошибаюсь?
#6 
Валидол старожил16.02.11 11:28
NEW 16.02.11 11:28 
в ответ alexnaum 16.02.11 11:05, Последний раз изменено 16.02.11 11:54 (Валидол)
Ошибка по видимому в этом коде $mosConfig_lang==russian
Попробуй немного по другому сделать..

function tempCSS(){
$config=&JFactory::getConfig();
$lang=$config->getValue('language');

///Стандартные значения $lang для немецкого="de-DE", для русского: "ru-RU". Ну или вставь echo $lang и посмотри что у тебя выводит.
if (
$lang=="ru-RU"){
$tempCss="/templates/ythema/css/template_css.css";
}
else {
$tempCss="/templates/ythema/css/template1_css.css";
}
return $tempCss;
}


...
Sory за update

#7 
vlad_s_69 завсегдатай16.02.11 12:15
NEW 16.02.11 12:15 
в ответ Валидол 16.02.11 11:28
плохой стиль.
для каждого след. языка надо будет новый "иф" в код добовлять, что ни есть гуд.
разумнее фолдер с названием языка создать в папке templates, куда цсс файлы прописать
#8 
alexnaum свой человек16.02.11 12:45
alexnaum
NEW 16.02.11 12:45 
в ответ Валидол 16.02.11 11:28
да, так работает, спасибо.
vlad_s_69
...ну если языка всего два, то тогда наверное не так уж плохо.
#9 
Валидол старожил16.02.11 12:54
NEW 16.02.11 12:54 
в ответ vlad_s_69 16.02.11 12:15
Да, так будет правильней. И об этом, раньше тебя, говорил alex_martirosov . Опиши он более подробнее тема двинулась бы в том направлении. Но он не написал, не пишешь и ты. Опиши с кусочком кода, и адресуй не мне а человеку нуждающемуся.
#10 
vlad_s_69 завсегдатай16.02.11 13:51
NEW 16.02.11 13:51 
в ответ Валидол 16.02.11 12:54
Валидол, ты супер, помогаешь человеку, молодец.
и про кавычки в стринге подметил (==руссиан)
не в обиду, короче.
#11 
alexnaum свой человек16.02.11 14:06
alexnaum
NEW 16.02.11 14:06 
в ответ Валидол 16.02.11 12:54
хорошо, давайте попробуем этот вариант тоже.
Вернее, раз такой вариант, я бы хотел попробовать перевести оставшуюся непереведенной последнюю часть шаблона.
А именно: к пунктам меню прилагаются дополнительные описания - получается, сверху название пункта меню, под ним - описание. Описания редактируются в админке в общих настройках шаблона, все изменения вносятся в файл params.ini
Кроме того, вот где еще присутствут и каким образом передаются переменные этих описаний меню.
...\templates\ythema\params.ini
xml_text_menu_1=На главную
xml_text_menu_2=Новости и новинки
xml_text_menu_3=Наш форум
xml_text_menu_4=Наш стол заказов
xml_text_menu_5=Свяжитесь с нами
xml_text_menu_6=О компании
xml_text_menu_7=musatoffalex
xml_text_menu_8=musatoffalex
xml_text_menu_9=text9
xml_text_menu_10=text10

...\templates\ythema\templateDetails.xml
<param name="xml_text_menu_1" type="text" default="text1" label="Text label 1" description="Enter what sub text you would like for the first menu item" />
<param name="xml_text_menu_2" type="text" default="text2" label="Text label 2" description="Enter what sub text you would like for the second menu item" />
<param name="xml_text_menu_3" type="text" default="text3" label="Text label 3" description="Enter what sub text you would like for the third menu item" />
<param name="xml_text_menu_4" type="text" default="text4" label="Text label 4" description="Enter what sub text you would like for the fourth menu item" />
<param name="xml_text_menu_5" type="text" default="text5" label="Text label 5" description="Enter what sub text you would like for the fifth menu item" />
<param name="xml_text_menu_6" type="text" default="text6" label="Text label 6" description="Enter what sub text you would like for the sixth menu item" />
<param name="xml_text_menu_7" type="text" default="text7" label="Text label 7" description="Enter what sub text you would like for the seventh menu item" />
<param name="xml_text_menu_8" type="text" default="text8" label="Text label 8" description="Enter what sub text you would like for the eighth menu item" />
<param name="xml_text_menu_9" type="text" default="text9" label="Text label 9" description="Enter what sub text you would like for the nineth menu item" />
....
...\templates\ythema\index.php
$text_menu_1 = $this->params->get ("xml_text_menu_1");
$text_menu_2 = $this->params->get ("xml_text_menu_2");
$text_menu_3 = $this->params->get ("xml_text_menu_3");
$text_menu_4 = $this->params->get ("xml_text_menu_4");
$text_menu_5 = $this->params->get ("xml_text_menu_5");
$text_menu_6 = $this->params->get ("xml_text_menu_6");
$text_menu_7 = $this->params->get ("xml_text_menu_7");
$text_menu_8 = $this->params->get ("xml_text_menu_8");
$text_menu_9 = $this->params->get ("xml_text_menu_9");
$text_menu_10 = $this->params->get ("xml_text_menu_10");
....

вот эти то вот записи в params.ini - "на главную", "о компании" и т.д. - я бы и хотел, чтобы менялись зависимо от языка.
Первым путем, похоже, пойти не получается - params.ini вроде как второй так просто не подключается, как я подключил css...
Ну вот может вторым путем это можно будет сделать?
#12 
Валидол старожил16.02.11 14:11
NEW 16.02.11 14:11 
в ответ alexnaum 16.02.11 14:06
a Joom!fish не работает?
#13 
Валидол старожил16.02.11 14:28
NEW 16.02.11 14:28 
в ответ alexnaum 16.02.11 14:06, Последний раз изменено 16.02.11 14:53 (Валидол)
Ну а в принципе, как тут сказали, делаешь к примру папки [de-DE] и [ru-RU] и ложишь туда файлы с одинаковым нзаванием. myfile.erw
Определяешь из какой папки надо тащить фаил пpимерно так

function tempCSS(){
//// на выходе пулучишь или de-DE или ru-RU
$config=&JFactory::getConfig();
$lang=$config->getValue('language');
return $lang
}


Путь к необходимому фаилу
src="temlate/ bla bla bla/<?php echo tempCSS()?>/myfile.erw

#14 
alexnaum свой человек16.02.11 16:47
alexnaum
NEW 16.02.11 16:47 
в ответ Валидол 16.02.11 14:11
рыба конечно работает, но это как раз из того, что не поддается рыбному переводу...
#15 
compman завсегдатай16.02.11 18:29
compman
NEW 16.02.11 18:29 
в ответ alexnaum 16.02.11 16:47
Так и опрашивайте, что рыба в себе несёт и в зависимости от этого изменяйте, что вам нужно
#16