J'ai toujours utilisé t () pour le titre et la description de hook_menus comme ceci:
$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',
);
Cela a du sens pour moi afin que les utilisateurs puissent traduire le titre et la description dans différentes langues si nécessaire.
Cependant, ce commentaire sur une revue de module sur DO dit:
Non, c'est faux, ne faites pas ça - les descriptions dans hook_menu () ne devraient jamais utiliser t ().
Quel est le raisonnement pour cela et est-ce réellement la meilleure pratique?
De plus, si cela est vrai, ne devrions-nous pas également utiliser t () pour le titre?
Réponses:
Voir Chaînes à des endroits bien connus: menus intégrés, autorisations, messages de journal et documentation de la communauté des fichiers .info :
Je souligne.
la source
title callback
n'est pas défini car par défauttitle callback
est lat()
fonctiont()
et vous ne devez toujours pas l'utiliser danshook menu()
- vous savez, la mise en cache.Si vous voyez la documentation des arguments hook_menu ..
Par défaut, le rappel du titre est une fonction t. Il est donc toujours traduit ..
la source
Depuis Drupal 6 n'est plus nécessaire.
Veuillez lire https://drupal.org/node/140311 . Citant que:
la source
Vous ne devez pas l'utiliser
t()
dans leshook_menu()
implémentations car ilt()
est automatiquement appelé plus tard et cela entraînerait une double traduction.la source
title callback
dans le hook_menu, et si ce n'est pas le cast
, le rappel de titre est responsable de traduire la chaîne.Il est clairement indiqué sur la page de documentation de hook_menu () ie
https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_menu/7.x
"titre": obligatoire. Titre non traduit de l'élément de menu.
"description": la description non traduite de l'élément de menu.
Donc pas besoin d'utiliser la fonction t () pour les deux ci-dessus.
la source