Le recap de l'atelier prévu, coupé court par des problèmes techniques ! Les slides étaient conçus pour accompagner une démonstration - pour toute question emailme@jennybeaumont.com
Quand on parle de traduction…
• Le contenu du site : articles, pages, custom post types,
custom fields, widgets, formulaires, etc.
• Les meta données : contenus dans le header du site, ainsi
que dans les images (y compris le titre et descriptif du site
WordPress).
• Les chaînes de caractères front-end : textes intégrés dans
les thèmes et extensions qui s’affichent sur le site.
• Les chaînes de caractères back-end : textes intégrés dans
les thèmes et extensions qui s’affichent dans l’admin.
WP Compatibility Installer
Extension pour l’installation et la mise à jour des différents
composants.
http://wp-compatibility.com/installer-plugin/
Désormais compatible avec multisite (depuis le v0.7.1)
1.
2.
3.
4.
Réglages > Installer : décoche « Enable sending compatibility
reports »
« Log-in to their repositories » ou Réglages > Repositories
Log in : nom d’utilisateur et mot de passe du compte WPML
« Install plugins from WPML.org » ou Extensions > Ajouter >
Search in repositories (choisir WPML pour limiter l’affichage)
WPML Multilingual CMS
1. Définir sa langue de base
2. Définir ses langues de traductions (toujours
possible d’en ajouter plus tard)
3. Options de base
a)
b)
c)
d)
Affichage du sélecteur de langue et son aspect
Gestion des Articles/Pages sans traduction
Afficher de liens dans les Articles (pour naviguer)
CSS supplémentaire
> Peut être installé sur un site existant ayant déjà du
contenu.
WPML Multilingual CMS
Après validation, d’autres réglages de Langues :
1.
2.
3.
4.
5.
6.
7.
8.
9.
Langues disponibles et leur nomenclature
Format d’URL (fait attention aux permaliens)
Options du sélecteur de langue : Emplacement / affichage, Ordre, Style, Contenu,
Gestion des contenus sans traduction, Conservation de paramètres URL (variables
passés), CSS
Langue d’admin
Affichage d’articles
Masquer langues
Comptabilité thèmes*
Redirection
Options SEO (hreflang https://support.google.com/webmasters/answer/189077?hl=fr
, rel=canonical https://support.google.com/webmasters/answer/139394?hl=fr )
WPML Multilingual CMS
•
•
•
•
Localisation du thème et des modules d’extension
Options de traduction (merge avec Translation management)
Synchronisation des menus
Traduction de taxonomie
> Il y a toujours différentes façons de faire, différents moyens
d’arriver à une fin. Le choix se fait par préférence et par
contexte.
Détails techniques
• Crée 17 nouvelles tables dans la bdd
+ 5 de l’Installer
• Contenus liés par groupe ‘trid’ >
icl_translations
> Où element_id = post_ID
Comprendre l’interface:
traduction des contenus
•
•
•
•
Status : états de traductions
Affichage de langue admin (une ou « toutes les langues »)
Accès depuis la liste d’Articles ou de Pages
Accès depuis l’Article ou la Page
– Désormais, il est possible d’utiliser le même URL (slug) pour un Post ou une
Page.
• Traduire les taxonomies (Catégories et Mots-clés)
– La relation entre taxonomies traduites doit être définie sous Catégories ou
sous Mots-clés. Il ne suffit pas de créer des nouvelles catégories ou tags lors
de la rédaction ou traduction d’un Article.
– NB: il est impossible d’utiliser le même identifiant (slug) pour une taxonomie
et sa traduction. C’est une contrainte de WordPress. Seul le nom peut être
identique.
WPML Media
• Traduire les données sans copier l’image physique
• Les pièces jointes sont enregistrées comme des « posts »
(post_type=attachment), rattachées via post_parent. Les
traductions sont simplement des nouveaux enregistrements.
• Les choix peuvent varier de langue en langue (et donc de trad en
trad)
• Options par défaut avec possibilité de mettre à jour (traduire)
médias existants
NB: l’Article ou Page doit être publiée d’abord. Ne fonctionne pas sur brouillon.
WPML String Translation vs. MO
•
•
•
•
On peut tout traduire depuis WPML,
mais devrait-on ?
Une grande partie du travail est déjà fait
Quelles personnalisations éventuelles ?
Qui va faire ce travail ? Penser à l’utilisateur
Question de performance : MO FTW
> Mais pour le reste, WPML donne l’interface
Translation Management
• Nécessaire pour faire fonctionner certains
d’autres extensions, telle que GravityForms
Mulitlingual
• Définir les éléments traduisibles
• Définir une liste de traducteurs
• Allouer les projets de traduction à un traducteur
Astuce : define("ICL_DONT_PROMOTE", true); pour cacher
les services externes de traduction proposés
Compatibilité des thèmes/plugins
•
•
•
•
Localisation : _e(), __() + text domain
Respecter l’API WordPress
Créer un fichier de configuration de langue
Opter pour l’ajustement d’IDs automatique
(ou pas)
• icl_register_string(), icl_t()
http://wpml.org/documentation/theme-compatibility/go-globalprogram/
Fichier de configuration (XML)
•
•
•
•
•
Custom fields
Custom post types
Custom taxonomies
Textes de l’admin / wp_options
Configuration du sélecteur de langue
Télécharger fichier d’exemple :
http://d2salfytceyqoe.cloudfront.net/wpcontent/uploads/2010/10/wpml-config.zip
Ajustement manuel des IDs
icl_object_id(ID, type, return_original_if_missing, language_code)
• ID : l’ID de l’article, page, mot-clé ou catégorie
• type : ‘post’, ‘page’, ‘post_tag’ ou ‘category’
• return_original_if_missing : true si WPML devrait retourner
l’ID du contenu d’origine si la traduction n’existe pas, ou false
si WPML devrait retourner NULL dans ce cas.
• language_code (en option) : si défini, force la langue du objet
retourné et peut être différent que la langue affichée.
http://wpml.org/documentation/support/creating-multilingual-wordpressthemes/language-dependent-ids/
Ajustement manuel des IDs
Ex : icl_object_id(3, 'category', false)
Retourne l’ID de la catégorie qui est la traduction de catégorie 3, et s’il
n’existe pas, il retourne NULL.
Pour l’utilisation dans un thème :
Retourne l’ID de la catégorie traduite ou celui de la catégorie d’origine. Si
WPML n’est pas installé, seul l’ID de la catégorie de base est retourné.
Comment faire traduire mon
thème ou plugin?
http://translate.wordpress.org/projects
http://wp-translations.org