Проблема в общем вот в чем, перешел с 5-ки на 6-ку и решил перенести кусок кода, все встало кроме отображения рууского текста в пхп, вот код
function salamander_user_bar() {
global $user;
$output = '';
if (!$user->uid) {
$output .= drupal_get_form('user_login_block');
}
else {
$output .= t('<p class="user-info"> Привет !user, рад видеть тебя!</p>', array('!user' => theme('username', $user)));
$output .= theme('item_list', array(
l(t('Ваш аккаунт'), 'user/'.$user->uid, array('title' => t('Редактировать аккаунт'))),
l(t('Выход'), 'logout')));
}
$output = '<div id="user-bar">'.$output.'</div>';
return $output;
}
global $user;
$output = '';
if (!$user->uid) {
$output .= drupal_get_form('user_login_block');
}
else {
$output .= t('<p class="user-info"> Привет !user, рад видеть тебя!</p>', array('!user' => theme('username', $user)));
$output .= theme('item_list', array(
l(t('Ваш аккаунт'), 'user/'.$user->uid, array('title' => t('Редактировать аккаунт'))),
l(t('Выход'), 'logout')));
}
$output = '<div id="user-bar">'.$output.'</div>';
return $output;
}
А нас странице вместо Привет !user, рад видеть тебя! отображаются черные ромбики со знаком вопроса, !user отображается корректно.
Вопрос что делать?
Комментарии
Если я не ошибаюсь, в коде не должно быть ничего, кроме латиницы, которая потом переводится на нужный язык с помощью модуля Locale.
Т.е. писать t('Выход') не есть хорошо. Во-первых, зачем t(), если текст уже на русском. Во-вторых, как минимум, исходник должен быть в кодировке UTF-8, чтобы это работало.
Для того чтоб что-то и куда-то сувать, а Вашем случае это именно так. Надо знать что и куда и главное зачем. Вы же не пишите к примеру
<?php
if($i неравно $j) {
}
?>потому что слово "неравно" не используется по синтаксису оператора foreach а с чего вы взяли что в функцию t() можно сувать кирилицу???
Я еще удивляюсь как это в 5-ке работало.
Предназначение функции t() - файл common.inc со строки 695 и до начала функции.
в t() кириллицу писать не надо.
А ромбики оттого, что файл не в UTF. Нужно средствами IDE (редактора кода, или блокнота) сохранить в кодировке UTF-8.