Index du Forum » » English and others languages Support

Auteur

Fichiers a modifier pour un multilangage pour REvolution
xyzold
0  

  Posté : 12-12-2010 20:16

Bonjour Jpb

Je suppose que ton post ci-dessous est toujours valide pour REvolution
Je vais assayer d'installer en local la langue allemand

Merci

C'est le genre d'info à ajouter dans la bible.


--------- Ton Post du 08-02-2005 ------------------

Petit rappel : NPDS utilise plusieurs moyens de traduction. Le plus important est l'utilisation de la fonction translate (qui puise ces ressources dans les fichiers lang), mais il utilise aussi les balises langues dans certain cas. Ces balises réservées d'ordinaire aux auteurs, rédacteurs et administrateurs pour la traduction du contenu seront aussi utilisées pour la traduction de certaine partie de la structure pour les thèmes, les blocs, et l'affichage des titres des fenêtre du navigateur. Aussi l'ensemble de l'implémentation d'une nouvelle langue va se faire au moyen de ces deux techniques plus une petite retouche graphique.

L'implémentation d'une nouvelle lang pour NPDS se résume donc à :

1) créations de 5 nouveaux fichiers lang (ou malang* est le nom de votre nouvelle langue)
dans le dossier : npds/language/
editor-english.php dupliquer/renommer editor-malang.php
lang-adm-english.php dupliquer/renommer lang-adm-malang.php
lang-french.php dupliquer/renommer lang-malang.php
pp-lang-french.php dupliquer/renommer pp-lang-malang.php
push-lang-french.php dupliquer/renommer push-lang-malang.php

2) traduction des ressources de ces 5 fichiers lang

3) un cas particulier le fichier npds/language/lang-multi.php
Comme son nom l'indique ce fichier contient certaines ressources traduites dans toutes les langues disponible dans NPDS. Ici il faut donc rajouter un case dans le switch de la fonction translate_ml($u_langue, $message)
par exemple :
case "malang":
switch($message) {
case "Abonnement": $tmp="Subscribe"; break;
case "Le titre de la derniËre publication est": $tmp="xxx..."; break;
case "L'URL pour cet article est : ": $tmp="xxx..."; break;
case "Vous recevez ce Mail car vous vous Ítes abonnÈ ‡ : ": $tmp="xxx..."; break;..............etc
}
break;

4) contrôle de disponibilité de votre langue pour l'éditeur tiny-mce ou traduction (plusieurs fichiers...) si non disponible...
En cours de test de fonctionnement du multilangue de tiny-mce dans le contexte de NPDS...

5) adaptation du thème
traduction des éléments du thème
theme statique utilisation de la fonction translate()
theme dynamique utilisation des balises langues

6) traduction des ressources (utilisation des balises langue[french][/french][navajo][/navajo] etc...) de : themes/pages.php
=> ceci permet une traduction du titre de la fenêtre du navigateur en fonction de la page appelée (si elle est bien entendue implémentée dans pages.php).Voir l'exemple de pages.php implémentés en 3 langues dans la future sable)
NB: les ressources doivent être en html NCRs (hexa ou decimal &#x...; ou &#[0-9];)

7) reste un petit exercice graphique pour fabriquer les boutons du menu et du forum

création d'un dossier malang dans images/menu et à vos editeurs graphiques pour créer les fichiers suivants (à part l'index bien sûr)...
malang:
comment.gif
conf_comments.gif
index.html
moderate.gif
result.gif
vote.gif


création d'un dossier malang dans images/forum/icons à vos editeurs graphiques pour créer les fichiers suivants (à part l'index bien sûr)...
malang:
delete.gif
index.html
msg_read.gif
new_topic.gif
reply.gif
reply_locked.gif
send.gif


8) Pour tous les modules (de base de NPDS) c'est pour l'instant une autre histoire...on a encore beaucoup de travail...Car si certain respecte une structure bien établi d'autres ne sont pas multilangues ou n'ont pas besoin de traduction...
Voici un petit résumé encore un peu superficiel

Dans la liste des modules ci-dessous :
- appel à la fonction translate() ou/et la fonction adm-translate() (càd utilisant les ressources des fichier npds/language/lang-xxx.php ou/et npds/language/lang-adm-xxx.php) ces modules ne doivent poser aucun problèmes.(sauf oublie éventuel d'une des deux fonctions pour la traduction d'une occurence)

- appel à la fonction module-xxx-translate()
ne doivent poser aucun problèmes.(sauf oublie éventuel de la fonction pour la traduction d'une occurence).Ici la procédure est la même que pour NPDS : module-xxx-english.php dupliquer/renommer module-xxx-malang.php et ...traduire...

- aucun appel de traduction ??
soit le module n'a pas besoin de traduction soit elle n'est pas implémentée...ces modules nécessitent donc une analyse plus poussée et pour certains des corrections

-les modules ou pseudo modules suivant nécessiteront plus de travail en cours de test...
glossaire, phpBB2, ppm...


les modules:
24-counter: aucun appel de traduction ?? (à implémenter pour le texte de l'email à l'administrateur et pour present.php)
aide-contextuelle: aucun appel de traduction ??
archive-stories: appel à la fonction translate()
bloc-notes: aucun appel de traduction ??
block-scroll-article: aucun appel de traduction ??
block-User_Info: appel à la fonction Block_User_Info_translate()
blog: appel à la fonction translate()
cluster-paradise: aucun appel de traduction ??
contact: aucun appel de traduction ??
encapsuleur: appel à la fonction projet-translate()
freespeaking: appel à la fonction free-translate()
glossaire: appel à la fonction translate() qui marche et à la fonction glo-translate() qui ne marche pas...
!!include!!: aucun appel de traduction directe à définir dans les fichiers inclus...
ipban: appel à la fonction ipban-translate()
links: appel à la fonction translate()
marquetapage: appel à la fonction translate()
meta-lang: appel à la fonction translate()
phpBB2: utilise une fonction de traduction propre à phpBB2 ?? (pas fait de test avec le chinois les ressources existent dans de nombreuses langues...)
ppm: utilise une fonction de traduction dérivé de PostNuke?? il faut de toute manière retoucher le code pour implémenter une nouvelle langue de plus les ressources langues ne fonctionnent pas en utf8...pour l'instant conversion du fichier lang/fra.php en html (NCRs) au lieu d'une combinaison d'entités html et de texte
psul: aucun appel de traduction??
sform: appel aux fonctions adm-translate() et translate()
track-visitor:aucun appel de traduction ??
upload: appel à la fonction upload_translate()


Notes et remarques :
attention :
- une faute de syntaxe dans un fichier langue et c'est la page blanche (avec ou sans message d'erreur)...
- une faute dans l'équilibrage (balance) des balises langues et c'est le navigateur qui déraille et une page impossible à charger...
- pour l'instant les fichiers langues doivent impérativement être écrit en html avec utilisation de NCRs et non pas d'entités.
- une utilisation de langue non latine signifie de fait une conversion des bases de données NPDS en utf8 (en cours de développement)

* malang est de préférence : le nom de la langue en anglais ou le code lang conformément à ISO 639-1 (http://www.loc.gov/standards/iso639-2/englangn.html#top)...

Voili j'ai probablement oublié des choses mais c'est déjà une bonne base pour commencer merci de vos commentaires...

jp
--------------
Sujet complet ici : http://www.npds.org/viewtopic.php?topic=15474&forum=32



Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=24984&forum=32