На моей многоязычной странице joomla 2.5 я бы хотел использовать JoomGallery. Изображения присваиваются категориям. Как я могу сделать эти категории в зависимости от языка веб-страницы?Как перевести категории для JoomGallery?
спасибо. Spikey
На моей многоязычной странице joomla 2.5 я бы хотел использовать JoomGallery. Изображения присваиваются категориям. Как я могу сделать эти категории в зависимости от языка веб-страницы?Как перевести категории для JoomGallery?
спасибо. Spikey
Короткий ответ: перевод категорий еще не поддерживается. В качестве обходного пути вы можете использовать функцию stranslation строки joomla. Мое оправдание быстрому и грязному прикосновению дизайна: главной целью было изменение перевода для администратора в бэкэнд без каких-либо изменений в коде администрирования. В приведенном ниже примере занимает немецкий в качестве базового языка это означает:
Следующие функции помогают автоматически получать правильные постоянные значения на других языках.
/**
* Remove umlauts and special chars.
*/
if(!function_exists('toASCII')) {
function toASCII($str) {
$str = mb_strtolower($str,'UTF-8'); // Useful if the current server setting is not UTF-8
//$str = strtolower($str);
$str = preg_replace('#ß#' , "ss", $str); // maps German ß onto ss
$str = preg_replace('#ä#' , "ae", $str); // Æ => AE
$str = preg_replace('#ö#' , "oe", $str); // Œ => OE
$str = preg_replace('#ü#' , "ue", $str); // œ => oe
$str = preg_replace('#Ä#' , "ae", $str); // Æ => AE
$str = preg_replace('#Ö#' , "oe", $str); // Œ => OE
$str = preg_replace('#Ü#' , "ue", $str); // œ => oe
$str = preg_replace('# #' , "", $str); // remove spaces
$str = preg_replace('#-#' , "", $str); // remove hyphens
$str = preg_replace("#'#" , "", $str); // remove apostrophs
$str = preg_replace("#/#" , "", $str); // remove apostrophs
$str = preg_replace("#\(#" , "", $str); // remove apostrophs
$str = preg_replace("#\)#" , "", $str); // remove apostrophs
$str = preg_replace("#\.#" , "", $str); // remove apostrophs
$str = preg_replace("#,#" , "", $str); // remove apostrophs
$str = preg_replace("#\[#" , "", $str); // remove apostrophs
$str = preg_replace("#\]#" , "", $str); // remove apostrophs
// Process all other special chars
$str = strtr(utf8_decode($str),
utf8_decode('ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ'),
'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy');
return strtoupper($str);
}
}
function translate($de_string) {
// Translate all JoomGallery category names
$menu = JFactory::getApplication()->getMenu();
$active = $menu->getActive();
$activeItemLanguage = $active->language;
$lang = substr($activeItemLanguage, 0, 2);
// Do not translate german category names
$trans_str = $de_string;
if ($lang != "de") {
// Parse all category names and replace them with an existing override-string.
$const = toASCII($trans_str);
$trans_str = JText::_($const);
}
return $trans_str;
}
Как использовать это: заменить строковые функции в шаблонах, которые показывают названия категорий:
<?php echo translate($this->escape($row->name)); ?>
вместо
<?php echo $this->escape($row->name); ?>