Доброго дня,
Имеется мультиязычный сайт на 2-х языках. При переключении языка на английский и при клике на логотип переход осуществляется на главную русскоязычную страницу, как поправить?
Так же имеются ссылки встроенные в шаблон (домой, контакты, карта сайта) как и их сделать мультиязычными?
Спасибо.
Комментарии
актуально...
global $language;
пробовал вот так:
global $language;
$lang = $language->language;
if($lang == ru) {
print '/ru/';
} elseif($lang == en) {
print '/en/';
}
?>" />
но у меня в шаблоне еще такой код:
<?php // this is copy&paste from locale_block in locale.module
// this adds the real paths, i.e. if we are on a german page,
// This one adds extended languages, i.e. those that are not enabled.
// now add or replace text links by flags, according to your i18n settings.
// Or do your own stuff, e.g. set the flags and no lang names,
// format as you like, e.g.
$languages = language_list('enabled');
$links = array();
foreach ($languages[1] as $language) {
if ($language->language != $current) {
$links[$language->language] = array(
'href' => $_GET['q'],
'title' => $language->native,
'language' => $language,
'attributes' => array('class' => 'language-link'),
);
}
}
// the british flag will point to en/english_alias instead of
// en/node_with_german_content
translation_translation_link_alter($links, $_GET['q']);
// Disable if you want only flags for enabled languages.
i18n_translation_link_alter($links, $_GET['q']);
if (function_exists('languageicons_translation_link_alter'))
languageicons_translation_link_alter($links, $_GET['q']);
// no matter what the i18n icon settings say.
//if ($icon = theme('languageicons_icon', $language, NULL)) {
// $links[$language->language]['title'] = theme('languageicons_place', $link['title'], $icon);
// $links[$language->language]['html'] = TRUE;
//}
// remove the current language again. We cannot do that
$current = i18n_get_lang();// earlier because i18n_translation_link_alter would add it
// again, thinking it was an extendeg language because it
// was not yet contained in $links. If you don't use
// i18n_translation_link_alter, you can also make a case distinction
// in the foreach loop
unset($links[$current]);
echo theme('links', $links, array());
?>
и после вставки первого кода, перестает работать переключатель.
Перепишите первый блок по-другому как-нить.
Например так:
PS: за вставку кода в шаблоны бъют по рукам, не злоупотребляйте
Поскольку сайт всего двуязычный, возможно подойдет и такой вариант в page.tpl.php
<a href="<?php print check_url($front_page); ?>" title="<?php print $site_name; ?>"><img src="<?php print check_url($logo); ?>" alt="<?php print $site_name; ?>" /></a>
<?php } else { ?>
<a href="<?php print check_url($front_page); ?>" title="<?php print $site_name; ?>"><?php print '<img src="'. $base_path . $directory . '/images/logo_en.png" alt="<?php print $site_name; ?>" />' ?></a>
<?php } ?>
спасибо, кэп
Если очень осторожно и никто не знает - то можно)
С чего бы сарказм? В этом коде $language не вытаскивается из глобальной области видимости в локальную. Имхо в этом проблема нерабочей второй части кода. Если вы сами знаете решение, то зачем спрашиваете?
Спасибо! Для Drupal 7 сделал так (выбор языка на сайте происходит по подстановке префикса в URL):
<a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" id="logo"> <img
src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" /> </a>
<?php } else { ?>
<a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" id="logo"> <img
src="/sites/all/themes/mytheme/logo_ru.png" alt="<?php print t('Home'); ?>" /> </a>
<?php } ?>
Но я не пойму, как задать "если лого, если язык". Только "если язык" получилось.
UPD: кеш почистил, крон запустил и вышло в Warning, что переменной en для $language_url нет.. как это?
Забил. Использую модуль Variable, дает возможность для каждого языка настроить свой logo, свой site_mame, site_slogan и т .д.
Только если тема мудреная и там themename_form_system_theme_settings_submit($form, &$form_state) то придется копировать функцию и обзывать ее themename_form_variable_realm_variable_theme_form_submit