pluxml translation
Hi all
first sorry if I am here in the wrong place, I don't understand french.
This is why I am writeing.
I think pluxml is great, and I would like to use it... in for examle english.
I decided -- since no one did it -- to add the ability to get the language strings from locale files.
Is someone interested to help? I have already implented a i18n class, but I would need help to separate the language from the code.
This message goes to the developers, if ther are interested I am willing to help
thanks
zsolt
hope I was clear -- my english is not good
//
how:
i18n class is in the core/lib
language strings goes into core/lang/en_EN.lang
the .lang file is simply like << page_title = 'whatever the page title should be' >>
currently the language setup and defines are in the config.php and for the admin in prepend.php
maybe not the best places for them. What do you think where should it go?
first sorry if I am here in the wrong place, I don't understand french.
This is why I am writeing.
I think pluxml is great, and I would like to use it... in for examle english.
I decided -- since no one did it -- to add the ability to get the language strings from locale files.
Is someone interested to help? I have already implented a i18n class, but I would need help to separate the language from the code.
This message goes to the developers, if ther are interested I am willing to help
thanks
zsolt
hope I was clear -- my english is not good
//
how:
i18n class is in the core/lib
language strings goes into core/lang/en_EN.lang
the .lang file is simply like << page_title = 'whatever the page title should be' >>
currently the language setup and defines are in the config.php and for the admin in prepend.php
maybe not the best places for them. What do you think where should it go?
0
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
The development crew is working about language support for Pluxml.
We implemented too a i18n class and we are studying the integration with Pluxml.
The best place to define the language setup is the file "config.php" and you need not to use the admin file "prepend.php" (config.php is included into prepend.php)
I hope that is clear.
yes you were clear
however the paths for the frontend and backend are not identical since these are relative paths, so I needed a quick fix to try my class out.
Pluxml paths are setup twice, once in index.html in the frontend and once in the backend. I think that is an illogical step. Maybe a function witch checks if the file was included from the back-or-frontend would be a good idea.
What are the plans for pluxml? Approx. when can we have language support?
Where are you developing pluxml?
In the svn area there is no i18n class.
thanks
zsolt
Yes pluxml path are setup twice, we could improve that.
Now, we don't know when langage support will be etablished into Pluxml code.
The development crew uses a private svn system. Public svn give you only the tag versions
J'espère que l'équipe de développement intègre pluxml traductions.
Donc pour le moment ce n'est pas encore envisagé....
Et à la limite pour la partie publique du blog du moins, cela n'est pas long à traduire
même directement dans des fichiers à droite ou à gauche
- par défaut en français
- en anglais (c'est surtout un travail de traduction)
Je rebondis sur ce topic pour relancer ma demande.
Je pense avoir bien compris qu'avoir un plateforme Multilingue était trop lourd/ trop compliqué" à gérer.
Par contre, avoir une version "publique" en anglais me parait tout à fait acceptable (pour mon utilisation). Qu'importe si l'admin est en Fr, ce qui importe, c'est que l'on puisse naviguer dans le site sans problême en anglais.
Je me doute que vous avez d'autres chats à fouetter que de faire une liste exhaustive mais serait-il possible d'avoir, au moins, la liste des fichiers à modifier/traduire pour faire apparaitre Pluxml en EN. J'aurais ainsi juste à ouvrir les dit-fichiers et traduire le contenu. Si c'est juste un soucis de traduction, je devrais y arriver sans trop de soucis.
Par contre, j'imagine que tout ne doit pas être traduit bien évidement, seulement les chaines qui apparaissent concrétement, pas le code PHP. Ca au moins, je l'ai bien compris :P
Merci pour votre lumière.
PS:
mode supporter ON:
allez les gars, le version Pluxml 4.2 est presque prête! Go go go! Y'a tout une tribu d'affamés qui l'attend, on met les bouchées doubles!
mode supporter OFF
Je crois que je vais pouvoir répondre à ta demande.
Je me suis fait un script pour mes besoins persos, qui traduit en automatique dans les fichiers de pluxml tous les textes français en anglais. (il ne traduit pas l'administration, que la partie publique)
Il faut que je le remette à jour car il fonctionne uniquement pour la 4.2 et comme la 4.2 n'est pas tout a fait finalisée il y a des textes qui ont changés entre temps.
Donc juste pour te dire que la solution existe et que je la mettrai à disposition (surement dans le wiki) dans pas longtemps.
Stephane
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Je pose la question au cas où...
Est-ce que la procédure se fait sur un site vierge? Ou même sur un site avec tout plein de catégories, posts, pages statiques etc?
Parce que je suis en train de monter la nouvelle mouture d'un ancien site à moi et j'ai tout plein de truc à mettre en place avant de le mettre en ligne. En somme dois-je attendre ou pas? :P
Stéphane
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
C'est malin, je trépigne d'impatience maintenant :P
Merci encore
Le script de traduction en anglais de la partie publique de pluxml est disponible sur le wiki à cette adresse:
http://wiki.pluxml.org/?page=Traduire%20la%20partie%20publique%20de%20Pluxml
NB: Toute la partie administration n'est pas traduite et reste en français.
Stéphane
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Je peux désormais mettre tout ça en ligne
Merci encore. 1000 merci en fait et bien plus encore!
Quelqu'un l'a testé et chez tout fonctionne correctement?
Je dispose de la dernière version de EasyPHP avec PHP 5.2.8
J'ai bien renommé le fichier "translate_en.phps" en "translate_en.php" puis l'ai ouvert depuis le navigateur. J'ai le thème par défaut et un PluXml tout propre, même pas modifié :P
Y'a-t-il un truc que j'aurais fait de pas bien? A noter que j'ai testé ça en local seulement.
Merci pour toute lumière dans mon couloir des idées bien sombre
As-tu copié le fichier translate_en.php à la racine de ton pluxml, là où il y a les fichiers index.php, config.php, etc... ?
C'est normal que le fichier s'affiche en couleur si tu as fait un clic sur le lien. Il faut faire bouton droit, puis "Enregistrer la cible du lien sous..."
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
en fait, j'obtiens exactement le même résultat que lorsque l'on clique sur le fichier lui-même depuis ton lien source. D'après ce que je comprend, il ne semble pas trouver les fihciers index.php, config.php etc.
Merci
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci de ton aide
- Comments Offline devrait être 'Offline Comments'
- la pagination n'est pas traduite, il manque ' sur ' => ' on '
Donc voila ma version du script avec les changements:
<?php /** * Script de traduction en anglais de la partie publique de Pluxml * @version 1.0 * @date 20/10/2009 * @author Stephane F **/ $VERSION = '4.2'; // n° de version de Pluxml define('PLX_ROOT', './'); ?> <?php if (!isset($_POST['step1']) OR empty($_POST['step1'])) : ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Script de traduction du core de Pluxml <?php echo $VERSION ?></title> </head> <body> <h2>Script de traduction du core de Pluxml version <?php echo $VERSION ?></h2> <form method="post" action=""> Démarrer la traduction ? <input type="submit" name="step1" value="Ok" /> <br /> <a href="<?php echo PLX_ROOT ?>">Retour au site</a> </form> </html> <?php die(); endif; ?> <?php include_once(PLX_ROOT.'config.php'); include_once(PLX_ROOT.'core/lib/class.plx.utils.php'); # Tableau des fichiers à traduire $files = array( # 'index du tableau $lang' => 'nom du fichier' 'index' => PLX_ROOT.'index.php', 'plxCapcha' => PLX_ROOT.'core/lib/class.plx.capcha.php', 'plxDate' => PLX_ROOT.'core/lib/class.plx.date.php', 'plxFeed' => PLX_ROOT.'core/lib/class.plx.feed.php', 'plxMotor' => PLX_ROOT.'core/lib/class.plx.motor.php', 'plxShow' => PLX_ROOT.'core/lib/class.plx.show.php', 'plxUtils' => PLX_ROOT.'core/lib/class.plx.utils.php', ); # Tableau contenu les chaines à traduire par fichier $lang = array( 'index' => array( # 4.2 'Le fichier cible Pluxml est introuvable' => 'Target Pluxml file not found' ), 'plxCapcha' => array( # 4.2 'dernière' => 'last', 'première' => 'first', 'deuxième' => 'second', 'troisième' => 'third', 'quatrième' => 'fourth', 'cinquième' => 'fifth', 'sizième' => 'sixth', 'septième' => 'seventh', 'huitième' => 'eighth', 'neuvième' => 'ninth', 'dixième' => 'tenth', '\'.ème\'' => '\'.th\'', 'Quelle est la' => 'What is the', 'lettre du mot' => 'letter of the word' ), 'plxDate' => array( # 4.2 'janvier' => 'january', 'février' => 'february', 'mars' => 'march', 'avril' => 'april', 'mai' => 'may', 'juin' => 'june', 'juillet' => 'july', 'août' => 'august', 'septembre' => 'september', 'octobre' => 'october', 'novembre' => 'november', 'décembre' => 'december', 'lundi' => 'monday', 'mardi' => 'tuesday', 'mercredi' => 'wednesday', 'jeudi' => 'thursday', 'vendredi' => 'friday', 'samedi' => 'saturday', 'dimanche' => 'sunday', ), 'plxFeed' => array( # 4.2 'Le fichier' => 'The file', 'est necessaire au fonctionnement de Pluxml' => 'is required', "Les URLs privees n\'ont pas ete initialisees dans vos parametres d\'administration" => 'PRIVATE URLs have not been initialized in your administration settings', 'Non classé' => 'Not classified', 'Accueil' => 'Home', ' - Commentaires hors ligne' => ' - Offline comments', ' - Commentaires' => ' - Comments', '\'par \'' => '\' by \'', '\' le \'' => '\' - \'', ), 'plxMotor' => array( # 4.2 'Le fichier' => 'The file', 'est necessaire au fonctionnement de Pluxml' => 'is required', 'Cette catégorie est inexistante' => 'This category does not exist', 'Aucun article pour cette page' => 'No articles for this page', "Cet article n\'existe pas ou n\'existe plus" => 'This article does not exist or no longer exists', "Le commentaire est en cours de modération par l\'administrateur de ce site" => 'The commentary is moderated by the administrator of this site', "Cette page n\'existe pas ou n\'existe plus" => 'This page does not exist or no longer exists', 'Cette page est actuellement en cours de rédaction' => 'This page is currently being drafted', 'Le document spécifié est introuvable' => 'The document specified was not found', "Une erreur s\'est produite lors de la publication de ce commentaire" => 'An error occurred while publishing this comment', 'Merci de remplir tous les champs obligatoires requis' => 'Thank you to fill all required field', 'La vérification anti-spam a échoué' => 'Wrong anti-spam verification' ), 'plxShow' => array( # 4.2 '#nb article(s)' => '#nb article(s)', '#nb catégorie(s)' => '#nb categories', '#nb commentaire(s)' => '#nb comment(s)', 'Accueil' => 'Home', 'Non classé' => 'Not classified', 'Fil Rss des articles de cette catégorie' => 'RSS feed articles of this category', 'Fil des articles de cette catégorie' => 'Feed articles of this category', 'Fil Atom des articles de cette catégorie' => 'Atom feed articles of this category', 'Fil des articles de cette catégorie' => 'Feed articles of this category', 'Fil Atom des articles' => 'Atom feed articles', 'Fil des articles' => 'Feed articles', 'Aucun article' => 'No article', 'Fil Rss des commentaires de cet article' => 'RSS feed comments of this article', 'Fil des commentaires de cet article' => 'Feed comments of this article', 'Fil Rss global des commentaires' => 'Global Rss Feed of the comments', 'Fil des commentaires' => 'Feed comments', 'Fil Atom des commentaires de cet article' => 'Atom feed comments of this article', 'Fil des commentaires de cet article' => 'Feed comments of this article', 'Fil Atom global des commentaires' => 'Global Atom feed of the comments', 'Fil des commentaires' => 'Feed comments', 'Aucun commentaire' => 'No comment', "' pour '" => "' for '", 'Lire :' => 'Read :', 'Aller à la première page' => 'Go to the first page', '< précédente' => '< previous', 'Page précédente' => 'Previous page', 'suivante >' => 'next >', 'Page suivante' => 'Next page', 'Aller à la dernière page' => 'Goto the last page', ' sur ' => ' on ' ), 'plxUtils' => array( # 4.2 'est accessible en écriture' => 'is writable', "n\'est pas accessible en écriture" => 'is not writable', ) ); class plxTranslate { var $files = null; # tableau contenant la liste des fichiers à traduire var $lang = null; # tableau contenant les chaines à taduire /** * Constructeur qui initialise la variable de classe * * @param files tableau contenant la liste des fichiers à traduire * @param lang tableau contenant les chaines à taduire * @return null * @author Stephane F **/ function plxTranslate($files, $lang) { $this->files = $files; $this->lang = $lang; } #------------------- # méthodes privées #------------------- /** * Méthode qui traduit un fichier de Pluxml * * @param index index du tableau Lang à lire * @param filename nom du fichier qui va etre traduit * @param content contenu du fichier à traduire * @return stdout * @author Stephane F **/ function _translate($index, $filename, $content) { $err = false; echo '<strong>Traduction du fichier '.$filename.' en cours...</strong><br />'; foreach($this->lang[$index] as $k => $v) { if (strpos($content, $k)) { echo ' '.$k.' => '.$v.'<br />'; $content = str_replace($k, $v, $content); } else { $err = true; echo ' <span style="color:#ff0000">Erreur, chaine non trouvée : '.$k.'</span><br />'; } } if (plxUtils::write($content, $filename)) { if ($err) echo 'Traduction du fichier '.$filename.' terminée avec des <strong>erreurs</strong><br /><br />'; else echo 'Traduction du fichier '.$filename.' terminée avec <strong>succès</strong><br /><br />'; } else echo '<strong>Impossible de traiter le fichier '.$filename.'</strong><br /><br />'; } #---------------------- # méthodes publiques #---------------------- /** * Méthode qui traduit l'ensemble des fichiers de Pluxml * * @param null * @return null * @author Stephane F **/ function Translate() { foreach($this->files as $index => $filename) { if (file_exists($filename)) { $handle = fopen($filename, "r"); $content = @fread($handle, filesize($filename)); fclose($handle); $this->_translate($index, $filename, $content); } } } } #---------------------- # Programme princial #---------------------- ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Script de traduction du core de Pluxml <?php echo $VERSION ?></title> </head> <body> <h2>Résultats de la traduction</h2> <?php $plxTranslate = new plxTranslate($files, $lang); $plxTranslate->Translate() ?> <p><a href="<?php echo PLX_ROOT ?>">Retour au site</a></p> </body> </html>En tout cas merci pour ce script, ça épargne pas mal de boulot. Je suis assez surpris des baisses de performance quand vous avez tenté l'internationalisation, gettext est pourtant pas très "lourd" !C'est moi qui te remercie pour avoir signaler les 2 corrections dans la traduction.
Je mettrai à jour le wiki
Merci
Stéphane.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Donc voila ce qui est modifié (c'est plus lourd que précédemment):
'Fil Rss des articles de cette catégorie' => 'This category\\\'s RSS feed',
'Fil des articles de cette catégorie' => 'This category\\\'s feed',
'Fil Atom des articles de cette catégorie' => 'This category\\\'s Atom feed',
'Fil des articles de cette catégorie' => 'This category\\\'s feed',
'Fil Atom des articles' => 'Articles Atom feed',
'Fil des articles' => 'Articles feed',
etc. (la construction peut paraître bancale mais c'est vraiment ça)
[...]
'Le document spécifié est introuvable' => 'The specified document was not found',
[...]
'Merci de remplir tous les champs obligatoires requis' => 'Please fill up all mandatory fields',
[...]
'Non classé' => 'Unclassified',
Voila, proofread 2 times et testé sur un core tout neuf:
<?php /** * Script de traduction en anglais de la partie publique de Pluxml * @version 1.0 * @date 20/10/2009 * @author Stephane F **/ $VERSION = '4.2'; // n° de version de Pluxml define('PLX_ROOT', './'); ?> <?php if (!isset($_POST['step1']) OR empty($_POST['step1'])) : ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Script de traduction du core de Pluxml <?php echo $VERSION ?></title> </head> <body> <h2>Script de traduction du core de Pluxml version <?php echo $VERSION ?></h2> <form method="post" action=""> Démarrer la traduction ? <input type="submit" name="step1" value="Ok" /> <br /> <a href="<?php echo PLX_ROOT ?>">Retour au site</a> </form> </html> <?php die(); endif; ?> <?php include_once(PLX_ROOT.'config.php'); include_once(PLX_ROOT.'core/lib/class.plx.utils.php'); # Tableau des fichiers à traduire $files = array( # 'index du tableau $lang' => 'nom du fichier' 'index' => PLX_ROOT.'index.php', 'plxCapcha' => PLX_ROOT.'core/lib/class.plx.capcha.php', 'plxDate' => PLX_ROOT.'core/lib/class.plx.date.php', 'plxFeed' => PLX_ROOT.'core/lib/class.plx.feed.php', 'plxMotor' => PLX_ROOT.'core/lib/class.plx.motor.php', 'plxShow' => PLX_ROOT.'core/lib/class.plx.show.php', 'plxUtils' => PLX_ROOT.'core/lib/class.plx.utils.php', ); # Tableau contenu les chaines à traduire par fichier $lang = array( 'index' => array( # 4.2 'Le fichier cible Pluxml est introuvable' => 'Target Pluxml file not found' ), 'plxCapcha' => array( # 4.2 'dernière' => 'last', 'première' => 'first', 'deuxième' => 'second', 'troisième' => 'third', 'quatrième' => 'fourth', 'cinquième' => 'fifth', 'sizième' => 'sixth', 'septième' => 'seventh', 'huitième' => 'eighth', 'neuvième' => 'ninth', 'dixième' => 'tenth', '\'.ème\'' => '\'.th\'', 'Quelle est la' => 'What is the', 'lettre du mot' => 'letter of the word' ), 'plxDate' => array( # 4.2 'janvier' => 'january', 'février' => 'february', 'mars' => 'march', 'avril' => 'april', 'mai' => 'may', 'juin' => 'june', 'juillet' => 'july', 'août' => 'august', 'septembre' => 'september', 'octobre' => 'october', 'novembre' => 'november', 'décembre' => 'december', 'lundi' => 'monday', 'mardi' => 'tuesday', 'mercredi' => 'wednesday', 'jeudi' => 'thursday', 'vendredi' => 'friday', 'samedi' => 'saturday', 'dimanche' => 'sunday', ), 'plxFeed' => array( # 4.2 'Le fichier' => 'The file', 'est necessaire au fonctionnement de Pluxml' => 'is required', "Les URLs privees n\'ont pas ete initialisees dans vos parametres d\'administration" => 'PRIVATE URLs have not been initialized in your administration settings', 'Non classé' => 'Unclassified', 'Accueil' => 'Home', ' - Commentaires hors ligne' => ' - Offline comments', ' - Commentaires' => ' - Comments', '\'par \'' => '\' by \'', '\' le \'' => '\' - \'', ), 'plxMotor' => array( # 4.2 'Le fichier' => 'The file', 'est necessaire au fonctionnement de Pluxml' => 'is required', 'Cette catégorie est inexistante' => 'This category does not exist', 'Aucun article pour cette page' => 'No articles for this page', "Cet article n\'existe pas ou n\'existe plus" => 'This article does not exist or no longer exists', "Le commentaire est en cours de modération par l\'administrateur de ce site" => 'The commentary is moderated by the administrator of this site', "Cette page n\'existe pas ou n\'existe plus" => 'This page does not exist or no longer exists', 'Cette page est actuellement en cours de rédaction' => 'This page is currently being drafted', 'Le document spécifié est introuvable' => 'The specified document was not found', "Une erreur s\'est produite lors de la publication de ce commentaire" => 'An error occurred while publishing this comment', 'Merci de remplir tous les champs obligatoires requis' => 'Please fill up all mandatory fields', 'La vérification anti-spam a échoué' => 'Wrong anti-spam verification' ), 'plxShow' => array( # 4.2 '#nb article(s)' => '#nb article(s)', '#nb catégorie(s)' => '#nb categories', '#nb commentaire(s)' => '#nb comment(s)', 'Accueil' => 'Home', 'Non classé' => 'Unclassified', 'Fil Rss des articles de cette catégorie' => 'This category\\\'s RSS feed', 'Fil des articles de cette catégorie' => 'This category\\\'s feed', 'Fil Atom des articles de cette catégorie' => 'This category\\\'s Atom feed', 'Fil des articles de cette catégorie' => 'This category\\\'s feed', 'Fil Atom des articles' => 'Articles Atom feed', 'Fil des articles' => 'Articles feed', 'Aucun article' => 'No article', 'Fil Rss des commentaires de cet article' => 'This article\\\'s comments RSS feed', 'Fil des commentaires de cet article' => 'This article\\\'s comments feed', 'Fil Rss global des commentaires' => 'Global comments RSS feed', 'Fil des commentaires' => 'Comments Feed', 'Fil Atom des commentaires de cet article' => 'This article\\\'s comments Atom feed', 'Fil des commentaires de cet article' => 'This article\\\'s comments feed', 'Fil Atom global des commentaires' => 'Global comments Atom feed', 'Fil des commentaires' => 'Comments feed', 'Aucun commentaire' => 'No comment', "' pour '" => "' for '", 'Lire :' => 'Read :', 'Aller à la première page' => 'Go to the first page', '< précédente' => '< previous', 'Page précédente' => 'Previous page', 'suivante >' => 'next >', 'Page suivante' => 'Next page', 'Aller à la dernière page' => 'Go to the last page', ' sur ' => ' on ' ), 'plxUtils' => array( # 4.2 'est accessible en écriture' => 'is writable', "n\'est pas accessible en écriture" => 'is not writable', ) ); class plxTranslate { var $files = null; # tableau contenant la liste des fichiers à traduire var $lang = null; # tableau contenant les chaines à taduire /** * Constructeur qui initialise la variable de classe * * @param files tableau contenant la liste des fichiers à traduire * @param lang tableau contenant les chaines à taduire * @return null * @author Stephane F **/ function plxTranslate($files, $lang) { $this->files = $files; $this->lang = $lang; } #------------------- # méthodes privées #------------------- /** * Méthode qui traduit un fichier de Pluxml * * @param index index du tableau Lang à lire * @param filename nom du fichier qui va etre traduit * @param content contenu du fichier à traduire * @return stdout * @author Stephane F **/ function _translate($index, $filename, $content) { $err = false; echo '<strong>Traduction du fichier '.$filename.' en cours...</strong><br />'; foreach($this->lang[$index] as $k => $v) { if (strpos($content, $k)) { echo ' '.$k.' => '.$v.'<br />'; $content = str_replace($k, $v, $content); } else { $err = true; echo ' <span style="color:#ff0000">Erreur, chaine non trouvée : '.$k.'</span><br />'; } } if (plxUtils::write($content, $filename)) { if ($err) echo 'Traduction du fichier '.$filename.' terminée avec des <strong>erreurs</strong><br /><br />'; else echo 'Traduction du fichier '.$filename.' terminée avec <strong>succès</strong><br /><br />'; } else echo '<strong>Impossible de traiter le fichier '.$filename.'</strong><br /><br />'; } #---------------------- # méthodes publiques #---------------------- /** * Méthode qui traduit l'ensemble des fichiers de Pluxml * * @param null * @return null * @author Stephane F **/ function Translate() { foreach($this->files as $index => $filename) { if (file_exists($filename)) { $handle = fopen($filename, "r"); $content = @fread($handle, filesize($filename)); fclose($handle); $this->_translate($index, $filename, $content); } } } } #---------------------- # Programme principal #---------------------- ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Script de traduction du core de Pluxml <?php echo $VERSION ?></title> </head> <body> <h2>Résultats de la traduction</h2> <?php $plxTranslate = new plxTranslate($files, $lang); $plxTranslate->Translate() ?> <p><a href="<?php echo PLX_ROOT ?>">Retour au site</a></p> </body> </html>Encore merci
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
There's no update available. Sorry.
But english translation will be include in the next release of PluXml
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
--
If you need somebody to translate, I can help