Я всегда использовал t () для заголовка и описания hook_menus следующим образом:
$items['some-path'] = array(
'title' => t('My Page Title'),
'description' => t('This is a description about what my page is for'),
'page callback' => 'profile_user_page',
);
Это имеет смысл для меня, поэтому пользователи могут переводить заголовок и описание на разные языки, если это необходимо.
Однако этот комментарий к обзору модуля на DO говорит:
Нет, это неправильно, не делайте этого - описания в hook_menu () никогда не должны использовать t ().
В чем причина этого и действительно ли это лучшая практика?
Кроме того, если это так, то не должны ли мы использовать t () для заголовка?
Ответы:
См. Строки в известных местах: встроенные меню, разрешения, сообщения журнала и документация сообщества .info-файлов :
Акцент мой.
источник
title callback
не установлено, потому что по умолчаниюtitle callback
этоt()
функцияt()
вас, и вы все равно не должны использовать его вhook menu()
кешировании.Если вы видите документацию по аргументам hook_menu ..
По умолчанию заголовок обратного вызова является функцией t .. Так что он всегда переводится ..
источник
Так как Drupal 6 больше не нужен.
Пожалуйста, прочитайте https://drupal.org/node/140311 . Цитируя это:
источник
Вы не должны использовать
t()
вhook_menu()
реализациях, потому чтоt()
позже вызывается автоматически, и это приведет к двойному переводу.источник
title callback
в hook_menu, а если нетt
, обратный вызов заголовка отвечает за перевод строки.Это ясно говорит на странице документации для hook_menu () т.е.
https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_menu/7.x
"название": обязательно. Непереведенный заголовок пункта меню.
«описание»: непереведенное описание пункта меню.
Так что нет необходимости использовать функцию t () для обоих выше.
источник