Pour commencer, vous devez repérer le répertoire de votre thème. Si vous
n'avez pas isolé vos fichiers de thèmes, vos thèmes sont installés dans le
répertoire /dotclear/themes/
. Chaque thème a son propre répertoire
dans ce thème, avec un nom correspondant. Trouvez le répertoire correspondant
au thème utilisé sur votre blog.
Pour ajouter des expressions traduites dans les thèmes, coller le code suivant dans le fichier _public.php situé dans le répertoire de votre thème. Si ce fichier n'est pas présent, le créer et y coller ceci :
<?php # empêcher l'exécution du fichier en dehors de Dotclear if (!defined('DC_RC_PATH')) {return;} l10n::set(dirname(__FILE__).'/locales/'.$_lang.'/public'); ?>
Créer ensuite un répertoire locales/fr
(un répertoire
locales
et un répertoire fr
dans le répertoire
locales
) à la racine du thème. Puis créer un fichier nommé
public.po
dans le répertoire fr
, sur le modèle
suivant :
msgid "CHAÎNE EN ANGLAIS" msgstr "CHAÎNE EN FRANÇAIS" msgid "UNE AUTRE CHAÎNE EN ANGLAIS" msgstr "UNE AUTRE CHAÎNE EN FRANÇAIS"
Notez que le texte à traduire est toujours en anglais.
Par exemple pour traduire le mot Home
par Accueil
en
français :
msgid "Home" msgstr "Accueil"
Pour traduire des chaînes déjà existantes, utilisez l'éditeur de thème fourni avec Dotclear et cherchez les
chaînes de caractères présentes dans les balises {{tpl:lang ...}}
des fichiers template. Si vous utilisez le thème par défaut de Dotclear,
l'éditeur de thème ne sera pas disponible mais vous pourrez voir les fichiers
template dans le dépôt de Dotclear. Une fois que vous aurez repéré la chaîne à
traduire, vous n'aurez plus qu'à ajouter la chaîne que vous souhaitez traduire
dans le fichier public.po
, en suivant le même modèle
qu'au-dessus.
Pour ajouter d'autres chaînes et les traduire, ajoutez la chaîne de caractères dans un fichier template, par exemple :
<p>{{tpl:lang Welcome!}}</p>
Puis traduisez la chaîne dans le fichier public.po
:
msgid "Welcome!" msgstr "Bienvenue !"
Commentaires
Bonjour
c'est où l'endroit voulu s'il te plait ? dans quel fichier tpl et où ça dans ce fichier ? A-t-on un moyen de se repérer ?
par ex. remplacer "Tags" et aussi "tous les tags" : où est-ce ? dans Tag ou tags ? et où dedans ces fichiers ?
et "sous-catégories" ?
et entre quoi et quoi l'insérer ? ou entre quelles balises ? est-ce que tu pourrais donner une règle d'ensemble ?
Merci beaucoup
@Eiko : pour se repérer dans les fichiers template il faut utiliser les radiographies des thèmes.
Pour remplacer ici (si tu ne trouves pas : c'est dans le fichier public.po).
ou il faut connaître la chaîne en anglais. Pour , c'est ... . Pour c'est plus compliqué car le texte se trouve dans le widget d'un plugin, on ne le trouve pas dans les fichiers template. En fait, il faut traduire . Pour les sous-catégories, tu trouveras la chaîne en anglais en cherchant grâce à la fonction "Rechercher" de ton navigateur dans un des fichiers disponiblesAvec la méthode décrite au-dessus, toutes les traductions se font dans le fichier
public.po
. On peut aussi modifier le fichier template pour modifier la chaîne et la traduire ensuite, mais c'est plus compliqué. Pour un thème qu'on ne distribue pas, on peut s'en passer.Merci Moe Je vais m'y plonger dès que possible. A bientôt.
Bonjour,
Je voudrais changer 3 traductions dans mon thème mais je ne vois pas où je dois insérer les
(dans quels fichiers et à quels endroits) pour les traductions suivantes:- msgid "no comment"
- msgid "HTML code is displayed as text and web addresses are automatically converted."
- msgid "Remember me on this blog"
Si quelqu'un peut m'aider?
Merci.
@Gwenn : si ces chaînes sont déjà présentes dans tes fichiers, tu dois juste les traduire comme dans le tutoriel au-dessus. Tu n'auras pas besoin de rajouter de balise
{{tpl:lang …}}
Merci pour ta réponse Moe. :)
Mais ça ne fonctionne pas pour moi:
- j'ai bien créé mes deux dossiers "locales" -> "fr",
- j'y ai ensuite mis un fichier public.po (j'ai pris celui de Dotclear que j'ai modifié avec Wordpad):
msgid "no comment"
msgstr "ajouter un commentaire"
msgid "HTML code is displayed as text and web addresses are automatically converted."
msgstr "Vous devez indiquer une adresse email.
Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées."
msgid "Remember me on this blog"
msgstr "Se souvenir de mes informations"
- et j'ai créé un fichier public.php à la racine de mon thème (pareil, fichier piqué à Dotclear et modifié avec Wordpad):
(A traduire sans les changements wiki bien-sûr)
Après ça j'ai vidé le cache du thème, actualisé mes pages ... et rien ne change.
Est-ce que ça peut venir de Wordpad qui n'est pas fait pour encoder le .po correctement?
Est-ce que je me suis trompée dans le chemin du fichier public.php? Sachant que mon thème est à la base de mon domaine à côté de Dotclear ...
Wordpad, laisse tomber, oui. Utilise plutôt un éditeur de texte avancé comme Notepad++ et pense à enregistrer en UTF-8 sans BOM ;-)
Merci Lomalarch :) , j'ai recommencé avec Notepad++ en UTF-8 sans BOM et ça ne marche toujours pas ...
Le fichier s’appelle bien
_public.php
– avec le _ au début du nom ?Maintenant oui ... et ça marche très bien, merci! ;)
Bonjour,
J'ai créé un fichier "_nav.html" dans le dossier "tpl" du thème "demo1" afin d'éviter de répéter le menu dans les fichiers du thème (j'ai remplacer le menu initial par
{ {tpl:include src="_nav.html"}}
dans les fichiers du thème) et j'ai voulu traduire les différents items.Il a fallu, en plus d'effectuer les manipulations que vous décrivez, que je complète le fichier "public.lang.php" qui se situe dans le dossier "locales/fr/" (ajout d'index en anglais correspondant aux items dans le tableau $GLOBALS), pour que ça fonctionne.
Il est pourtant indiqué de ne pas modifier ce fichier. Mais avant ma modif, la traduction ne marchait pas.
Pouvez-vous me dire si j'ai bien fait, et sinon, ce que ça implique et ce que je dois modifier ?
Merci pour votre aide.
Bonsoir,
non, tu n’as pas bien fait : la modification des fichiers livrés avec Dotclear entraîne mécaniquement des complications lors de la mise à jour (il faut refaire les modifications et ça bloque la mise à jour automatique).
Le _public.php est en place ? Que contient-il exactement ? Et as-tu bien créé le public.po comme indiqué ?
Bonsoir,
Merci de ta réponse. Je m'en doutais un peu, mais je n'ai pas trouvé mieux.
Le fichier _public.php est en place dans le dossier "themes/demo1/". Il contient le code suivant :
Le fichier public.po existe dans le dossier "locales/fr/" et j'y ai ajouté les lignes suivantes (qui correspondent aux items de mon menu) :
Le fichier "_nav.html" que j'ai créé, se trouve dans le dossier "themes/demo1/tpl" et il est appelé par tous les autres situés au même niveau (home.html, 404.html, archives.html, etc.) par la ligne de code que j'ai cité dans mon précédent post.
Voilà, tu sais tout. Où est-ce que je me suis planté ?
Cordialement.
On parle bien d’un fichier
public.po
dansthemes/demo1/locales/fr
? Ce point de ta réponse est ambigu ;-)Merci pour ta remarque Lomalarch, j'avais lu trop vite et pas remarqué que le dossier "locales" devait être mis à la racine du thème
personnellement ça a réglé mon problème.
Il n'y a pas un moyen moins complexe car j'avoue que ca me dépasse là.
@Manu : as-tu essayé de suivre le guide point par point ? À quelle étape es-tu bloqué ?
Bonjour,
Si vous êtes intéressés de traduire logiciels pour Internet, pour PC, pour mobiles ou tout autre type de logiciels, je vous recommandons chaleureusement le nouvel instrument numérique ”l10n” que mon équipe a récemment créé – et qui a toutes les chances de rendre vos activités de bureau bien plus faciles et rapides.
http://poeditor.com/
POEditor est intuitif, basé sur travail en collaboration. Il comprend de nombreuses fonctions qui puissent vous soutenir lors du processus de gestion de traductions, que vous pourriez découvrir sur notre page Internet.Vous pouvez importer depuis multiples types de fichiers de localisation (pot, po, xls, xlsx, strings, xml, resx, properties) ou se servir directement de notre REST API.
N’hésitez pas de l’essayer et/ou le proposer aux développeurs ou, en général, a ceux qui en seraient intéressés.