Bonjour, j'ai peur de ne pas être au bon endroit, mais je ne sais où me poser, désolé…
J'ai de petits soucis pour afficher une transcription qui utilise des diacritiques assez particulères : outres les accents grave et aigües, j'ai également besoin de macron ("_" sur et sous les lettres) et de carons (accents circonflexes inversés), y compris sur les consonnes "m" et "n" !
je me suis fait deux petites fonction pour chaque romanisation, mais ça devient très vite la catastrophe : parfois ça marche, parfois pas du tout !
Voici le code (il va sans dire qu'aillant du chinois sur le site, c'est codé en UTF-8) de la fonction. Pour expliquer, je voudrais juste ajouter le ton après la lettre concernée par un chiffre, qui est ensuite remplacé par la diacritique qui se positionne automatiquement sur la lettre. J'affiche avec la police Arial Unicode MS.
qui m'affiche ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php function texttodt($chaine) { $chaine_avant = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0'); $chaine_apres = array('', '̀', '̱', '̄', '̌', '́', '̄', '', '̱', '°'); return str_replace($chaine_avant, $chaine_apres, $chaine); } $text = 'a1 a2 a3 a4 a5 a6 a7 a8 a9 a0 <br /> e1 e2 e3 e4 e5 e6 e7 e8 e9 e0 <br /> i1 i2 i3 i4 i5 i6 i7 i8 i9 i0 <br /> u1 u2 u3 u4 u5 u6 u7 u8 u9 u0 <br /> o1 o2 o3 o4 o5 o6 o7 o8 o9 o0 <br /> m1 m2 m3 m4 m5 m6 m7 m8 m9 m0 <br /> n1 n2 n3 n4 n5 n6 n7 n8 n9 n0'; $text = texttodt($text); echo $text; ?>
a a&#̄;2; ā; a&#̄̄2; a&#̄°; a! ā a a̱ a°
e e&#̄;2; ē; e&#̄̄2; e&#̄°; e! ē e e̱ e°
i i&#̄;2; ī; i&#̄̄2; i&#̄°; i! ī i i̱ i°
u u&#̄;2; ū; u&#̄̄2; u&#̄°; u! ū u u̱ u°
o o&#̄;2; ō; o&#̄̄2; o&#̄°; o! ō o o̱ o°
m m&#̄;2; m̄; m&#̄̄2; m&#̄°; m! m̄ m m̱ m°
n n&#̄;2; n̄; n&#̄̄2; n&#̄°; n! n̄ n ṉ n°
Je pourrait certe me contenter de remplacer les voyelles par les caractères adéquates qui existent déjà en Unicode, mais ça ne résoudra pas mon problème…
Une piste ??
Partager