Extension xili-language : version 1.6.0 (compatible WP3.0)

17 septembre 2009 - 19:00 - - Cet article en anglais , spanish
xili-language - [Mis à jour = 23 juin 2010 - 21:15]
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).

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.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](http://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 1.6.0 (compatible WP3.0)
  2. [M. à j.] Publier en plusieurs langues : Avantages du couple Wordpress, xili-language
 
 
Tags: , ,
Pas de commentaires »

TrackBack URI

Ajouter votre commentaire