Information importante : date des articles et versions

Ce site est né il y a trois ans (WP 3.0) pour expliquer comment réaliser un thème enfant multilingue de twentyten. Depuis, le noyau a beaucoup évolué. Il en est de même pour xili-language.

Le thème exemple twentyten-xili proposé au téléchargement en version 3.0 utilise les dernières techniques (classes etc…) et est compatible 3.5+. Il est expliqué techniquement sur le site de twentythirteen-xili.

Ici, les articles qui concernent les versions antérieures sont laissées à titre pédagogique.

Donc pensez à scruter la date de l’article et les versions en cause !

M.

Publié dans Actualités | Laisser un commentaire

Qu’est-ce qu’un thème fils ? Exemple pour un site multilingue.

Cet article pour introduire une série afin d’expliquer comment avec quelques modifications et selon la voie du thème enfant (child theme) ne contenant que quelques fichiers adaptés, on peut créer facilement un site multilingue bien organisé.
Ici sur ce site, le thème enfant nommé twentyten-xili et son parent le thème par défaut twentyten.
Dans le fichier functions.php, quelques fonctions clefs sont ajoutées pour personnaliser les moyens procurés par l’extension xili-language. Le fichier fils style.css est très court et ne contient que les lignes pour formatter les items du menu de langues sous l’entête (ajouté automatiquement) et dans la barre latérale.

Prochain épisode : le thème fils et son style.

Publié dans Actualités | Marqué avec , , , | 2 commentaires

Ce site est mû par xili-language v. 2.5.0 [màj en 2.7.0]

Ce site set mû par la derrière version – 2.5.0 – de xili-language. Sa nouvelle interface facilite le travail des auteurs multilingues. Voir la présentation en anglais dans le nouveau xili-wiki.

New UI to edit post : language dashboard

New UI to edit post : language dashboard

Publié dans Actualités | Laisser un commentaire

xili-language version 2.1.0 !

Dispo dans le dépot des extensions WP (Other Versions)

Quoi de neuf dans cette nouvelle version ?

  • nouveau type de navigation ajouté dans xili_language_list pour les template, widget et le menu de navigation
  • choix possible du lieu d’insertion de la liste des langues si le thème contient plusieurs menu de navigation
  • quelques réparations

C’est quoi ces nouveaux types de navigation ?

Avant pour changer les comportements de navigation selon les langues, il fallait être technicien en php et wp. Cette version propose de nouveau type de liste de langues. Ainsi, avec les nouveaux types, il est possible en mode single de pointer vers l’article (s’il existe) dans l’autre langue. Cela complète ce qui existait pour les catégories ou l’accueil.

Nav Menu Updated

Nav Menu Updated

Qu’en est-il pour le thème exemple twentyten-xili thème enfant de twentyten ?

Il faut le mettre à jour : la version 1.3 de twentyten-xili.
Avant mise à jour des réglages et choix du nouveau type, rien de changé. Mais après la mise à jour, la balise qui pointait vers les autres posts disparait de sous le titre car le menu langues va pointer vers l’autre article (s’il existe)

Languages navigation before

Avant : navigation


From single to single with new settings

D'un article à un autre selon les langues

Les webmestres compétents en php et wp, sont invités à lire les sources de ce thème et voir comment dans functions.php and multilingual-functions.php, l’extension est ‘modifié’ via les ‘hooks’… etc…

Publié dans Actualités | Marqué avec , , , , | Laisser un commentaire

Episode n°6 : Thème fils, site internet multilingue, questions en vrac…

Dans les épisodes précédents, on a abordé les éléments essentiels pour construire un site multilingue avec la trilogie xili-language et en se basant sur le concept d’un thème enfant de twentyten livré par défaut avec le kit WP.

Maintenant, une petite pause pour quelques questions réponses…

Q : Quelles sont les modifications dans les fichiers du thème fils en comparant avec leurs homologues du dossier parent ? Pourquoi ?

R :Fichier par fichier pour des webmestres avec quelques connaissances en php :

  • category.php : Le titre et la description de la catégorie avant la liste des articles et de leur extrait dans la boucle (loop)
    twentyten

    <h1 class="page-title"><?php
    					printf( __( 'Category Archives: %s', 'twentyten' ), '<span>' . single_cat_title( '', false ) . '</span>' );
    				?></h1>
    				<?php
    					$category_description = category_description();
    					if ( ! empty( $category_description ) )
    						echo '<div class="archive-meta">' . $category_description . '</div>';

    twentyten-xili

    <h1 class="page-title"><?php
    					printf( __( 'Category: %s', 'twentyten' ), '<span>' . single_cat_title( '', false ) . '</span>' );
    				?></h1>
    				<?php
    					$category_description = trim(strip_tags(category_description()));
    					if ( ! empty( $category_description ) )
    						echo '<div class="archive-meta"><p>' . __($category_description,'twentyten') . '</p></div>';
  • page.php and single.php : insertion de la balise de thème xiliml_the_other_posts sous le titre pour afficher les liens vers les autres posts dans d’autres langues.
    twentyten-xili

    <div class="entry-meta">
    						<?php xiliml_the_other_posts($post->ID,"Read this post in"); ?>
    					</div><!-- .entry-meta -->

    et ajoute une classe pour le css des articles rtl (écriture de droite à gauche comme l’arabe)

    post_class(single_lang_dir($post->ID))

    (appel d’une fonction présente dans le fichier functions.php du thème enfant)

  • functions.php

    contient quelques fonctions pour éviter l’utilisation des fichiers de langue du parent, inclure la bibilothèque de code pour gérer les menus avec drapeau et pour enrichir le formulaire de recherche…

Q : Dans la constante WPLANG du fichier wp-config.php, il y a parfois, au lieu de 5, des codes en 2 lettres comme en japonais : que fait xili-language dans ce cas

R :
Avant la version 1.8.8, il était nécessaire de modifier wp-config.php (comme celui en japonais) et de changer la constante WPLANG de ja à ja_JA comme en ISO. Depuis la version 1.8.8, ce n’est plus nécessaire, xili-language le détecte et le gère.

Dès lors, il est maintenant aisé pour un site en japonais de devenir multilingue ou un autre d’ajouter le japonais comme ici en test.

exemple Welcome en japonais

exemple Welcome en japonais

Q : Qu’en est-il pour les textes des extensions ? Comment est-ce traité par xili-language ?
R : Compte-tenu de la foule innombrable des extensions et de leurs widgets, on peut tenter un premier classement :

  1. les extensions uni-lingue non prêtes pour être traduite tant sur le versant admin que sur celui des visiteurs
  2. les extensions ‘internationales’ prêtes pour être traduite (avec fichier .pot et la série .po) – probablement avec des items et termes traduisibles selon la langue côté utilisateur
  3. les extensions ‘internationales’ prêtes pour non seulement la traduction des termes de structure mais aussi le changement de langue live – fournissant des api pour aussi traduire les variables liées à la base de données du site.

Si un widget est bien conçu (extension de la classe widget) son titre est traduisible à la volée.
Pour les labels et descriptifs du widget ou de l’extension, s’ils répondent aux règles et fonctions gettext, xili-language va détourner leur domaine propre et utiliser celui du thème.
Il ne reste plus donc qu’à ajouter les termes (et leurs traductions cibles) via xili-dictionary et donc d’enrichir les fichiers .po et .mo…

Q : L’extension est-elle compatible avec la beta et prochaine WP 3.1 ?

R : Oui, sur nos serveurs locaux, les tests en mode mono et multisite confirment la compatibilité de WP 3.1 beta avec la trilogie xili-language.

Q: La compatibilité avec le mode multisite de WP 3.x network ?

R : Comme sur ce site ici même, la trilogie xili-language est compatible. Pour les services et le support, demander un devis (abonnement à prix raisonnable).

Q : Qu’en est-il de la modification rapide de la langue via la liste des articles ?

R : OUI, dès la très prochaine version 1.8.9… les moyens de crochetage (API) ayant été localisés !

quick-edit: pop-up to choose language in posts list

modification rapide de la langue via la liste des articles

Enfin maintenant très facile d’adapter la langue d’un article à partir de la liste des articles du tableau de bord !

Publié dans Mode d'emploi | Marqué avec , , | Laisser un commentaire

Episode n°5 : Etape des widgets et quelques trucs et astuces…

A la suite des épisodes précédents, maintenant, quand on navigue sur le site web test, l’essentiel des éléments changent de langue en synchronie avec celle de l’article affiché seule ou de la sous-sélection d’une liste liée à une catégorie sur le widget affichant la liste des langues est dans la colonne latérale.

Juste un rappel avant de poursuivre : ici pour les sujets traités, on utilise le thème livré par défaut dénommé twentyten et un thème fils de démo qui évite de modifier le parent. Il s’agit bien sûr d’exemples facilement transposables avec d’autres thèmes internationaux.

Les Widgets

Les résultats dépendent de la qualité de leur conception et du code php. Si c’est une classe extension de la classe widget par défaut, pas de problème pour le titre du widget :

Le titre

Dans le widget est instancié, ne pas oubliez les deux éléments suivants :
1) saisir le titre en anglais (comme la langue racine du thème et de WP)
2) ajouter ce titre et sa (ses) traduction(s) pour les .mo via xili-dictionary (or via poEdit and .po).

Les contenus des widgets

Le contenu affiché d’un widget dépend totalement de son objet. S’il utilise des étiquettes, espérons que son concepteur utilise les fonctions dites du groupe gettext. Si oui, super, mais du côté visiteur, ces fonctions utilisent le même domaine que le domaine pour le côté administration ! Mais, si dans xili-language >= version 1.8.7, dans la case Translation domains settings, c’est bien coché, alors l’extension va chercher les termes à traduire dans les fichiers .mo du thème dans lequel vous aurez pris soin d’ajouter les termes concernés et les traductions – grâce à xili-dictionary – bien pratique car on fait tout cela en ligne.

Les widgets xili-language

xili-language inclut 3 widgets ( Liste des langues, Liste des articles récents, Liste des commentaires récents ).
La Liste des langues fait ce que désigne ton titre.
Dans l’exemple ci-dessous, utilisant quelques fonctionnalités incluses dans l’exemple du thème fils twentyten-xili, il est possible d’afficher cette liste uniquement si une catégorie est montrée.

Comme xili-language dispose d’entrées api (hook) et est de ce fait fortement personnalisable, les développeurs peuvent concevoir un design très adapté selon le site, le thème et les exigences de la navigation dans ce même site.
xili-language widget

Affichage formatté (printf, sprintf)

Parfois, il se peut que vous ayez tenté de traduire ce qui est affiché par exemple “Protected”. Mais sans effet vu du visiteur ! C’est, en fait, parce que WP ou le plugin utilise l’écriture formatée avec intégration d’une variable. Dans l’exemple ci-dessous extrait d’un fichier .po, %s est le titre de l’article… Donc, dans la traduction (msgstr) n’oubliez pas d’ajouter ce %s au bon endroit pour la langue cible concernée. Dans xili-dictionary, quand on crée un texte, le bouton “Ecrire le texte original” permet d’insérer ce texte avec variable et format afin de n’y modifier que les termes et mots.

msgid "Private: %s"
msgstr "%s (accès privé)"
 
msgid "Protected: %s"
msgstr "%s (protégé)"

These translations work in WP php code like here :

$protected_title_format = apply_filters('protected_title_format', __('Protected: %s'));

style.css

Dans le fichier css ci-dessous, quelques commentaires pour ajouter le drapeau des langues non incluses dans l’exemple.

@charset "UTF-8";
 
/**
 * Theme Name: Twentyten-xili Multilingual Child
 * Theme URI: http://dev.xiligroup.com/
 * Description: Twentyten based but including features for multilingual context with xili-language plugin
 * Author: dev.xiligroup.com ms
 * Author URI: http://dev.xiligroup.com/
 * Version: 0.9
 * Tags: child theme, tabs, multilingual
 * Template: twentyten
 */
 
@import url('../twentyten/style.css'); /* the most important line of the style.css of a child from his parent twentyten */
 
 
/*** below : modification to add style for language list widget and language list automatically added in header menu ***/
 
/* some few modifications for xili-language list */
ul.xililanguagelist {list-style: none !important ; margin-left:0 !important ;}
 
/* example in header menu if filter xiliml_infunc_language_list is on - complete the list for the other languages used in the website */
 
ul.menu li.lang-fr_fr a {background: transparent url('images/flags/fr_fr.png') no-repeat center 13px;}
ul.menu li.lang-en_us a {background: transparent url('images/flags/en_us.png') no-repeat center 13px;}
ul.menu li.lang-de_de a {background: transparent url('images/flags/de_de.png') no-repeat center 13px;}
ul.menu li.lang-es_es a {background: transparent url('images/flags/es_es.png') no-repeat center 13px;}
 
li.lang-fr_fr:hover > a {background:  #333 url('images/flags/fr_fr.png') no-repeat center 13px !important;}
li.lang-en_us:hover > a {background:  #333 url('images/flags/en_us.png') no-repeat center 13px !important;}
li.lang-de_de:hover > a {background:  #333 url('images/flags/de_de.png') no-repeat center 13px !important;}
li.lang-es_es:hover > a {background:  #333 url('images/flags/es_es.png') no-repeat center 13px !important;}

ul.menu li.lang-fr_fr, ul.menu li.lang-en_us, ul.menu li.lang-de_de, ul.menu li.lang-es_es {text-indent:-9999px; width:18px;}
 
/** © dev.xiligroup.com 2010-1-20 **/

Pour ajouter une langue, ajouter le drapeau dans le sous-dossier /images/flags/ du thème contenant le fichier style.css. Dans le fichier css, dupliquer une ligne du premier groupe et changer les noms par exemple -es_es en -it_it si l’italien est la langue cible. Idem pour le second groupe et ajouter ,ul.menu li.lang-it_it à la fin de la dernière ligne avant “{“. Le premier groupe de lignes montre les drapeaux, le second change le fond si hover et la longue ligne “sort” le texte afin qu’il soit invisible…

Prochaine étape Q & R

Publié dans Mode d'emploi | Marqué avec , , | Laisser un commentaire