|
jpb 2791
| Posté : 08-11-2004 16:37
Bonjour tous
Alors récapitulons :
l'aptitude de NPDS à devenir polyglote...
un petit point...
Contexte de test :
-remove hack est sans la ligne qui sépare par un underscore le & du # (pour ça reste à voir les prob de sécu mais DEV veille... je n'oublie pas je prépare une liste de caractères interdits...)
-l'encodage des pages est en utf-8 (modifié ds meta/meta.php)
21/11/04=>
en fait c'est uniquement le fichier admin/metatags.php qu'il faut modifier (puisque c'est lui qui génère meta/meta.php)
ligne 152 :
$content .= MetaTagMakeSingleTag('content-type', "text/html; charset=utf-8", 'http-equiv');
<=21/11/04
et ne pas oublier toutes les pages "extérieures" chat, print etc...
Ca va mieux beaucoup mieux...
les articles, le chat, le forum, les prefs supporte allégrement le mélange du français et du chinois et de n'importe quel autre langue d'ailleur, à part le martien qui n'est pas dans les base unicode...
Après cette modification de l'encodage bien évidement on a le problème suivant tous les caractères ASCII dont le code est supérieur à 127 (car c'est à partir de la que diverge les voies de l'encodage) pose des problèmes... Ils ne s'affichent plus...
Bien évidement cela est valable pour les donnée dynamiques (bd) et statiques (fichiers php)
les données statiques :
J'ai trouvé une solution pour les fichiers langues ce qui veut dire que tout ce qui passe par une fonction translate est ok !!
modification des fichiers lang-french.php,lang-adm-french.php,pp-lang-french.php,push-lang-french.php etc...
le return de la fonction :
return preg_replace ("/([\x80-\xFF])/e" ,"chr(0xC0|ord('\\1')>>6).chr(0x80|ord('\\1')&0x3F)" , $tmp);
ou alors
return iconv ("ISO-8859-1" ,"UTF-8" ,$tmp);
(le désavantage de cette solution : il faut que la fonction iconv soit implémenté dans php...ce qui n'est pas toujours le cas)
Ces deux solutions fonctionnent pour qu'elle soient définitivement stable il faut que dans les fichier d'autres langues les strings de la varible $tmp soient écrit avec des entitées html pour tout les ch sup à 127.
( j'utilise les entitées dans mes propres traductions (français) et ça ne semble pas poser de problème à part celui d'avoir des phrase peu voire illisible dans les fichiers langues...mais l'outil d'aide à la traduction réglera ce petit problème...)
Une troisième solution serait la modification de ces caractères dans les fichiers langues... ce qui signifie aussi une intervention dans les fichiers php qui utilisent les fonction adm-translate et editor-translate...
Mais est ce la peine...
les données dynamiques :
maintenant reste a s'occuper de ce qui vient des bases de donnée et qui à donc (en théorie) été introduit par des form utilisant l'encodage ISO-8859-1
car à partir du moment ou l'on change l'encodage en utf-8 tout ce qui va entrer maintenant dans les bases de données par les form sera encodé utf-8
la je sèche à part faire une intervention sur la totalité des base de données c.a.d remettre au format toutes les données qui ont été entrée avant le changement d'encodage ?? une petite idée quelque part ????
pour mémoire :
Modification du fichier print.php :
ligne 55 : echo "$sitename
au lieu de
ligne 55 : echo "$sitename
Pour rendre le chat parfaitement multilangue :
Modification des fichiers :
chatrafraich.php
ligne 70 : $Xthing="";
au lieu de
ligne 70 : $Xthing="";
ligne 108 :
au lieu de
ligne 108 :
#######################
chatinput.php
ligne 36 :echo " ";
au lieu de
ligne 36 : echo "";
#######################
chat.php
ajout de ligne entre ligne 17 et 18
nouvelle ligne :
Bon j'ai pas trouver un smiley d'un mec content mais qui sait que d'autres sérieux problèmes à régler se pointent à l'horizon
Message édité par : developpeur |  Profil www Citation
|
|
developpeur 24581
| Posté : 08-11-2004 21:46
on peut aussi considérer que l'encodage est choisit lors de la création du site et que donc poitn de reprise d'historique / non ? |  Profil E-mail www Citation
|
|
developpeur 24581
| Posté : 08-11-2004 21:58
- ta fonction ereg pour les fichiers de langue / je comprends (iconv est a tester car non présente dans certains php mais plus rapide qu'un ereg)
- le paramètrage du charset dans meta.php + dans les pages ne faisant pas appel à header.php / OKI je comprends aussi
- les données en provenance de la DB : là est le problème / ou alors faut trouver une astuce pour encoder à la volée.
Par contre les données qui seront inscrites seront bien en utf8 ?
A suivre
.
|  Profil E-mail www Citation
|
|
jpb 2791
| Posté : 09-12-2004 22:18
Alors NPDS en combien de langues ?
AU SECOURS VOUS AVEZ DES ????????? DE PARTOUT PASSER L' ENCODAGE TEXTE VOTRE NAVIGATEUR EN UTF-8 JUSTE POUR AVOIR UN AVANT GOÛT...et oubliez pas de revenir ensuite en iso sinon vous allez perdre tout vos accents
Un certain nombre d'éléments ont permis d'avancer un peu dans l'affichage des langues en voici le premier résultat...Visible
Latin: Vitrum edere possum; mihi non nocet.
French: Je peux manger du verre, ça ne me fait pas de mal.
Hindi: मैं काँच खा सकता हूँ, मुझे उस से कोई पीडा नहीं होती.
Hebrew: אני יכול לאכול זכוכית וזה לא מזיק לי.
Russian: Я могу есть стекло, оно мне не вредит.
Vietnamese (quốc ngữ): Tôi có thể ăn thủy tinh mà không hại gì.
Chinese: 我能吞下玻璃而不伤 ;身体。
Korean: 나는 유리를 먹을 수 있어요. 그래도 아프지 않아요
Sanskrit (standard transcription): kācaṃ śaknomyattum; nopahinasti mām.
Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα.
Pour la phrase de démo source : www.columbia.edu/kermit/utf8.html ICI
Messieurs les traducteurs potentiel le terrain se prépare il n'y a plus guère d'obstacle...pressez vous sans hâte ! |  Profil www Citation
|
|
jpb 2791
| |
developpeur 24581
| |
GiamDoc 7063
| |
GiamDoc 7063
| Posté : 29-01-2005 02:01
test 'article 1 de la déclaration universelle des droits de l'homme':
Điều 1: Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền. mọi con người đề được tạo hoá ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình bằng hữu.
(Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité. ) |  Profil E-mail www Citation
|
|