Le problème avec l'encodage et le texte russe [Réglé]
j'ai essayé de traduire phpboost en russe mais il n'y a que Р—&am
Support Général
Visiteur
Boosteur Inactif
S'il vous plaît excusez-moi mon français s'il y a des fautes.
Un jour j'ai trouvé phpboost et j'ai cru que cela peut être utile pour les utilisateurs russes. Mais malheureusement je n'ai pas trouvé la traduction russe du coup je suis obligé de le faire moi-même.
Moi je n'y connaisse rien à la programmation et il y a un problème qui me travaille. c'est à dire le texte russe ne se peint pas du tout. Il y a des problèmes avec l'encodage.
Voici le site dont je parle. http://phpboost.ru (regardez à gauche)
Conseillez-moi quelque chose. Où puis-je trouver la solution? Je voudrais bien que ça soit en russe aussi.
Merci à l'avance et merci pour phpboost.
Art.
Crunchfamily Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Crunchfamily
- Inscrit le : 23/09/2008
Code HTML :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
par :
Code HTML :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />le seul problème étant que je ne sais pas comment va se comporter la base de donné et le php dans tout ça. En clair je pense que ta base doit être en utf-8.
Édité par Crunchfamily Le 02/12/2008 à 18h10
Visiteur
Boosteur Inactif
Crunchfamily Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Crunchfamily
- Inscrit le : 23/09/2008
Édité par Crunchfamily Le 02/12/2008 à 18h17
Shadow Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Shadow
- Inscrit le : 30/12/2007
- Site internet
Une personne avait demandé une fois si c'était possible de mettre PHPboost en arabe et a priori la réponse était non, alors en russe, je ne sais pas. Faudrait faire une recherche sur arabe et encodage pour voir.
Shadow
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
Crunchfamily Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Crunchfamily
- Inscrit le : 23/09/2008
voir problème pour la langue arabe : http://www.phpboost.com/forum/topic-2162-4.php
Édité par Crunchfamily Le 02/12/2008 à 18h22
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Pour ce qui est des pages, il faudrait leur mettre l'encodage ISO 8859-5, il devrait faire l'affaire.
Les fichiers PHP contenant du texte (typiquement ceux du dossier lang/russian et tous les fichiers langue des modules) doivent être aussi encodés selon cette norme.
En ce qui concerne la base de données, il faut modifier la structure de chaque table et les mettre selon cet encodage : cp1251_general_ci (voir documentation MySQL).
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Crunchfamily Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Crunchfamily
- Inscrit le : 23/09/2008
LSMetag Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre LSMetag
- Inscrit le : 27/12/2008
http://css.alsacreations.com/Administration-serveur-dedie/Apache-PHP
Par contre j'aurais une requête. Mon site contenant certains caractères japonais, serait-il possible d'ajouter une fonction (désactivée par défaut) pour supporter l'UTF-8 dans la prochaine version de phpboost ? Car j'ai l'impression que si vous attendez php6 pour proposer un support même expérimental, nous risquons de ne pas le voir avant plusieurs années et c'est bien contraignant.
horn Membre non connecté
-
Modérateur
- Voir le profil du membre horn
- Inscrit le : 31/12/2007
- Site internet
- Groupes :
-
Equipe Historique
LSMetag :
Par contre j'aurais une requête. Mon site contenant certains caractères japonais, serait-il possible d'ajouter une fonction (désactivée par défaut) pour supporter l'UTF-8 dans la prochaine version de phpboost ? Car j'ai l'impression que si vous attendez php6 pour proposer un support même expérimental, nous risquons de ne pas le voir avant plusieurs années et c'est bien contraignant.
La raison pour laquelle nous n'utilisons pas utf8 est simple, c'est qu'en php5, l'utf8 n'est toujours pas supporté nativement, et par conséquent, tous les serveurs n'ont pas forcément la librairie adéquate pour le traitement de l'utf8.
Après, ça me semble compliqué à première vue pouvoir gérer 2 encodages différents. Mais si jamais on le fait, ce ne sera pas pour la prochaine version (celle d'après peut-être), mais il faut savoir qu'à ce moment là, il ne sera pas possible d'updater son site car il faudra changer l'encodage de la base de donnée et convertir tous le contenu.
De plus si par défaut, l'utf8 est désactivé, cela voudra dire que nos fichiers langues devront rester en ISO8859-1 ce qui ne fera pas avancer le schmilblick pour les russes, arabes, chinois, japonais, et autres.
C'est donc un problème très compliqué, mais nous sommes ouverts à toutes les solutions.
Soyez polis, pas de langage SMS et soignez votre orthographe, merci.
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Apache et PHP - Alsacréations :
Pour activer la gestion de l'UTF-8 par PHP 5 (par défaut dans la version 6) :
Code TEXT :
mbstring.language=UTF-8 mbstring.internal_encoding=UTF-8 mbstring.http_input=UTF-8 mbstring.http_output=UTF-8 mbstring.detect_order=auto
Je rappelle que PHPBoost est un script qui doit fonctionner sur la plupart des serveurs, nous ne pouvons pas exiger que l'utilisateur ait telle ou telle librairie.
Or sur la plupart des hébergements (qui sont mutualisés), on ne peut pas modifier la configuration de PHP sur le serveur, on ne pourra donc pas activer UTF8.
Nous n'avons donc pour l'instant aucune solution satisfaisante.
PHP 6 apporte le support nativement de l'UTF8, en attendant je ne sais pas comment on pourra régler ce problème.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Visiteur
Boosteur Inactif
Avec la sortie de phpboost v.3 ca va par default pour la base de donnee qui est en utf-8. Mais le problem reste pour les fichiers.
J'ai essaye de mettre en utf-8 tous les fichiers de langue et ceux de templates mais ca n'a pas marche.
j'ai alors pense a les mettre en ISO 8859-5 mais le logiciel (editeur de texte, ubuntu) m'a dit que c'est impossible d'avoir les caracteres non-cyrilliques dans un tel fichier et m'a propose encore l'utf-8.
est-il possible d'en sortir avec utf-8? si quelqu'un ici puisse m'aider avec ca je peux lui envoyer l'information pour la gestion de mon serveur (j'en ai tout l'access).
Onagane Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Onagane
- Inscrit le : 28/07/2009
Code HTML :
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
au lieu de :
Code HTML :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Ajoute aussi après la ligne 93 du fichier kernel/framework/db/mysql.class.php ceci :
Code PHP :
$this->query("SET NAME 'UTF8'",__LINE__,__FILE__);
Normalement ça devrait aller.
Édité par Onagane Le 06/09/2009 à 19h36
Visiteur
Boosteur Inactif
Onagane Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Onagane
- Inscrit le : 28/07/2009
Code PHP :
<?php function encoderDossier ($dossierAEncoder) { $dossier = opendir ($dossierAEncoder); while ($fichierAEncoder = readdir ($dossier)) { if ($fichierAEncoder != '.' AND $fichierAEncoder != '..') { if (is_file ($fichierAEncoder)) { $contenu = file_get_contents ($fichierAEncoder); $fichier = fopen ($fichierAEncoder, 'w'); fputs ($fichier, html_entity_decode(utf8_encode($contenu))); fclose ($fichier); } else encoderDossier ($dossierAEncoder . $fichierAEncoder . '/'); } } closedir ($dossier); } encoderDossier ('./'); ?>
Je précise que ce code ne provient pas de moi mais d'un tutoriel du sdz.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
