codeur:module:multilangue

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
codeur:module:multilangue [Mar. 17, 2007 03:45 PM UTC ] – créée titocodeur:module:multilangue [Dec. 17, 2024 06:57 PM UTC ] (Version actuelle) jpb
Ligne 1: Ligne 1:
-====== Multilangue ======+====== Traduction ======
 Les modules de NPDS peuvent être codés de manière à fonctionner en plusieurs langues. En fait, ce tutorial relève plutôt d'une technique de codage plutôt que d'une fonction de NPDS, mais il peut vous être utile si vous souhaitez créer un module multilangue. Les modules de NPDS peuvent être codés de manière à fonctionner en plusieurs langues. En fait, ce tutorial relève plutôt d'une technique de codage plutôt que d'une fonction de NPDS, mais il peut vous être utile si vous souhaitez créer un module multilangue.
 +Ce tutorial suppose donc que vous ayez quelques connaissances en PHP.
 +
 +
 +
 +
 +
 +
  
-Ce tutorial suppose donc que vous ayez des connaissances en PHP. 
  
 ===== Dossier lang ===== ===== Dossier lang =====
-Nous vous conseillons de créer un dossier lang dans le dossier de votre module. Ce dossier contiendra les différents fichiers de traduction.+Créer un dossier "langdans le dossier de votre module. Ce dossier contiendra les différents fichiers de traduction.
  
-Nous vous conseillons de créer un fichier pour chaque langue, et dans chaque fichier déclarer une fonction de traduction.+Créer un fichier pour chaque langue, et dans chaque fichier déclarer une fonction de traduction. Le choix du nom de cette fonction est important ! Aussi assurer vous de lui attribuer un nom unique (court et explicite) de préférence en utilisant un préfixe (court) faisant référence à votre module exemples : geo_translate, geo_traduire, gal_translate, gal_traduire, mod_translate, quiz_translate ... 
 +  
 +* Règle de nommage des fichiers langues : à ce jour le nom du fichier lang doit être le nom de la langue en anglais ex : french, spanish, chinese...etc suivi de l'extension .php. Mais ici aussi un préfixe (court) faisant référence au module est une bonne idée ..
  
-**Exemple:** fichier /modules/monModule/lang/english.php +**Exemple :** fichier /modules/monModule/lang/english.php 
-<code php><?php+<code php> 
 +<?php
 /*********************************************************/ /*********************************************************/
 /* Fichier permettant de traduire mon module en anglais  */ /* Fichier permettant de traduire mon module en anglais  */
Ligne 20: Ligne 29:
         default: $tmp='Translation undefined: <b>'.$str.'</b>'; break;         default: $tmp='Translation undefined: <b>'.$str.'</b>'; break;
     }     }
-    return($tmp);+   if (cur_charset=="utf-8") { 
 +      return utf8_encode($tmp); 
 +   } else { 
 +      return ($tmp); 
 +   }
 } }
 ?></code> ?></code>
Ligne 30: Ligne 43:
 /********************************************************/ /********************************************************/
 function mod_translate($str) { function mod_translate($str) {
-    return($str);+if (cur_charset=="utf-8") { 
 +    return utf8_encode($str); 
 + } else { 
 +    return ($str); 
 + }
 } }
 ?></code> ?></code>
 +
 +Il est important de noter que le fichier french.php ne contient en fait aucune traduction puisque la langue des messages se trouvant dans le code PHP de votre module est le Français (logique donc).
 +
 +
 +
  
 ===== Traduire ===== ===== Traduire =====
Ligne 44: Ligne 66:
 /* Mon module qui dit bonjour et au revoir */ /* Mon module qui dit bonjour et au revoir */
 /*******************************************/ /*******************************************/
 +if (file_exists('modules/'.$ModPath.'/lang/'.$language.'.php')) {
 include_once('modules/'.$ModPath.'/lang/'.$language.'.php'); include_once('modules/'.$ModPath.'/lang/'.$language.'.php');
 +}
 +else {
 +include_once('modules/'.$ModPath.'/lang/french.php');
 +
 +
 +include('header.php');
 echo mod_translate('Bonjour').'<br />'; echo mod_translate('Bonjour').'<br />';
 echo mod_translate('Au revoir'); echo mod_translate('Au revoir');
 +include('footer.php');
 ?></code> ?></code>
 +La condition : if (file_exists()), est nécessaire pour éviter la génération d'une erreur php en cas d'absence du fichier langue demandé.
 +
 +{{tag>[code modules traduction]}}
  • codeur/module/multilangue.1174146322.txt
  • Dernière modification : Mar. 17, 2007 03:45 PM UTC
  • de tito