Fonction t() et accent

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Comment passe t-on une chaine de caractères accentuées à la fonction t() lorsque l'on programme un module destiné à afficher du texte en français? Comment passe-t-on également le caractère ' à cette fonction, car t(''') renvoie uen erreur?

Merci

Forum : 
Version de Drupal : 

Si tu veux vraiment passer ces caractere, il faut passer par les équivalent HTML pour les accents.
& eacute; => é
& eagrave; => è
& ccedil; => ç
(sans les espace, evidement, sinon ca me les affiche ici)
etc, etc ... (la liste complete se trouve facilement)

Pour passer des chaines du type t('j'ai un truc ici'); il faut utiliser le caractère d'échappement . Ca donnerais donc t('j\'ai un truc ici');

Je ne suis pas d'accord avec toi Haza :
La fonction t() ne doit pas être utilisée avec une chaine de caractère déjà traduite...

La bonne utilisation est t('my sentence is accentuated'), puis dans la partie traduction du back office, tu fais une recherche sur le terme "my sentence is accentuated" et tu traduis en français par "ma phrase est accentuée".

Pour les apostrophes, tu peux effectivement l'échapper avec le backslash mais moi je préfères encapsuler la chaine de caractère par des doubles quotes, c'est plus lisible et plus simple à copier coller :)

exemple, ces 2 appels à t() ont le même comportement :

t("Terminator says: I'll be back")
t('Terminator says: I\'ll be back')