Il n'y a pas de véritable tutorial.
Le code de base — JText::_('MONTEXTE') — permet d'insérer à n'importe quel endroit du code en php un contenu de type langue, example dans milkyway :
Code:
<?php echo JText::_('Powered by') ?>
Un fichier de langue ini nommé par rapport au type d'extension (ici fr-FR.tpl_rhuk_milkyway.ini) est composé de chaines du type:
Code:
POWERED BY=Propulsé par
(au fait cette chaine manque dans nos fichiers langues fr-FR 
De plus les fichiers install contiennent des champs qui sont aussi à traduire et n'ont pas besoin de JText
Dans le cas de submitmailer, le gus a fait l'impasse, anglocentrisme oblige...
son install file contient par exemple:
Code:
<param name="pass" size="40" type="text" label="Approval password" description="For security reasons, change the password to some random numbers/letters." default="enter_random_password_here"/>
Les tags "label" (qui apparaissent en tête de chaque paramètre) et "description" (qui apparaissent en overlib quand on survole lesdits noms de paramètres) sont traduisibles, pas le tag "default".
Aller dans Configuration globale->Système-> Paramètres de débogage et cocher les deux boites, sauvegarder.
Puis allez dans la fenêtre d'édition du plugin, interface en français ou anglais:
Vous remarquerez que toutes les chaines non traduites sont entourées de ? ? tandis que celles qui le sont sont entourées de • •
La liste des chaines non traduites et aussi présentée au bas de l'écran:
Dans notre cas:
Code:
•Chaînes non traduites•
APPROVAL PASSWORD ::() [:]
APPROVAL PASSWORD ::() [:]
APPROVE VIA EMAIL ::() [:]
APPROVE VIA EMAIL ::() [:]
CUSTOM EMAIL ADDRESS ::() [:]
CUSTOM EMAIL ADDRESS ::() [:]
DEFINE CUSTOM EMAILS IN THE TEXTBOX BELOW ::() [:]
ENTER THE EMAIL MESSAGE FOR A NEW CONTENT ITEM.VALID PARAMETERS: {USERNAME}, {TITLE}, {SECTION}, {CATEGORY}, {INTROTEXT}, {FULLTEXT} ::() [:]
ENTER THE EMAIL MESSAGE FOR AN UPDATED CONTENT ITEM.VALID PARAMETERS: {USERNAME}, {TITLE}, {SECTION}, {CATEGORY}, {INTROTEXT}, {FULLTEXT} ::() [:]
ENTER THE EMAIL SUBJECT FOR A NEW CONTENT ITEM.VALID PARAMETERS: {URL} ::() [:]
ENTER THE EMAIL SUBJECT FOR AN UPDATED CONTENT ITEM.VALID PARAMETERS: {URL} ::() [:]
FOR SECURITY REASONS, CHANGE THE PASSWORD TO SOME RANDOM NUMBERS/LETTERS. ::() [:]
NEW ITEM - MESSAGE ::() [:]
NEW ITEM - MESSAGE ::() [:]
NEW ITEM - SUBJECT ::() [:]
NEW ITEM - SUBJECT ::() [:]
NOTIFY ADMINS ::() [:]
NOTIFY ADMINS ::() [:]
NOTIFY ON CONTENT UPDATE ::() [:]
NOTIFY ON CONTENT UPDATE ::() [:]
SEND TO CUSTOM ADDRESS ::() [:]
SEND TO CUSTOM ADDRESS ::() [:]
SENDS A NOTIFICATION TO ALL SUPER ADMINISTRATORS ::() [:]
SEPARATE MULTIPLE ADDRESSES WITH SEMICOLON (;) ::() [:]
SET THIS OPTION TO 'NO' IF YOU DONT WANT TO BE INFORMED ABOUT UPDATED CONTENT ITEMS. ::() [:]
THIS OPTION ALLOWS YOU TO APPROVE ARTICLES BY CLICKING ON AN APPROVAL-LINK IN THE EMAIL. ::() [:]
THIS PLUGIN SENDS AN EMAIL NOTIFICATION TO ALL ADMINS WHEN A CONTENT ITEM GETS SUBMITTED IN THE FRONTEND ::() [:]
UPDATED ITEM - MESSAGE ::() [:]
UPDATED ITEM - MESSAGE ::() [:]
UPDATED ITEM - SUBJECT ::() [:]
UPDATED ITEM - SUBJECT ::() [:]
Il suffit donc de créer un fichier nommé:
fr-FR.plg_system_jp_submitmailer.ini
qui contiendra ces chaines:
Code:
# $Id: fr-FR.plg_system_jp_submitmailer.ini 2008-06-04
# author Joomla! Project
# copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.
# license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php
# Note : Tous les fichiers doivent être sauvegardés sous encodage UTF-8 no BOM
APPROVAL PASSWORD=Mot de passe d'approbation de la publication
etc.
Il n'est donc pas utile de mettre dans le fichier install des phrases complètes.
Example:
au lieu de:
Code:
description="For security reasons, change the password to some random numbers/letters."
mettre
Code:
description="Pass_Secure"
et le fichier ini contiendra:
Code:
PASS_SECURE=For security reasons, change the password to some random numbers/letters.
ou, en français :
Code:
PASS_SECURE=Pour raison de sécurité, changer le mot de passe en utilisant des lettres et chiffres au hasard.
Avant de faire un fichier ini, , pour éviter les doublons, il est bon de tester le débogage car certaines chaines peuvent être déjà traduites par les fichiers ini du Core.
Il est aussi bon de savoir qu'un fichier ini spécifique prendra le pas sur un fichier ini général. Donc une chaine identique dans fr-FR.ini sera changée par le contenu de l'ini de l'extension.
C'est
YES=Absolument
dans fr-FR.plg_system_jp_submitmailer.ini
qui prendrait l'avantage sur
YES= Oui
dans fr-FR.ini
----------
Concernant JCE, le problème est d'une autre nature car les fichiers langues disséminés n'utilisent pas le JText.
Le travail de Ryan Demmer serait beaucoup trop lourd s'il le faisait à chaque évolution de TinyMCE. Il y a aussi pas mal de soucis à transformer en JText des chaines présentes en javascript.
Néanmoins, certains fichiers langues manquent, en particulier les chaines de description générale qui, elles, dépendent des fichiers "install".