Extension xili-language : version 2.2 (compatible WP3.2)

xili-language vous permet de créer et gérer un site web WP en plusieurs langues avec votre thème ou la plupart des célèbres thèmes localisables. L’extension xili-language permet la création d’un site multilingue grâce à la sélection automatique des fichiers .mo du thème selon la langue de(s) l’article courant(s). N’oubliez pas de visiter ce site de démo documenté… !

Description

Logo xili-languageLogo xili-language

L’extension xili-language permet une gestion dynamique en temps réel des fichiers de langue (.mo) du thème courant et donc transforme le site en site multilingue selon la langue du (des) articles.

Un thème ‘traduisible’ peut ainsi être aisément transformé en un thème multilingue temps réel.
Cette extension est destinée aux webmestres et créateurs de thème pour site blogue ou de type CMS qui contiennent des articles de différentes langues et qui souhaitent organiser le site selon la langue des internautes visiteurs. L’extension ajoute des outils qui permettent aux menus et contextes d’être dans la langue de l’article et de sa partie. Les catégories sont traduites. xili-language procure aussi un certain nombre de techniques d’ancrage (hook) qui permettent une personnalisation très fine (sans modifier le code php de l’extension) pour un créateur de sites comportant plusieurs parties en langue différente.
Avec l’extension xili-tidy-tags [ici], il est aussi possible de présenter des sous-nuages (cloud) de mots clés selon leur langage. Avec xili-dictionary (version beta), il est aussi possible de générer les fichiers .po et .mo en temps réel via l’interface d’administration sans faire appel à des logiciels résidents sur l’ordinateur.
L’extension xili-language ne crée pas de nouvelles tables dans la base de données WordPress et utilise uniquement les puissantes possibilités de la taxinomie interne et ses tables existantes. xili-language ne modifie pas la structure de l’interface auteur qui reste donc compatible avec l’application WordPress iPhone – iPod Touch pour ajouter les brouillons que le redacteur en chef pourra affecter et relier entre langues.
Pour les webmestres et les développeurs de thèmes, un article de synthèse est disponible.

Nouveau !

Pensez à lire la version anglaise de ce texte qui est à jour et traduite avec quelques délais en français.

1.8.1

La compatibilité avec WP 3.0 (mode mono ou multisite) permet de gérer les menus de navigation, les « custom type », l’automatisation du paramétrage du thème par défaut et les thèmes enfant (child theme).

1.5.5

Les versions 1.5.x, tout en restant compatible WP 2.9.x, incorporent progressivement les nouveautés possibles avec WP 3.0 tant en mode monosite que multisite (wpmu). N’hésitez pas à faire part de vos observations.

1.4.1

Correction d’un oubli pour la traduction du titre de fenêtre (wp_title) dans le cas de l’affichage des catégories.
Ajout d’une option permettant de forcer la langue des derniers articles affichés dans la page d’accueil (basé sur home.php).
Un nouveau widget pour les articles récents (pour corriger un pb de celui disponible par défaut dans WP – tracs #12320) avec en sus la possibilité de choisir la langue. On peut ainsi avoir ceux dans une autre langue que celle courante. Donc ne pas utiliser le widget WP.

xili-language : le widget Articles récentsxili-language : le widget Articles récents

1.3.1

L’interface auteur permet en un seul click de créer les articles liés à remplir dans d’autres langues – voir ce texte -.

1.1.8, 1.1.9

Quelques nouveautés pour cette version intermédiaire (avec tests pour le futur WP 2.9).
– options pour les tests avec l’extension « Cache Translation Object » du suédois Johan.
– corrections des défauts de traduction du « title » des liens des archives mensuelles en cas de permalinks sans la balise /%post_id%/. Des permaliens très particuliers peuvent nécessiter l’utilisation du hook ‘xiliml_get_archives_link’.
– détection automatique (au prix de 50 lignes php supplémentaires) du domaine du thème et du sous-dossier des langues (fichiers .mo). L’ancienne méthode par déclaration des constantes reste valide.
– Ajout de fonctions spéciales (bibliothèques partagées – exemple d’un ‘shortcode’ pour insérer un lien dans le texte sur l’article lié – et fonctions ‘Or’) pour les webmestres et créateurs de thèmes qui sont décrites dans ces articles.

1.1

Cette version améliore la fonction / balise de thème «  xiliml_the_others_posts() »
(affiche les liens des articles liés dans une autre langue)

  1. pour être utilisé en sous-titre dans une liste contenant des articles de différences langues
  2. en renseignant le paramètre « type » en array, la fonction retourne un tableau des langues et id des articles liés à celui en cause (array of lang and id ) – Cet ID est aisément transformable en permalink viaget_permalink() dans votre code php via ce tableau.
    IMPORTANT : Si vous avez « hooké » cette fonction dans votre thème, vous devez réviser votre function « hookante » (qui reste fonctionnelle) dans functions.php pour inclure les options qui retournent le tableau (et non affiche la liste des liens).
1.0

Wordpress 2.8 venant de sortir, la version de xili-language prend le numéro 1.0. L’extension est compatible aussi bien pour la 2.7.x que la 2.8.
Le choix de la langue de la page d’accueil d’un site est maintenant définissable via l’interface de réglages mais est toujours possible via des règles logiciels soit de base soit via les API (hook) que le webmestre designer ajoute.

0.9.9.6

Le widget de la liste des langues est « pluriel ». Il peut y avoir plusieurs widgets s’il y a plusieurs menus latéraux ou en en tête. Par défaut, le type ‘typeone’ donne une liste qui n’affiche que les autres langues que celle en cours et si une catégorie est affichée, les liens ne dirigent que vers les articles dans l’autre langue sur la dite catégorie. L’utilisation des API (ancrage ou hook) permet une personnalisation comme sur le site ici (en haut et à droite…).
Un nouvel article sur les balises de modèle (thème) en anglais à ce jour

0.9.9.5

Possibilité de modifier un article lié d’une autre langue directement.
lien de modification de l'article liélien de modification de l'article lié

Compatibilité php4 pour des hébergeurs du siècle précédent !
0.9.9.4
Un nouveau widget pour les commentaires récents sélectionnant ceux uniquement dans la langue courante. (une fonction `xiliml_recent_comments()` est aussi disponible si vous voulez créer vos propres balises à partir du tableau d’objets résultants. Sous-sélection d’archives via `wp_get_archives()` avec &lang= : voir la note ici.

If frontpage is a page, select correlated page according language see Other notes.
0.9.9.3
sub selection of pages for `wp_list_pages()` with &lang=, some fixes (other posts, options when activate,…)
Example 1 :

wp_list_pages('title_li=&lang='.the_curlang() );

will display only pages of current lang
Example 2 :

wp_list_pages('title_li=&setlang=0&lang='.the_curlang() );

will display pages of current lang AND pages with lang undefined (polyglot pages).

and soon examples how to install selected rss as visible here in the left sidebar.

0.9.9.2

fixe class of metabox has-right-sidebar for 2.8 – some other admin UI sizing, W3C – improved template-tag default function `xiliml_the_other_posts()` display (if you had hook it in previous version, verify the hook of your functions.php, see php code lines 1314, 1650).

0.9.9

now provides infos about **text direction** *ltr* ou *rtl* of languages (arabic, hebraic,…) of theme and of each post in loop see note [direction in installation](http://wordpress.org/extend/plugins/xili-language/installation/). Soon more infos and demos for designers if multilingual theme. Some fixes (thanks to Jacob about QuickEdit UI bug when post update).

Installation

1. Télécharger sur le serveur le dossier contenant `xili-language.php` et autres fichiers dans le répertoire `/wp-content/plugins/`,
2. Vérifier que le thème est ‘international’ compatible avec des fonctions comme `_e(‘the term’,’mytheme’)` et non des descriptifs codés en dur entre les balises html –
3. déclarer le nom de domaine du thème (voir note plus bas),
4. Activer l’extension,
5. Aller dans le menu Réglages, Langage du tableau de bord et ajouter vos langues (description iso) dans la liste par défaut. L’ordre des langues peut-être choisi (1,2,3…) . (utilisable dans la balise de modèle `language_attributes()` – template_tag -.
6. Dans chacun des articles sélectionner la langue via la boite en haut à droite.

NOTE SPECIFIQUE pour la version 1.1.9 et suivantes

Il y a maintenant détection automatique (au prix de 50 lignes php supplémentaires) du domaine du thème et du sous-dossier des langues (fichiers .mo). L’ancienne méthode par déclaration des constantes reste toutefois valide.
Il reste donc nécessaire d’encapsuler la fonction load_theme_textdomain() comme dans cet exemple pour le thème nommé fusion:

if (!class_exists('xili_language')) { // class in not (!) present...
   load_theme_textdomain('fusion', get_template_directory() . '/lang');	
}
NOTE IMPORTANTE

Dans le fichier functions php du thème : remplacer en la commentant la ligne `load_theme_textdomain` `//load_theme_textdomain(‘mythemename’); ` par un *define* `define(‘THEME_TEXTDOMAIN’,’mythemename’); //second text must be used in theme texts with _e( , ) or __( , )` where ‘mythemename’ is `’kubrik’` in default international theme.

Un autre exemple avec le thème fusion qui est ‘international’ :

remplacer

function init_language(){
	load_theme_textdomain('fusion', get_template_directory() . '/lang');
}

par

function init_language(){
	if (class_exists('xili_language')) {
		define('THEME_TEXTDOMAIN','fusion');
		define('THEME_LANGS_FOLDER','/lang');
	} else {
	   load_theme_textdomain('fusion', get_template_directory() . '/lang');	
	}
 
}

voir l’article [recent post](https://dev.xiligroup.com/?p=427 « Transform a theme with localization »).

Détection du navigateur
Utilisez la case à cocher dans la boite de réglage.

Le sens d’écriture (depuis 0.9.9)

Exemples pour des webmestres dont les articles comportent des langues de sens d’écriture variable (arabe, hébreu, persan,…) :

<?php 
	$themelangdir = ((class_exists('xili_language')) ? the_cur_lang_dir() : array ()) ; ?>
<div class="inside <?php echo $themelangdir['direction'] ?>">
...

example in loop :

<?php while (have_posts()) : the_post(); 
$langdir = ((class_exists('xili_language')) ? get_cur_post_lang_dir($post->ID) : array());
?>
      <div class="story <?php echo $langdir['direction'] ?>" >

petit exemple dans le css :

.rtl {direction: rtl; text-align:right !important; font-size:130% !important;}
.ltr {direction: ltr; text-align:left !important;}

Caution : multilingual theme with both ltr and rtl texts needs a rigourous structure of the css !

Sélection des archives selon la langue des articles

Les balises de modèle Archives sont très complexes en arrière plan et ne sont pas facilement ‘crochetables’ par les extensions comme xili-language (sauf à refaire des codes titanesques) . Aussi, on a décidé d’ajouter quelques petites spécifications: en ajoutant des clés de recherche dans la variable de wp_get_archives, il est possible d’afficher des sous-ensembles des archives mensuelles selon la langue choisie.

wp_get_archives('..your.vars..&lang=fr_fr')

ou selon la langue en cours du thème

wp_get_archives('..your.vars..&lang=')

Les liens de la liste sont traduits et seuls les articles du mois dans cette langue sont affichés.

WordPress 2.8 beta : qu’en est-il ?

A ce jour, xili-language est ‘compatible’ avec la beta 2 et des thèmes utilisant les fonctions de traduction _e() et __() et des fichiers .mo.

Q. & R.

Est-ce que les fonctions et règles du noyau de l’extension sont modifiables sans y toucher ?

Oui par les développeurs de thèmes. Le script php de l’extension est documenté et décrit les méthodes d’accrochage/ancrage via add_action ou add_filter pour les fonctions essentielles de xili-language. Voici un exemple pour créer une liste des langues avec vos propres drapeaux.

Où peut-on voir des sites fonctionnant avec xili-language ?

D’après les statistiques de téléchargement lors des mises à jour, il y en a près de 150 mais voici les nôtres :
dev.xiligroup.com ( « why xili-language ? »)
et
www.xiliphone.mobi ( « a theme for mobile ») qui est aussi adapté à la navigation avec un iPhone ou un iPod Touch.

Copies d'écran

1. un exemple de dossier wp-content/themes avec un thème contenant des fichiers de langue (.mo)
an example of wp-content/themes folderan example of wp-content/themes folder
2. L’écran de paramétrage
the admin settings UIthe admin settings UI
3. La boîte de choix des langues dans l’écran de rédaction d’un article
the language setting in post writting UIthe language setting in post writting UI
4. Extrait de codage php dans un thème ‘international’ du domaine ‘xiliphone’
coding extract with 'international' text in 'xiliphone' themecoding extract with 'international' text in 'xiliphone' theme
5. Interface de réglage : assignation du langage par défaut au langage du navigateur de l’internaute.
Admin Tools UI - pre-set default language of author according his browser's language.Admin Tools UI - pre-set default language of author according his browser's language.
6. xili-tidy-tags : une extension compatible pour regrouper les mots-clés selon les langues
xili-tidy-tags : Admin Tools UI - see this compatible plugin to group tags according languagesxili-tidy-tags : Admin Tools UI - see this compatible plugin to group tags according languages
7. xili-dictionary : admistration de l’extension gérant les dictionnaires multilingues et générant les fichiers .mo
xili-dictionary : Admin Tools UI - list of translated termsxili-dictionary : Admin Tools UI - list of translated terms

Autres infos

Que se passe-t-il sur la page d’accueil est une « page » ?

Depuis la 0.9.9.4, l’extension intègre des outils qui étaient auparavant possible grâce aux potentialités des accrochages (hook) dans les fonctions et méthodes de xili-language. Cette page doit donc avoir son clone dans les autres langues. Comme pour les articles, selon les règles choisies, si le visiteur navigue via un navigateur en français, si elle existe la page en français lui sera affichée. Un article plus détaillé sera publié prochainement pour les néophytes du php.

N’hésitez pas à lire les articles et notes concernant l’extension xili-language ici.

voir sur le [WordPress plugins forum].

Téléchargement

La version courante est disponible sur le catalogue des extensions de WordPress.org.

 
 
Cet article est dans la série – xili-language pour les auteurs :
  1. Extension xili-language : version 2.2 (compatible WP3.2)
  2. [M. à j.] Publier en plusieurs langues : Avantages du couple Wordpress, xili-language
 
 
Ce contenu a été publié dans xili-language, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

5 réponses à Extension xili-language : version 2.2 (compatible WP3.2)

  1. Mike dit :

    it is working fine now. I have updated to WP 3.0.1 and your plugin. I really like it! Thanks for looking!

  2. Patrick dit :

    Shouldn’t we read, on this very page, puisqu’elle est rédigée en français:

    Lire cet article en anglais ou en espagnol…

    plutôt que

    Read this post in english , spanish ?

    Et puisqu’il est question de multilinguisme, sachez que les fameux drapeaux sont tout à fait à proscrire, et devraient disparaître de tout outil voué à la traduction. D’ailleurs je ne comprends pas pourquoi cette étrange façon de faire persiste encore aujourd’hui.

    Réf.:
    http://www.cs.tut.fi/~jkorpela/flags.html
    http://www.useit.com/alertbox/flagproblem.html
    http://bit.ly/knZMPm

    Merci pour le plugin

    Patrick

  3. xiligroup dev dit :

    Comme les cordonniers, le webmestre ici n’a pas eu le temps d’affiner les traductions… En ce qui concerne l’usage des drapeaux, de base xili-language n’en fournit pas. Ils sont ici à titre d’exemple pour les codeurs… qui sauront avec le directeur éditorial du site choisir ou non des drapeaux ou les substantifs appropriés… Si xili-language est basé sur les codes iso c’est en effet qu’il peut par exemple choisir fr_be, fr_ca et fr_fr… et croyez moi dans certains métiers, il y a des nuances et des faux amis !
    Michel

  4. alfa dit :

    Bonjour,

    J’ai installé votre plugin et crée mes pages en remplissant les id pour chaque langue, mais je ne trouve pas le code que je doit mettre sur mes drapeaux qui sont dans le fichier header.php qui me permettait sur chaque page d’avoir le lien vers la page dans une autre langue en cliquant sur le drapeau.

    Français
    Anglais
    Allemand

    merci d’avance pour votre réponse

  5. xiligroup dev dit :

    La réponse à votre question se trouve dans le « readme » et l’onglet installation sur le repository et dans le code source : c’est le template tag xili_language_list(). qui construira cette liste automatiquement. En lisant le code autodocumenté, en connaisseur du php, vous découvrirez sans difficulté les paramètres éventuels à adapter…

    bonne suite..

    Autres liens disponibles outre ce site :
    https://dev.xiligroup.com/?p=1432
    http://multilingual.wpmu.xilione.com/

Laisser un commentaire