ZdMultilang is a Multilingual plugin for Wordpress allowing you to blog in more than one language. You can define multiple languages and translate posts/tags/categories using the interface that will be added to your blog’s administration panel.
After doing so, your readers will be given the possibility to choose their language using a widget, or directly within posts using options.
1. Installation
To install the plugin, just put the files into your wp-content directory and activate the plugin.
2. Usage
In order to make the plugin work, you first have to setup languages to be used. To do so, go to the Language tab in your admin panel, then Languages as shown below:

Once you are there, just add the languages to you installation. To add languages, you have to fill all fields.
- Language Name is used to display the language in a human friendly way.
- Language Code is the international code used to translate your text, you can get a list of possible languages here. This code is also used to translate the blog so make sure you have translation files installed as described on the previous page. This code is also used to display the flags.
- Permalink is a compulsory value, be aware that not filling this field will result in a major bug with your wordpress installation as rewrite_rules are overwritten using these permalinks. This value can be anything you want (for example: fr or french or français). This will be used to generate urls such as /en/zdstats or /english/zdstats, etc…
- Default language is used to tell the plugin that this language is supposed to be the one you’re writing in wordpress “normal” manage part. Note that you can have only one default language at a time.
Once you have setup your languages, you can now start to translate your items. For this operation, just go to the Translations page for tags/categories/link categories or Posts & Pages for posts and pages translations. Then just click on the corresponding language you want to localize.
Term translation (tags, categories and link categories).
To translate these elements, you just have to go to the translations tab, select the category of elements you need to update and then click on its name. This will show you the translation page for terms :

Post translation (Posts and pages).
To translate a post or a page, you have to go to the Post & Pages tab and then click on the corresponding translate link for you post as can be seen here :

There are two state as you can see, when the translate icon is present, this means this post has not been translated yet. When you have the edit link, this just means there is a translation and you can edit it.
Clicking on the original title will enable you to edit the original post.
Note that when translating a post/page the original content will be displayed on top of it and the visual editor will be available as in the original post editor.
3. Options
There are a few options for this plugin and they will allow you to customize your blog.
- Default language is the language that is used by default, see description on Chapter 2.
- Show language switcher in posts will allow you to display links/icons somewhere in each post to allow you to change the current language. By setting this to Hide, this will not be displayed.
- Language Switcher position will define where on each post you want to see it (top or bottom of each psots).
- Show language name in switcher will display or not the Language name inside the link
- Show Flags in switcher will display the flag inside the link. You can have either one of these, or both.
- Language Switcher CSS class will allow you to define which CSS class will be used to display the language switcher, so that you can make it look the way you want.
For example, on Zen-Dreams, I have Show language switcher on, display on top of posts and do not show names.

You can also add a Widget onto your sidebar to allow your users to change current language.
4. F.A.Q
How to determine which language code I have to use ?
Language code is the one that will be used by Wordpress to translate the interface. For exemple, English language code is en_US. French is fr_FR and belgium French is fr_BE…
Can I have multiple languages for the same permalink ?
No permalinks are unique, so are the Language codes. But permalink is limited to 50 characters, therefore you can do a lot with these codes.
5. Downloading the plugin
You can download it on the official Wordpress plugin directory.
6. Screencast
ZdMultilang presentation Video from Anthony PETITBOIS on Vimeo.
Do you like my work ? Why not donate ?
Français
[...] ZDMultilang : Celui ci vous permet de configurer autant de langues que vous le souhaiter et de traduire vos articles, catégories et tags dans ces langues. [...]
dommage de ne pas disposer d’une F.A.Q digne de se bon ni d’aucune explication supplémentaires á revoir… :-)
Jorge, j’avoue ne pas encore avoir eu le temps de faire une FAQ mais j’y travaille, toutefois, je penses que le plugin est relativement simple à utiliser.
Bonjour, comment faire pour n’afficher les drapeaux qu’en haut du site… ? et pas sur chaque poste ?
Car si je les enlèves des postes, il n’y plus de drapeaux,,
Merci
Sinon, ca marche super!!
[...] documentation is available here in english and here in [...]
Hello Anthony.
First I have to say that I this plugin alot :)
I just have one issue with it. The flags close to the language appear twice. You can take a look at my website. Please help me resolve this as soon as possible.
Thanks alot :)
Ljesh,
I don’t see it twice, I only see the flag once for each language.
when I try to add a language named with non-latin characters, it’s shown as ????????
I have solved my problem by setting “LanguageName” column collation to ‘utf8_unicode_ci’
bonjour anthony
Ce plugin est très intéressant cependant lorsque je l’active l’administration passe en anglais.
Une idée?
Serge, oui, c’est normal, pour qu’il passe en Francais, il faut définir la langue fr_FR et l’etablir comme langue par défaut.
[...] ZDMultilang – in mehreren Sprachen bloggen. [...]
[...] Instalação [...]
I am using wordpress 2.6 and your latest ZdMultilang plugin. A few strange things happen:
I am seeing two flags.
The Dutch flag is not showing, although I added the language with the correct Language code (nl_NL)
English is the ddeault language, but when I press the Dutch language in the widget, I do not see the dutch translation of the post, although I translated that post.
I see also that the English and Dutch link in the widget point to the same URL.
I do not have permalinks enabled in the wordpress admin, is that a must? I enabled it in the zdmultilang correctly
Impulse, to display the flag when switching the language, you have to check that the filename in the flags folder is correct, I’m pretty sure it’s not the case. I was thinking this week that I had to add this problem into the F.A.Q.
Even if you don’t use permalinks, you have to fill this value as it will be passed as an argument to the query string, for example : http://www.zen-dreams.com/?p=174&lang=en
If you didn’t fill this value, you’ll have to update the languages to take this value into account.
This plugin looks great!
Feature Request:
Either as an option or by default, edit the query so that when viewing a specific language context (like site/fr/) ONLY posts with a translation in that language are shown.
For example, on http://www.zen-dreams.com/en/ posts without an english translation are still shown but in french. This is okay if you translate most of your posts (people can just skip the other ones), but makes the plugin useless for people who want to translate as much of the site as possible, but don’t have time to do all (or most) of the posts. It would be great to be able to offer a page and RSS feed of only the posts on your site that are in the correct laguage, even if the traffic is lower, especially if you want to translate into a lot of languages.
I’m pretty biased, because we do some crazy translation into theoretically all languages at the site I run (http://globalvoicesonline.org), but I think it owuld be useful for a lot of people.
That said, it would be pretty damn hard to get it to work in all parts of wordpress, especially with other plugins conflicting all over the place, i wouldn’t even know where to start. But if your’e ever thinking of adding something, it would be a great addition :)
Jeremy,
That’s a good idea to filter on what’s been translated and indeed it’s quite easy to do, do next version will give more options (I’ll also add an option for a text to says it’s not been translated yet).
Just to let you know that there are separate feeds available for each language, for example http://www.zen-dreams.com/fr/feed or http://www.zen-dreams.com/en/feed
And finally, yes the only problem with the translations are plugins that are not multilingual ready (as long as they use the i18n feature of wordress), zdmultilang will switch language as it switches wordpress locale on the fly
hello Anthony,
Thank you for your quick reply. Unfortunately it still does not work. I still get two flags with each language. I added the French language and the French flag appears twice. Only nl_NL does not work, no flags at all. Although this is the right language code and the nl.png file is present.
Also the translation of a post is not working. I made a French translation and Dutch translation on the post but it still shows the English version.
Also interesting to see that the widget is not working when going to the homepage mode http://ifolio.idfact.net the widget links all languages to http://ifolio.idfact.net/index.php
If you click on a post, suddenly the links in the widget are linking correctly to
http://ifolio.idfact.net/index.php?p=400&lang=fr
[...] Instalação [...]
Impulse, the flag name for NL must be : wp-content/plugins/zdmultilang/flags/nl_NL.png
Regarding the widget problem it must be linked to the fact you do not use permalinks.
About the flag appearing twice i don’t really undestands what happens it’s generated twice. I’ll look into the code to understand why.
Yes! The Dutch flags appears by renaming nl.png to nl_NL.png thank you very much!
Hi,
I would love to use your plugin, but i see a problem that is common to multi-language tools for WP: SEO optimization.
See, your own website shows the same content on http://www.zen-dreams.com/ AND http://www.zen-dreams.com/en/ , and this goes contrary to Google’s recomendations for webmasters.
Also, a post is not found under http://www.zen-dreams.com/postdateorname, but only under http://www.zen-dreams.com//languagecode/postnameordate. That can be counter-intuitive for some reader.
Please allow me to suggest what i would think is the best SEO setup:
Website under default language found at http://website only, and in other languages found under http://website/languagecode.
Posts under deafult language found under http://website/postnameordate ONLY – and never under http://website/defaultlanguagecode/postnameordate , so as to prevent duplicate content (for Google). This is specially for clicking the flag to go back to the default language!
And obviously translated posts found at http://website/languagecode/postnameordate .
It seems natural to me that the multi-language system should be completely tranparent to readers of the deafult language, since most posts will be in that language. Only readers clicking a flag should be aware of a language code in the URL.
Thank you for rpoviding such a nice plugin!
Eduardo,
Yes, first page is displayed as default language. I never worked this plugin as a SEO killer tool, just a tool used to translate your blog. that said, some of the things you think about the plugin are not true, as my first concern was not to break any previous permalink. Therefore, any page available as http://website/language_code/postpage is also available with ‘default language’ via http://website/postpage
You can have a try with http://www.zen-dreams.com/zdmultilang
I understand very well you point of view, but when I come on a website, I like to see language code inside the url to make sure I’ll understand the page prior to click on a link.
For example, this website, 2 weeks ago was in French by default and most users never left any comment because it was not displayed in English. Only those arriving on the site via the /en/ link had left comments.
Anthony, I must agree with Eduardo regarding the SEO.
First of all I say that your plugin rocks, it does the things how they should be done.
The only think I really don’t like is the way the plugin manage the default language. I think that when defining the default language, every link should be domainname.tld/slug, domainname.tld/en/slug, etc.
when I switch from english to french, I notice that the url become domainname.tld///slug
Ok, I must admit that it should be an option on how the default language is generated. I will include this options in next release.
thanks to both of you for your comments :)
You’re great man!
Can’t wait to see the new release. We’re hiring some guyz and gals to translate our work from italian to whatever possibile.
And my wife is waiting for the new release too, because her cooking blog is hungry of non-italian users ;)
Hope to see new version soon. Feel free to ask if you need help.
Again me, but you know, I love your plugin, so I started using it very hard.
I’ve done the following: I copied the whole english post to translate it to italian. I also copied an image that was in the post, unfortunately the image was not transferred to the translated post. Just the text.
PS: I’ve done this on an adult oriented site, so.. no URL for now. If needed drop me a line.
Ferlo, that’s strange for the image as I do this all the time. Is the url in text editor correct ?
Next release should be published within a week or two, depending on the time I manage to get for it, and also time that my daughters leave me to work on it ;)
ehehehe… my daughters (twins) are here at office with me, I know the problem :)
my fault. I discovered the problem. I was importing posts using wp-o-matic that use its own cache. the path to the image was wrong because of the /en /fr etc.
it’s ok now.
Great !
I Hope the plugin will satisfy your needs, and next version will even more ;)
It seems that plugin is not working with cyrillic langugage.
Anyone manged to use this plugin it showing ???????? if I translate posts.
Ok I have found what is the problem.
Tables columns are not utf. This is the right create function:
function zd_multilang_install() {
global $ZdmlCache;
global $wpdb;
$termtrans=$wpdb->prefix.’zd_ml_termtrans’;
$langs=$wpdb->prefix.’zd_ml_langs’;
$posttrans=$wpdb->prefix.’zd_ml_trans’;
if($wpdb->get_var(“SHOW TABLES LIKE ‘$langs’”) != $langs) {
$sql=”CREATE TABLE $langs (
LanguageID varchar(5) NOT NULL,
LanguageName varchar(100) character set utf8 NOT NULL,
LangPermalink varchar(50) NOT NULL,
primary key (LanguageID),
UNIQUE (LangPermalink)
);”;
require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
dbDelta($sql);
}
if($wpdb->get_var(“SHOW TABLES LIKE ‘$termtrans’”) != $termtrans) {
$sql=”CREATE TABLE $termtrans (
term_id varchar(5) NOT NULL,
LanguageID varchar(5) NOT NULL,
name varchar(255) character set utf8 NOT NULL,
primary key (term_id,LanguageID)
);”;
require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
dbDelta($sql);
}
if($wpdb->get_var(“SHOW TABLES LIKE ‘$posttrans’”) != $posttrans) {
$sql=”CREATE TABLE $posttrans (
ID BIGINT(20) NOT NULL,
LanguageID varchar(5),
post_content longtext character set utf8,
post_title text character set utf8 NOT NULL,
primary key (ID, LanguageID)
);”;
require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
dbDelta($sql);
}
}
Teneke,
Thanks for the tip, I’ve been looking for a way to put the tables in utf mode, but couldn’t find time to do the search. You modification will be available in next release.
I am glad to help, for me this plugin is best multi language option.
You have done nice plugin!
Thanks teneke !
I’m glad you find this plugin usefull :)
hi. Thanks for plugin
perfect.
Regards
Hello,
Super la nouvelle doc ;-)
Entre temps j’ai avancé dans l’utilisation, et j’ai un souci dans l’affichage conditionnel d’une page da
Bon en fait le code en php ne passe pas dans les commentaires. Je vais chercher un autre moyen de transmettre mes infos. Je crois que tous mes commentaires sont peu utiles pour la communauté et pourraient être supprimés ;-)
Hi Anthony!
Nice plugin indeed, I just love it: it is just what I needed for what I am doing now.
I have a question for you: it is possible to insert a code in some templates of my wordpress theme so I can switch the language of some specific texts?
Thank you very much in advance and also for share this useful tool.
Grettings from Chile.
Lai,
You may check for the content of the variable $locale which contains the current language.
Or, you can just translate your theme and use i18n feature of Wordpress.
Anthony, first of all thanks for the credits. :)
Now, I’ve downloaded and installed new 1.1
My blog has been setup to use it_IT as default language.
When plugin is DE-activated I can see the italian version of the admin, blog, simple press forum, etc.
But when I activate it everything goes to english.
I setup the zdm as follows:
4 languages, italian default with permalink to /
in options italian is the default language too, generate permalink for default is setup on yes, because I noticed that the link notiziedallinferno.com/forum simply refresing the home page.
BTW: I also made the it_IT.mo for the plugin, if you like I can send it to you.
Ferlo, apparently there is a bug with locale in dashboard, I’ll look into it ;)
I can translate this plugin to spanish if you want. Sende me an e-mail.
Anthony, the problem was not related only to dashboard, but also to other plugins.
I mean, the simple press forum, chnged its own language after installing ZDM.
maybe you already realised it, and I understood wrong your reply. forgive me :)
Ferlo, this is strange, did you set default language as italian ?
Anthony,
I think there is something wrong in my installation, because I have the language in the right dir, I’ve got the wp-config.php corrctly setup but I continue seeing the whole site in english. suggestions are welcome :)
Anthony, the problem has been solved.
The trouble with language was in place because when I setup ZDM I wrote it, instead of it_IT.
I think all flags should be renamed accordingly to the language.
Default language italian.
With permalink “/” and “generate permalink for default language”=yes
this is the result:
Italian: mysite.tld///estero/il-caso-telecinco/
English: mysite.tld/en/estero/il-caso-telecinco/
French: mysite.tld/fr/estero/il-caso-telecinco/
Spanish: mysite.tld/es/estero/il-caso-telecinco/
With italian pemalink empty and generate permalink for default language = yes
whatever post I choose I simply refresh the home page
no way to switch to other languages using the language links from the widget
With italian pemalink empty and generate permalink for default language = no
same as above
With italian permalink as / and generate permalink for default language=no
Italian: mysite.tld/estero/il-caso-telecinco/
English: mysite.tld/en/estero/il-caso-telecinco/
French: mysite.tld/fr/es/en/estero/il-caso-telecinco/
Spanish: mysite.tld/es/en/estero/il-caso-telecinco/
When using the language switcher on top of same message with permalink / and generate permalink = No
here’s the links:
mysite.tld/en/cronaca/fasci-ignoranti/
mysite.tld/es/en/cronaca/fasci-ignoranti/
mysite.tld/fr/es/en/cronaca/fasci-ignoranti/
mysite.tld/es/en/cronaca/fasci-ignoranti/ <- this one is the link under the italian flag
What am I doing wrong?
Please discard the previous post, I goofed the URLs. this is correct now.
Sorry for the mistake.
The only quick way i’ve found to resolde this, is to add this PHP code in the TOP of my header.php theme (replace values with yours)
$lang = “/en”;
$permalink_homepage = “/en/hompage”;
if($_SERVER["REQUEST_URI"] == $lang){
header(“Status: 301 Moved Permanently”, false, 301); header(“location: “.$permalink_homepage);
}
Concretly, I force the homepage of other language (ex: /en) to redirect (301) to the permalink of the page with the langage code in the URL.
Ferlo,
in fact if you want no permalink for italian, what you have to do is set permalink to “it” for italian, and set generate permalink = No
It will cause big problems if you include a / inside the permalink and if set to an empty permalink (due to rewrite_rules change)
Generate permalink set to no means that the permalink will not be used to create links (therefore the value included will not be set in links, but can be interpretted by wordpress => you have to set a correct value)
ok, let’s face this:
my whole site is in italian and I want to keep the current permalink. I mean that for italian I do not what to make any change.
so mysite.tld/whatever for italian
Then I want to add english, french and spanish as
mysite.tld/en/whatever
how can I achieve this?
If I change the permalink structure now I’ll loose all my positions on SE.
maybe I got the point.
I setup for the default language (italian) the permalink as ‘IT’, then, in options I selected: ‘no’ for “generate permalink for default language”. seems I’ve done what needed. I’ll let you know if I’ll get in trouble again.
Ferlo, you did it correctly, but one thing you have to know is that even if you have generate permalink for default language=yes, your old permalinks will keep working, just try this : http://www.zen-dreams.com/zdmultilang
you’ll see this page ;)
Hello,
J’ai fait de nouveaux tests avec l’affichage conditionnel dans la sidebar. J’utilise query_posts(‘page_id=mon_id’) avant une boucle pour afficher le contenu d’une page précise dans ma sidebar. Curieusement le plugin zdmultilang n’opére pas et la traduction depuis la langue par défaut (fr) à la seconde (en) ne se fait pas. Le même code mit dans l’index.php opère correctement. Une idée ?
Fred,
Pour cet affichage, il doit utiliser une action qui n’est pas interceptée, il faudrait que je regarde pour faire ce genre de tests.
Si tu as le temps ça m’intéresse beaucoup, car pour le moment je n’ai pas encore trouvé de solutions alternatives.
Hi Anthony,
I’m ferlo’s wife, with my cooking blog :)
I used the validator XHTML on my site and discovered some little errors in the code of your page zd_multilang.php
some alt=”‘.$LanguageID.’” tags and final slashes / are missing
I fixed it in my file but, please, can you fix it in the official version? So, when you will give us a new release, all will be ok.
Thanks and good work!
Hi luisa,
I’ll have a look at it and fix everything that needs to be fixed for next release, thanks for the information :)
Mr. Anthony:
I’m trying to use the zdmultilang and I get the following error:
Warning: Invalid argument supplied for foreach() in /home/domains/juliomaestro.com/web/blog/wp-content/plugins/zdmultilang/zd_multilang.php on line 189
Warning: Invalid argument supplied for foreach() in /home/domains/juliomaestro.com/web/blog/wp-content/plugins/zdmultilang/zd_multilang.php on line 189
From here, it is not PUDE add languages or use a default language … solution that can have?
Thank you
Julio, it seems that there might be a problem due to the fact you didn’t translate any term.
Mr. Anthony:
I’m sorry.
I’m trying to use the zdmultilang and I get the following error:
From here, is that I can not add language or use a default language … solution that can have?
Thank you
It’s a complete error:
Warning: Invalid argument supplied for foreach() in /home/domains/juliomaestro.com/web/blog/wp-content/plugins/zdmultilang/zd_multilang.php on line 189
Warning: Invalid argument supplied for foreach() in /home/domains/juliomaestro.com/web/blog/wp-content/plugins/zdmultilang/zd_multilang.php on line 189
Fatal error: Cannot redeclare zd_multilang_tinymce() (previously declared in /home/domains/juliomaestro.com/web/blog/wp-content/plugins/zdmultilang/zd_multilang.php:74) in /home/domains/juliomaestro.com/web/blog/wp-content/plugins/zdmultilang/zd_multilang.php on line 73
Salut,
je voudrais savoir comment faire pour attribuer les fichiers thèmes à la langue sélectionnée? Car là, tous les textes sont affichés en français quelque soit la langue.
De plus, les tags (étiquettes) sont TOUJOURS affichés en français :( Comment cela se fait-il?
Je sous sous WP 2.6.1 et ZD 1.1.0
Merci pour ton plugin.
Frib, tu n’as rien de spécial a faire pour que le thème soit traduit. Il doit l’être via l’utilisation des fichiers de langue de WP. Le thème Sandbox, qui est une base de thème permet la localisation.
Toutefois, les langues définies doivent êtres reconnues par Wordpress, et donc correspondre au tableau dont je parles dans la F.A.Q.
Concernant les tags, si tu avais un lien vers ton blog, je pourrais aller voir car je n’ai jamais entendu parler d’un tel bug.
Bien sûr:
[Lien supprimé]
Merci pour tout.
Frib, je vais voir ça dès demain :)
Frib, effectivement il semble bien y avoir un bug, mais je ne vois pas ou, peut-etre est-ce du à un mauvais Language Code (de au lieu de de_DE) mais je ne suis pas certains.
Au niveau de ton thème il n’y a rien d’anormal, et ailleurs la traduction de tags fonctionne correctement.
Maintenant, je ne vois pas pourquoi ca ne fonctionnerais pas :s
Bonsoir,
j’avais testé avec de_DE mais il n’y avait pas le flag et les tags ne marchaient pas non plus :(
Bonjour et bravo pour le plugin.
Cependant, j’ai un souci. J’ai essayé de suivre à la lettre ce qu’il faut faire, l’installation se passe sans souci. Le problème après, c’est quand j’essaie, via le widget, de passer d’une langue à une autre (le français en langue par défaut et le malgache comme 2° langue), les articles ne changent pas. Ca reste en français! Et pourtant, quand je clique sur le petit drapeau dans l’article, la langue change. Je ne sais pas si c’est mon thème ou la version de wordpress que j’utilise, mais ça ne marche pas. En tout cas,merci pour le plugin car apparement, ça marche pour les autres!
Kael,
Utilises-tu les permaliens ? Car il y à en effet un bug avec le widget et les blogs n’utilisant pas les permaliens.
Il faut que je regardes ca en détail, mais je ne peux pas promettre de temps de résolution en ce moment (je suis en train de réécrire mon plugin de stats) :s
Par contre, tu peux utiliser une fonction zd_multilang_menu pour intégrer ca dans ton thème, théoriquement cela fonctionne.
Hello,
I just get an screen where I get the message there is no language installed and I should install one. How?
Christian, just follow the documentation, it’s described in step 2.
Très beau travail !!!
Toutefois, j’utilise WP 6.1 + theme Fresh2 2.07 ainsi que le plugins FCK Editor 2.41 et je rencontre des pb lorsque j’edite une page ou un billet. L’editeur FCK ne s’affiche pas et je ne peux donc copier le code html de mon billet original …. Une idée ? Cordialement
jpat, lorsque l’on edite une traduction, l’article original s’affiche mais directement interprété et donc sans éditeur de texte. Si tu veux récuperer le code HTML, il faut le faire directement dans la page de l’editeur classique.
Bonjour Anthony,
Tout d’abord merci pour cet excellent plugin !
Est-il possible de ne pas afficher le sélecteur de langue dans une page ou un article donné ?
J’utilise le thème “The Morning After”, et celui-ci affiche une page en tant que description sur la home du blog, et forcément, le sélecteur de langue s’y affiche.
great plugin, but i have these problems:
- i want to add manually the code to switch language in my theme, which code i must use?
- i use excerpts in the post and descriptions in the categories, is there a way to translate these items?
thank you
Etienne, tu peut ne pas afficher le selecteur de langue, mais tu ne peux pas le faire pour certains articles uniquement.
Pietro, you can use the function zd_multilang_menu which will return you <li>elements.
For your second question, there is no way for now to translate the excerpt and category description.
ok, thank you
for the second question, have you planned this improvements for next releases?
Pietro, yes it will be included in next release :)
OK je vais utiliser la fonction zd_multilang_menu dans mon thème !
great :-)
how can i include the funcion?
this code not work
<?php zd_multilang_menu(); ?>
this is the the code i have tested
Pietro, this is the code you should include :
<ul>
<?php zd_multilang_menu(); ?>
</ul>
sorry anthony, in my theme the code don’t show anythink if i “hide” all in the option
i have tested this in a localhost, if you want to see this online, i can install in a subdomain
Hi!
I’m also a PHP Developer / Usability Consultant, using WP for my clientes.
Here are a few things I found for improvement:
- Include the flag/name of the language when translating (it can be confusing sometimes)
- Change the default name of the Brazilian flag to pt_BR.png instead of br.png
- Include the term “Post” in the .pot file.
I’m using your translation plug-in and found it very useful.
I translated your .pot file to pt_BR and I wish you could contact so we can share some expertise and I could send you the translated Pack for your next version.
Thanks a lot in advance.
Yours,
Dionizio Bonfim Bach
DJIO – http://www.djio.com.br
Djoi, in fact most of the flags have incorrect names as I released the plugin before to find a list of international codes. I will probably include a better way to define languages with correct flags.
Ooops, i didn’t notice i didn’t include the term post.
And finally, yes i should at least display the name of the current language when translating.
Thanks for your advice, you can contact me : anthony at this domain.
Hey! Great plugin!
Actually, I’ve used jLanguage for quite a while and since it’s development has stopped, I was hesitating to move to xLanguage because of the way it handled permalinks and for not showing the flags on the posts :) Finally, I’ve found ZdMultilang and it just happened to be the best solution for me!
By the way, do you have any plans on making Widgets “translatable”?
Thanks in advance!
Yuji, I will look for a solution in order to do that, but I think that widgets should include translation files, as zdmultilang is also setting the locale to the currently selected language. If a widget is translatable, it will be translated.
Hey Anthony!
Widgets may have custom text as well. Maybe language tags would be an idea?
anthony, in my theme the code don’t show anythink if i “hide” all in the option
Pietro, this is a strange behavior as there is no code in the zd_multilang_menu to check for this. I’ll have a look.
Yuji, yes, and for this text, I didn’t find any good solution to translate text tags, except by intercepting calls for each plugins.
My Wordpress template uses heavily custom fields, as well as the_excerpt.
I am willing to pay for expanding your plugin so that the translation page not only allows the translation of the post text, but also allow adding custom fields that could be translated as well. Please contact me if you would be able to do this.
I would also need a snipet of code that I can add to my sidebar that replicates the switcher widget. The reason is that my template is heavily customized and widgets do not work.
@ pietro the code is:
echo zd_multilang_menu();
(inside the php tags)
@ Jossi
with “echo” the switch of language appears but all the links point to the /it or the /en and not the the single page URL
furthermore all the options are deleted: the flags and the text link appear even if a translated version is not present
Hello,
Thanks for your plug-in. It works fine with my site, the only problem is I have made a widgets showing my home page. When selecting the language it doesn’t work. For example on my home page the address shows only http://www.mysite.com and the translation doesn’t work. But if I manually type http://www.mysite.com/?lang=eng then it works. By clicking the link from Widget is not working. Could you please advise? Thanks again.
Andy
Andy, yes apparently, there is a known bug when using non permalink structure for the widget.
I have to look for the reason it doesn’t work.
Thanks for your prompt response. So I will have to change to permalink structure. One more trouble to me is I have lost with where to get Language Switcher CSS and how to do this??? I couldn’t find any CSS sample in your package and I just want to display the switcher on top of the each post like on this web site without bullets. Could you please advise? Thank you.
I use this code : with css name set to language-list
ul.language-list { display: block; margin: 0px; padding: 0px; text-align: right; height: 1em;padding-left: 92%; list-style: none;}
ul li.language-list { display: inline; float: left; margin-right: 3px;background:none; padding-left: 0px;}
Bonjour Anthony,
Superbe plugin, et bravo. Pour différentes raisons, le plugin que j’utilise actuellement ne me convient pas, et celui-ci se rapproche de ce que je veux: simple et fonctionnel;-).
Et pour arriver au top, pourrait-on avoir:
Traduction du titre du blog
Traduction du slogan du blog
Traduction de l’extrait
Possible ? / Prévue ?
PS: dans mon cas, 2.6.2, le mode ‘visuel’ ne s’affiche pas, je suis en mode ‘HTML’ lors de la traduction. (IE, FF, Opera)
FVE, dans la prochaine version, beaucoup d’elements non traductibles actuellement le deviendront, je ne peux pas encore donner de délais de publication, mais sache que c’est dans le tuyau ;)
Bonjour Anthony,
merci pour ce plugin !!
Les liens de traduction sur chaque article n’apparaissent pas.
J’utilise WP 2.6.1.
Quelqu’un aurait une idée du problème svp ?
Oui, depuis la derniere version, l’ecremage du code a fait que ca ne fonctionne plus, dans la prochaine version, cela sera corrigé.
@Anthony:
ok merci pour la précision.
j’ai une autre question : lorsque je souhaite traduire un article ou une page, mon éditeur tiny MCE n’apparait pas dans son intégralité : il manque les boutons permettant d’insérer des médias (photos, vidéos, etc.), qui sont particulièrement importants pour traduire des articles contenant des photos (puisqu’il faut ré-insérer les photos dans l’article traduit). Comment puis-je faire pour les faire apparaitre sur la page de traduction ?
merci d’avance.
Bao, le problème viens principalement de l’interface avec wordpress, en effet, je ne fait qu’apeller les routines wordpress pour l’affichage de l’editeur, il faudrait regarder les options possibles, je verrais ca des que j’en aurais le temps.
Hello Anthony,
I think your plugin is the best approach to multilanguage blogs, works very nicely and don’t mess up the database like others!
I’m having issues with the editor. It works for some pages, and sometimes reloading the page solves the problem. The editor in “visual” mode does not show the toolsets (like for including pictures) and when I click on “html”, the editor simply vanish, only the tabs are left. There is a screenshot here:
http://dl.getdropbox.com/u/203439/zdeditor.png
I’m using version 1.1.0. Copy and pasting from the default language to the translation editor does not work properly either. It does when the toolsets are properly loaded (in my other website it worked for most pages).
Another little issue is that if I change the “Generate permalink for Default language” to “No” and save settings, it does not save it, and “Yes” is marked again.
Any ideas?
thanks!
Bruno, thanks for your support ! :)
I’ve noticed also the problem with the HTML editor, when loading, it appears that there is a bug with the javascript loaded (original editor from wordpress, calling wordpress routines).
All problems with the editor are coming from this. I will open a bug within wordpress.
About your problem with permalinks i’ve never noticed this, I will have a look with the problem. You can send me more details at: anthony at this domain.
Hi, Anthony and everyone here. First, thank for the plugin (great idea). Anyway, I was installing zdmultilang and I got stuck on step where you said: “This code is also used to translate the blog so make sure you have translation files installed as described on the previous page.” Why? Because there is no link or reference to the previous page where you show how to configure the translation files (.mo .po). I have search the blog, but I have not find it. Can you pleas point me to the post where you explain how to configure the translation files (.mo .po) in zdmultilang.
Thanks and keep-up the good work.
Tony,
This was said for multilingual themes mostly, as Sandbox provides .mo .po files. To edit a .po file, you should use poedit.
I will probably make an article on plugin/theme translations.
[...] ZdMultiLang: Tabelas novas para salvar as correspondências; [...]
Bonjour Anthony,
C’est un plaisir de voir avec quelle conscience professionnelle tu assure le support de ton plug in. Longue à celui-ci. La dernière version téléchargeable offre-t-elle la possibilité de voir les comments que dans une seule langue et non pas un mélange des 2. En Belgique le bilinguisme est une question délicate et le mélange des 2 est un peu explosif :-) Je suis pas expert php mais je suis prêt à plonger dans le cambouis du code q’il faut y rajouter des portions de code. Je meurs d’envie de télécharger ton plug in mais c’est le seul détail qui me freine, la selection d’une langue ne doit me permettre d’afficher qu’une langue.
Encore bravo pour le boulot accomplit, mille encouragements :-)
Gérard, je viens de finir de refondre ZdStats qui sortira d’ici une petite semaine (le temps que je me laisse pour le tester en live). Et ensuite j’attaque la refont de ZdMultilang en prenant en compte toutes les remarques qui ont pu m’être faites. Et je te rassure meme pour les utilisateurs en général. Si ils arrivent sur un post en francais et que les commentaires sont en anglais, ils sont un peu freinés. donc oui, je vais modifier ce comportement pour stocker l’information de langue dans un commentaire (je ne sais pas encore comment stocker cette information, mais je trouverais)
Bon Courage Anthony,
Je resterais à l’écoute de blog et encore merci de ce temps que tu passes pour la communauté cela crée d’autres vocations et c’est là tout le fondement de l’open source.
>Respect pour cela et invitations aux autres blogueurs a avoir parfois plus de délicatesses dans leurs “exigences”.
Je suis occupé à faire un blog soutenu par l’un de nos vice premier ministre et qui tourne autour de l’humanitaire dès que ton plug in sera consolidé, je me ferais un plaisir de signaler l’effort d’une communauté dont l’esprit est le partage et qui s’inscrit pleinement dans ce projet, je travaille aussi après mes heures là-dessus et franchement encore bravo
Amicalement
Gérard
This is a great plugin. When it works ok, that is. Unfortunately it doesn’t. I experience the same problems as Bruno (one of the above comments).
Also I find it impossible to show imported pictures (*.jpg), but that may be the same problem as the editor problem.
Finally, I have problems when part of the text is in code (a field, for instance). But this is perhaps also due to the editor problem?
rajaman has asked if it is a compatibility problem:
http://wordpress.org/support/topic/208528
Now I’m waiting to see if these bugs (?) will be fixed before I translate all my 560 posts… (sic)
Latterlig, I’ve been looking for info on the net and finally found out that it’s not a problem with ZdMultilang and Wordpress.
It’s a problem with cforms2 and any other plugin including the tiny_mce.
In order to fix that, you have to deactivate the WP Editor Button support in your general settings.
Thanks for a very quick response!
I feel quite stupid now, but I find no such option in the general settings menu.
But I do have the cforms II plugin installed. Maybe I should just remove it?
Latterlig, check the new version of the plugin and also the post I’ve written, it will give you the way to update the cformsII plugin.
[...] ZdMultilang [...]
[...] ZdMultilang [...]
I’m at a loss on this still, but I have a question.
Does it automatically translate the article from one language to another or do you need to provide the translation yourself?
Amazing plus convenient!
thanks !!!
[...] ZdMultilang [...]
@Jonathan Dingman : No you have to provide the translation by yourself, it’s usefull for blogs like mine where blogs are in French and English. I do not like automatic translations are they are more than aproximatives.
@IhateDesign: Thanks ! :)
Coucou Anthony,
Je rencontre quelques soucis avec ZDMultilang.
Ma configuration WP actuelle
- Version de WordPress : 2.6.2. fr
- Thème utilisé : dkret3 2.0
- Plugins en place :
subscribe2,
dagon design form mailer,
pagemash,
ddlistpages,
nextgengallery,
statpress reloaded,
simple-tags,
wp-cumulus,
zdmultilang,
wp-dbmanager,
All in one SEO,
- Nom de l’hebergeur : free “accès libre”
- Adresse du site : http://diesel.blog.free.fr/
J’ai un problème d’erreurs 404 sur pages et articles.
J’avais déjà activé avec succès la réécriture d’url dans le panneau de Wordpress,
structure personnalisée : /index.php/%postname%
là je viens d’installer All in One SEO et j’ai laissé cochées les options par défaut, il y a aussi une fonction de réécriture d’url qui est cochée donc.
Je suppose qu’il faut choisir entre les 2 pour ne plus avoir ces erreurs 404 ?
Si oui laquelle me conseilles-tu ?
Test :
J’ai désactivé la fonction “réécriture des titres” de All in one SEO > idem erreur 404
J’ai désactivé All in one SEO (le dernier plugin installé) > idem erreur 404
Jai désactivé ZDmultilang (l’avant dernier installé) > ça remarche !
Je ne sais pas encore pourquoi, il y a un conflit entre ces 2 plugins et peut-être aussi avec la fonction structure personnalisée des permaliens de wordpress (que j’ai activée avec succès).
Merci d’avance pour ton aide.
[...] ZdMultilang | Zen-Dreams ZdMultilang is a Multilingual plugin for Wordpress allowing you to blog in more than one language. You can define multiple languages and translate posts/tags/categories using the interface that will be added to your blog’s administration panel. (tags: wordpress plugin multilingual) SHARETHIS.addEntry({ title: “links for 2008-10-09″, url: “http://michaelwender.com/2008/10/09/links-for-2008-10-09/” }); This entry was written by Michael Wender, posted on October 9, 2008 at 3:26 pm, filed under Links. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL. « New Gmail Feature: Are You Sure You Want to Sent That? [...]
Laetitia, pour répondre à ta question, il ne s’agit pas d’un problème de compatibilité avec les plugins dont tu parle.
Par contre oui, je n’avais pas envisagé ce genre de réécritures d’url, et non ca ne fonctionnera pas avec ce genre /index.php/%kkchose%/
En effet, l’url est réécrite forcément avec /permalien/ta_structure.
Deux solutions, soit tu n’utilise pas les jolis permaliens, soit tu utilise une des structures par défaut (il est possible que cela ne soit pas possible chez free… :s)
Je note ce probleme pour la version 2 qui devrait sortir d’ici la fin de l’année.
Les structures par défaut des permaliens sont possibles chez free mais c’est pas génial pour le référencement.
Alors j’ai activé la structure personalisée : /index.php/%postname%
Remarque : le “index.php” est indispensable chez free (et uniquement chez free)
avec Wordpress v 2.6.2 (à cause d’un bug)il faut placer aussi dans le champ préfixe de catégories : /categorie et dans préfixe des tags : /tag
Si je change d’hébergeur, la structure personalisée des permaliens sera : /%postname%
Est-ce que le conflit avec ZDmultilang sera toujours là ?
Merci pour la réponse rapide :) .
Laetitia,
Si tu va chez un hebergeur permettant les permaliens du style /%postname% dans ce cas il n’y aura pas de soucis avec le plugin (voir le fonctionnement de zen-dreams)
Je change bientôt d’hébergeur (ovh), comme ça je vais pouvoir utiliser ton plugin ZDmultilang. La correction pour la prochaine version c’est super sympa surtout pour ceux qui sont chez free ;). Merci beaucoup !
[...] ZdMultilang | Zen-Dreams (tags: wordpress plugin) [...]
It seems that it still doesn’t work with Wordpress MU. It would be great if you had said so in the FAQ.
It is a shame because I REALLY am looking for a working multilingual plugin.
[...] ZDmultilang – Otro inteligente sistema de traducción que, además te permite traducir palabras, páginas y posts sin salir del panel de administración. [...]
[...] ZDmultilang – Otro inteligente sistema de traducción que, además te permite traducir palabras, páginas y posts sin salir del panel de administración. [...]
[...] ZDmultilang – Otro inteligente sistema de traducción que, además te permite traducir palabras, páginas y posts sin salir del panel de administración. [...]
Sry my english issen good:
I want to have a Bilingual menu. But i dont know how i can make it.
Sayuri; you can use the functino zd_multilang_menu(); in your template. This will return list elements (<li></li>)
Hi, wonderful plugin, congratulations and thanks!
But I have the same problem as ferlo (august 2008): My default language is German, I set German as default language, but everything is displayed in English. What can I do? I did not understand ferlo’s solution.
First: Thanks for this great plugin :) I’m using ZdMultilang to translate a couple of my blog postings into english. I’d like to use the “Show Language Switcher in post” feature, but there’s a little thing which I don’t like.
I translate really only veeeeery few articles inside my blog. When i activate “Show Language Switcher in post” i allway see the tiny german flag, which has no function this since most of my articles are only in german.
Would it be possible to add a third option to “Show Language Switcher in post”. So instead of only “Show” and “Hide” you could set it to “Show only when article is translated into more languages than the standard language”… Too long, but i hope you get the idea :)
Thanks
Christoph
Bonjour Anthony,
merci pour ce remarquable plugin qui permet de traduire vraiment simplement son blog, et surtout sans toucher à la structure existante (et notamment les XML sitemaps connues de longue date par Google!).
J’appuie vigoureusement la demande de Christoph d’il y a un an, qui consisterait à pouvoir n’afficher le drapeau de traduction que s’il existe réellement une page traduite localement. Existe-t-il une fonction dans zdmultilang qui permette de vérifier s’il existe une traduction pour un article?
Par ailleurs, vu le nombre de personnes qui demandent un affichage horizontal des drapeaux, ne serait-il pas pertinent de proposer une option supplémentaire à la fonction zd_multilang_menu, qui permettrait de supprimer l’ajout des tags “li” autour du drapeau? J’ai patché le plugin rapidement pour l’intégrer directement dans mon template WP, mais une solution plus pérenne serait très bienvenue!
Encore merci pour ton plugin,
Daniel
Bonjour,
J ai suivi a la lettre vos instructions mais les 2 drapeaus ne s affichent pas l un a cote de l autre ,mais l un au dessus de l autre!!!
Enfin Arrive a cette etape je ne sais plus quoi faire ? Que faut il ecrire ?
faire un lien ? Comment ?avez vous un exemple ?
Lors de la traduction d’un article, vous pourrez voir l’article original au dessus de votre zone de saisie, et que cette même zone utilise l’éditeur visuel de Wordpress.
Vous pouvez aller sur mon blog test a.nedeek.com( alex,paradis )
J ai ecris un post: test de traduction a traduire en Englais.
Cordialement,
Alex
If I use “de_DE” as language Code, the whole backend is displayed in German, fine! But the flag does not show up. It does indeed, when I use “de” instead. That seems to be a bug.
Now two questions:
How can integrate the language switcher into my navigation?
Is it possible to change the slug manually? I don’t want an English article to be “slugged” with a German name.
Great, that the translated pages access the same templates as their originals do!
@Frau_Braun, to have the language correctly setup, you have to put de_DE as language code and rename the de.png file as de_DE.png in the flag directory of the plugin.
To include the language switcher in your navigation you can use the zd_multilang_menu(); function, it will return a set of list elements (lt;li>)
As for the slugs, no they can’t be translated
Alex, effectivement, pour obtenir les drapeaux l’un a coté de l’autre, il suffit de modifier le code CSS de la classe définie. Tu trouveras quelques exemples dans les commentaires précédents.
Ensuite, pour traduire ton article, rien de plus simple, clique sur le drapeau correspondant a la langue dans l’editeur de texte, puis mets à jour.
La traduction s’affichera automatiquement en fonction de la langue choisie.
Je tenais à vous féliciter pour ce plugin des plus remarquables. J’ai pu tester d’autres plugins et celui-ci est le plus fonctionnel.
Je lui trouve 2 “défauts”, nous n’avons pas la possibilité de traduire les metatags surtout la description qui est essentiel pour un excellent référencement et serait-il possible de traduire le permalien ?
Pensez-vous que cela est techniquement possible dans une prochaine version ?
En vous remerciant
@Benoist, Concernant les metatags, cela sera probablement introduit dans la prochaine version.
Par contre pour les permaliens, je ne penses pas qu’il soit simple de faire cette possibilité. Je verrais, mais je ne prefere pas me prononcer.
Merci pour ta réponse, j’attendrai donc avec impatience la version “métatags” qui fera des merveilles en SEO, permettant d’éviter tout risque de duplicate et de pages “secondaires”. Pour les permaliens, ce n’est pas si important… Merci encore pour ce travail REMARQUABLE
hi anthony.
i am amazed about that plugin. it covers loads translation needs :)
one question though: it does seem to do a site search in just one (the default) language.
so when i am searching within posts the translations will be ignored. ist that right?
thanks!
marcus
I double Christoph’s request! (and use)
No flag for the current language.
Only show flag for translate articles.
Thanks in advance and happy development;-)
@marcus, you are right, there is no hook for the search therefore it will only search in default language. I’ll try to implement that for next major release
@FVE, you’re right, it could be better for users not to have all flags. I’ll try to implement that in next release (I won’t wait for the next major release ;))
anthony. thanks for your reply.
best
marcus
Thank your very much, Antony, for the fast reply. For the navigation: I did as you told me with echo zd_multilang_menu(); in PHP-tags, but now both the flag and the language names are displayed in the navigation even though I disabled the flags. Well I could hide them by means of my CSS, but this does not seem to be a very elegant solution.
And another question: Is it possible to view the english translation of the home/front-page while navigationg in the english section? Everything is displayed fine, but when I navigate to “Home” I end up on the German “Home” page.
I adjusted the flag names in the flag directory and added some of the missing flags. I tested them all. I would like to send them to you, so you can use them in your next release. If you’d send me your e-mail-adress?
I can’t tell you how happy I’m at the moment.
I was fighting with Gengo a few days. Sometimes it’s working and sometimes not. I hade nearly everything. Database errors and and.. I was nearly jumping out of the window.
Mostly I had problems with plugin GuestbookGenerator.
20 minutes ago, I’ve found your site and plugin. Installed, configured and everything is running perfect. Your plugin is much better than gengo. Gengo sucks!!
Your’s is really really god.
Thank you very very very much.
Stefan
Bonjour Anthony
Je suis au bord de la depression !!!
Pour traduire un post: test de traduction du francais vers l anglais
(a.nedeek.com,alex,paradis)
j ai suivi tes instructions:
Ensuite, pour traduire ton article, rien de plus simple, clique sur le drapeau correspondant a la langue dans l’editeur de texte, puis mets à jour.
La traduction s’affichera automatiquement en fonction de la langue choisie.
Chez moi ,une fois clique sur le drapeau Englais ,je ne peux pas mettre a jour !
je suis dirige de nouveau au post que
je voulais traduire !!
Peut tu m aider ? stp.
Peut etre qu une demonstration par capture d ecrans serait utiles pour les debutants comme moi !! qui je pense seront tres nombreux avec le succes de ton plugin .
Cordialement,
Alex
Alex, dans cette page, il y a des captures d’ecrans et une video pour expliquer comment cela fonctionne.
Bonjour Anthony,
Tout d’abord félicitations pour ce plugin très simple d’utilisation et complet ! ;-)
Je te contacte car j’ai un souci. J’ai un site ( donc blog + pages ) en 4 langues. Tout fonctionne parfaitement jusqu’au moment où je veux avoir une page statique en page d’accueil… Là, je ne retrouve plus les autres pages traduites, histoire de permalien sûrement… Donc, je cherche mais j’avoue que je bloque un peu !! ;-)
Merci d’avance pour ton aide
Francis
Francis, exact, c’est un problème qui m’as déjà été remonté et je n’ai pas encore eu le temps de tester, j’ai consacré beaucoup de temps a zdstats, mais je me remet a analyser zdmultilang justement, donc je vais regarder ca :)
N’hesite pas a m’envoyer tes remarques directement par mail autrement (anthony à ce nom de domaine)
Hi Anthony!
thank you for a great plugin, i have tested it on my testblog and it works like a charm.
I am wondering if you still are planing on releasing a new version where you got the option to keep the original language without the permalink structure? for example bloggsite.com/language/post-name for any other language, but bloggsite.com/post-name for the original language.
Thank you once again for a great plugin.
Regards
/Fredrik
Fredrik, in fact the original permalink still exists.
For example, if you have two languages fr and en(default) then
/fr/postname will exist
/en/postname will exist
/postname will exist and will be the default language permalink as well.
hi, i have a problem with ZdMultilang.
in posts and page Display untranslated i see the flag of default language.
how can delete this flag in untranslated posts and pages??
thank’s
Stefano, you can’t, I’ll make an option for this.
[...] been a while since I made real update with ZdMultilang Wordpress [...]
Hello, Thx 4 the fast answer, but I don´t know what you mean :(
I have write in the temple
where was
But how must be the Themple calles for the two language, can you tell me? Or other
Hi Anthony,
I just downloaded your plugin today and am working on implementing it for my live site. I must say I am suitably impressed with your plugin and even more so how responsive you are to your users! (yes, I read all the comments before installing your plugin). I am replacing the plugin from your competitor (wp_multi) because he cannot seem to get his plugin working with Wordpress 2.6.2.
Anyway, I’m looking forward to your next minor release because I quickly noticed that you have no translation available for the Blog Title and Blog Description. I’ve already made a small change to your “menu” function because it doesn’t make sense to display a flag for the currently active language! I’ll include the changed code here – might save you some time. (… I’ve commented my changes …)
Thanks again for a GREAT plugin!!!!
Cheers, Markus
——————————————————-
[Edited: code removed for display purpose]
Hi Anthony,
It appears something got lost in my last comment – probably because of the quote character. Anyway you know the section of code I have changed. I also moved the line of code outside the if statement but still inside the for loop.
Cheers, Markus
Thanks markus for the update :)
The comment was not lost, it was just in the moderation queue :)
Hi Anthony,
It’s me again. I’m still working on implementing your plugin. I found something a bit strange. When you are on a “single_page” and try to switch languages it always takes you back to the “home” page of the WEB site. I’ve made further changes to the zd_multilang_menu() function to properly handle this. I’ve attached the changes (starts at line 1157).
P.S. All the testing I doing is using WordPress 2.6.3 and so far your plugin is 100% compatible with this release.
Cheers, Markus
[Edited: code removed for display purpose]
Great, thanks mate!
Hi
The plugin is great, I’ve one prob, how to adjust plugin to show language list in drop down box in the sidebar..
Thanks
Girogi, you can’t for now, the widget only allow to display an unsorted list of languages.
I changed these lines in zd_multilang.php:
echo ‘ ‘.$row['LanguageName'].’‘;
to:
echo ‘ Languages ‘.$row['LanguageName'].’
‘;
It doesnt work, but I think it’s possible to do something like this…
Is it possible to align language raw verticaly, not horizontaly
How to translate excerpt fields ?
@Giorgi, this is possible using css tricks such as float: left;
About the modification you made, where did you make it ?
@Soso, this is not possible yet. Next release will enable more translations.
Un petit mot pour signaler l’incompatibilité de cette extension avec ceux permettant de modifier l’interface utilisateur, notamment lighter menus et wordpress admin bar…
L’incompatibilité se situe au niveau de la navigation ; la lien “langues” n’aboutit à rien avec le second, les menus de niveau 2 et 3 ne s’affichent pas pour le premier…
Ce n’est pas très grave, mais il est vrai que ces plugin améliorent de beaucoup l’ergonomie de l’interface…
I did it on line 1227 in zd_multilang.php, I tried to match drop down box JS but couldn’t..
If someone has excerpt translating problems use Advanced Excerpt plugin, it works perfectly with ZDmultilang
@Thomas, en fait j’ai déjà remarqué le problème avec lighter menus et d’autres, mais pour l’instant je n’ai pas “envie” de corriger car avec la version 2.7 de WP, ces plugins deviendront “inutiles”
Your plugin is also not compatible with plugin “Ozh’ Admin Drop Down Menu”, because your admin submenu is handmade. You should use the function add_submenu_page(), http://codex.wordpress.org/Adding_Administration_Menus .
Nice plugin but we hope you make the changes need soon.
Thanks
Camilo, yes, this will be done in next release. I’ve been using this in ZdStats and it’s not necessarily working with all admin menus enhancers, but it’s way better:)
[...] the way, I’m proud to announce that version 1.1.2 of ZdMultilang will be fully compatible with Wordpress 2.7 and the interface will look much better in 2.6.3 and [...]
Actuellement, j’utilise ZdMultiLang et je souhaiterai mettre wp-Print mais je rencontre un problème: les deux ne peuvent fonctionner ensemble.
Y-a-t-il une solution?
Merci
@Shaggy, certainement, mais comme je ne connais pas ce plugin, je ne saurais trop te dire, il est vrai que les plugins qui s’appuient sur Wordpress directement ne pourront être compatibles avec ZdMultilang que si ils prennent en compte l’existence du plugin ainsi que des tables associés.
@Anthony
Merci pour la réponse bateau.
Je pense que tu as la mémoire courte regarde ton article : http://www.zen-dreams.com/fr/2008/07/04/10-plugins-pour-wordpress/
Wp-print y est mentionné par toi-même
Wp-print ajoute un bouton Imprimer qui épure le thème de Wordpress pour en faire un version imprimable sans information superflue.
Le plugin ajoute bien le bouton imprimer dans les deux langues pour mon cas mais lorsqu’il effectue une redirection sur une nouvelle page du thème appelée post-print.php avec un nouveau css épuré ça ne marche pas.
Je pense qu’il s’agit d’un problème de rewrite rules (je ne suis pas expert)
Aurais-tu une solution ou une piste?
Merci d’avançe
Shaggy,
Effectivement j’en ai parlé, mais je ne l’utilise pas. Par contre au vu des informations que tu me donne, effectivement, la redirection vers une page en .php ne doit pas utiliser les permaliens, je verrais dès que j’aurais un peu de temps le probleme avec ce plugin. Désolé si je t’ai parru un peu “sec” dans la réponse précédente, je suis un peu surchargé ce week-end :s
I am having some troubles. In language I put in Catalan – language code ca and it gives me a canadian flag sigh. I put in Espanaol es_ES and I get no flag at all. These are the right codes so what do I do?
Thanks
Jana, this is due to the flag names in the flags folder.
You’ll have to rename the flag file to language_code.png.
Next release of the plugin will solve this issue :)
Great plugin! I have downloaded it for my blog.
This plugins sounds to be better than Gengo, however I’m always getting this error when trying to translate a post or going to “Languages > Posts & Pages”:
Fatal error: Call to undefined function add_thickbox() in /nfs/c03/h02/mnt/52711/domains/mm-bc-cm.com/html/wp/wp-content/plugins/zdmultilang/zd_multilang.php on line 78
I’m using WordPress 2.5.1. (I *cannot* upgrade in my case.)
Rémi, in that case, you could edit line 78 of the plugin and replace the add_thickbox by :
if(function_exists(‘add_thickbox’)) add_thickbox();
Voilà une réponse rapide ! Je ne savais pas que le plug-in ne dépendait pas vraiment de cette fonction. Merci ! It works! :D
The problem, however, is I thought the translation would be a separate post or page which can have its own permalink. Too bad, since I liked the fact this plugins *prefixes* the permalink with the language code rather than appending to it, which is what Gengo does, and is something I really hate.
Rémi,
I’m still investigating on making the permalink customizable, but for now this is not possible.
What an excellent plugin. A friend of mine was working on a system to translate but he had built it into the theme using subpages of each language, basically not very easy to administrate or add new languages.
I was wondering if there is a way to put the language switcher in the header, sidebar, menu bar so that when a visitor arrives at the site they can just switch the language of the entire site and then browse the site in that language.
I’d still like the option of having the languages on posts and pages so that they can switch back to another language if on a specific post.
Thanks for building such a great plugin
Daniel
Daniel,
You should use this function in your template :
<ul>
<?php echo zd_multilang_menu(); ?>
</ul>
Hi Anthony,
Can you tell me if ZdMultilang can handle translations of meta data? (meta keywords/description) for each page/post on wordpress? If not is it something you’re planning to add?
Thanks :)
Leon Poole, short answers : no yes.
No it can’t handle them for now, but
Yes i do plan to make them translatable as I intend to make nearly everything translatable ;)
salut,
et merci pour ce magnifique plugin extrêmement maniable et simple d’utilisation.
J’ai juste un bug que je n’arrive pas à comprendre,
j’ai réussi à créer mes 3 langues : Français par default, Anglais et Italien.
Je renseigne les traductions pour chaque langues par contre lorsque je teste l’affichage online grâce au Widget, j’arrive à afficher le français (normal car par default), l’anglais aussi, mais lorsque je clique sur Italien ça ne va pas chercher les traductions pour mes catégories et sous-catégories, alors que l’article lui est bien traduit.
Pour visualiser voici l’adresse : http://www.cromagnon-extremerace.net/?cat=3&lang=francais
vous verrez qu’ne anglais dans le menu ABout et News apparaissent bien, mais pour l’italien rien on retourne en Français comme si la traduction n’existait pas.
je suis un peu perdu, je n’arrive pas à voir d’où vient le soucis
Merci d’avance pour votre aide :)
Pascal, au niveau de l’onglet de traduction des catégories, est-ce qu’il y a bien une traduction pour l’italien ? Si il n’y a rien, alors il prend la valeur par défaut. Sinon, tu peux m’envoyer les 3 tables zd_ml* par mail a anthony à ce domaine pour que je regardes
waouw merci pour la réactivité :)
oui les champs sont bien renseigner c’est pour ça que cela me semblai bizarre, je t’envoi les tables dans un instant, merci beaucoup ;)
re,
je t’ai envoyé les tables par mail, entre temps j’ai refais quelques test alors voici ce qu’il se passe :
J’ai fais le test sur une catégorie Actualité que je traduit d’abord en anglais, attention ce bug n’est que pour les catégories car les posts marchent nickel, donc pour la catégorie Actualité résultat :
- fr ok Actualités
- anglais ok News
- italien affiche Actualités, normal car pas encore renseigné
Puis je traduis la catégorie, résultat :
- fr ok Actualités
- anglais retourne sur le terme Actualité (comme si il n’étais pas renseigné or il est bien en bdd)
- italien affiche Informazione
Lorsque je commence par l’italien même problème en sens inverse -_-
Hi,
I posted a question to WP site but seems that here the comments get quicker answers so:
I have my blog in subdirectory mydomain/wp and the “blog adress” setting is pointing to “mydomain”
This seems to be causing a problem as in this case the flags are not visible.
I checked with Firebug and found out that the Flag directory path is wrong:
“http://www.mydomain.com/wp-content/plugins/zdmultilang/flags/en_US.png”
When it should be:
http://www.mydomain.com/wp/wp-content/plugins/zdmultilang/flags/en_US.png
Looks like the plugin gets confused in the case the “blog Address” is different from the physical dirrectory.
Any change to fix that?
H.
Heinakenkä, yes there seems to have a bog as I use the bloginfo(‘url’) function to generate the path to the image, I will look for a solution to this problem before next release.
How to translate home page, I couldn’t translate “Home”.
I changed WPLANG in config.php to my default language code but still when I navigate to main page, it automaticaly change to default language..
Gio, it depends on many things, first is it hand coded in your theme or not, did you try using the widget to see the non default language homepage ?
Because, there is no cookie to remember the selected language for the user. (I don’t like to store information in cookies)
Hi
When upgrading from 1.1.1 to 1.2.0 an error occurs: My blogroll gets to be presented without _div class=”menu”_. (I replaced the brackets with _.)
I’ve tried this a few times now, and reinstalling 1.1.1 solves this problem.
You should perhaps look into this?
Latterlig, I’ll have a look into this, the link translation is brand new and I will make an option to disable it as I know that there might be some problems with link detection
Hi Anthony!
thank you for a fast response…
It’s not hand coded, I just want to translate “Home”, I translated navigation, but I dont know what to do with this one, it doesnt appears in zdmultilang translations..
Gio, yes, the home link is not a page or something this is just a link that is probably inside your theme. What you can do is check the value of the global variable $locale which will give you the current language.
[...] ZdMultilang [...]
Hi,
Thanks for this best plugin, I have searched a plugin like this for months.
This is the best multilanguages plugin that I have seen.
Congratulations you have done a very good job.
I have only a question: why in my wordpress blog (ver. 2.6.3) when go to translation of a post or page I can’t see the original on the same page of translation as described in para 2?
Regards.
[...] ZdMultilang [...]
[...] ZD Multilang espande WordPress rendendolo multilingua, ovvero in grado di presentare articoli e pagine in diverse lingue, oltra a gestire l’intera traduzione di tags, categorie ecc… In pratica per ogni post puoi indicare gli articoli con le relative traduzioni nelle lingue supportate dal tuo blog, che verranno mostrate in base alla scelta del visitatore. [...]
[...] Dave’s pick: ZdMultiLang plugin [...]
:)
Thanks for fixing (paths seems to be correct) it but now the names are missing… :(
Also when moving to English side the default language is not visible anymore as selection.
@Heinakenkä: there is an option to display or not language names (one in the widget and one in the global options)
Hi Anthony,
Version 1.2.0 that I have installed is a great improvement. The translation navigation is very easy / natural, and lots of great ideas. Thanks! Here is my first feedback, which hopefully can help you or other.
1/ excerpt… translate correctly but it’ll not work correctly with other plugins (yarpp, event calendar, other?). After quick analysis, I noticed that these plugins do there own excerpt filter, so I guess it’s the route. As a result, translation will not be displayed, only default text will display. Warning, yarpp (can) also manage RSS, and this is broken with your plugin.
2/ I have tree languages, fr_FR (default), de_DE and en_US. I chose to display the flags (only) on each posts. From post, if I’m in “french” (default), “german” and “english” flags correctly point to the correct permalink (same when I’m in “german”). But when I’m in “english”, german’s permalink don’t use the “de”, so point to the default language : french. This ONLY occurs if I set into option to NOT create permalink for default language.
(If I use (echo (zd_multilang_menu()); without option to display flags, it’s OK).
3/ On my theme, I use the_title(); to display title of post. It works OK for the post, but doesn’t from sidebar (default french title displayed).
Here it is, hope this is clear enough and helpful.
F.
[...] l’ho trovato si chiama ZdMultilang ed è pubblicato su questo blog creato da Anthony [...]
Ok,
My mistake… I did not realize that there was separate setting in the Widget. I only set the the main settings to “show”
Now it works :)
Thank you very many for the plugin! :)
H.
FVE, I’m aware of the bugs you are mentionning, I will correct them very soon.
As for plugins, I can’t really do something as it really depends on what hooks/filters are used by them.
Same for the sidebar, it depend on what function you are calling to display the titles.
How about a option to style the Language Switcher CSS class right from the WP Back-end?
Otherwise I love your Plugin!
Great plugin but I have one problem on several blogs I have installed this plugin on.
Google Translate doesn’t work… I always get the message “Translation from English into English is not supported.”
Can you help me ?
Philippe, how did you configure your language codes ? These are the values that are passed to Google, If you need to send me more details, send me an email at anthony at this domain
Hi Anthony,
I have just installed ZdMultilang and everything went OK, brilliant plugin, thank you very much! I have set my default language (English) and my second language (Spanish), and I can start writing and translating posts and pages. But now, I have a couple of questions. At the moment, in my list of posts & pages everything appears to be in my default (English) language with a link to translate. In reality, many of those posts and pages had already been translated or had been written in Spanish. How can I tell ZdMultilang to recognise my older posts and pages, written in Spanish, as translations of the English ones? Also, I understand for the moment we can have only one default language. How is the best way of managing posts that have been originally written in Spanish, but do not have a translation into the default language (yet)? Thank you for your help.
Graciela,
Regarding your situation, you will have to exchange content of posts between translations. Meaning, you have to copy the spanish content to the spanish translation and the english content to the original post. For now this is the only way to do what you need.
About the way to manage spanish only posts, what you can do is keep them in spanish and just adding, a text like “translation will come soon, in the mean time you can see this page via google translate” with a link
Thanks for the kind comments you made about the plugin.
bonjour,
super ce plugin, merci beaucoup de contribuer à wordpress.
J’ai juste une question, je débute sous wordpress et je ne souhaite m’en servir pour mon projet actuel que de cms pour site internet et pas blog.
Donc dans Options de lecture des réglages de wordpress (dernière version), j’ai demandé dans La page d’accueil affiche d’afficher une page que j’ai crée qui s’appelle accueil.
Du coup, j’ai un problème car wordpress ne crée pas de permalien du style monsite/fr/accueil alors que si je désactive cette option, il m’affiche que je n’ai pas d’articles (et pour cause, je n’en veut pas) mais parcontre la page accueil fonctionne correctement comme les autres pages.
Comment faire pour avoir la première page d’accueil de mon site Accueil et qu’elle soit traduisible ?
merci d’avance
[...] ZDMultilang: Además te permite traducir palabras, páginas y posts sin salir del panel de administración. [...]
Polyvan,
Pour l’instant il s’agit d’un probleme avec le plugin, je n’ai pas encore trouvé le moyen de faire fonctionner une page d’acceuil statique.
Par contre ce que tu peux faire est rédiger un seul post et mettre la page d’acceuil sur les articles. Ensuite faire le design qui fait que l’utilisateur ne saura jamais qu’il s’agit d’un post plutot que d’une page.
Thanks a lot for the plugin and constant updates :)
Very nice update. Thank you!
I am translating the plugin to Brazilian Portuguese when it finished I will send to you.
Thanks again.
I really love this plugin but i’m having a problem when I go to “Reading Settings” and change the front page to display a Page instead of the normal posts that it displays by default the translate link on that page then does nothing. If I then change it back to the default setting things work as expected.
@Brent,
Yes, this is a bug with the plugin integration, I’m trying to figure out out to make it work when the homepage is a static page.
@Prakash, Thanks for the translation, I received it and will include it in next release.
hi,
I’m using the zdmultilang plugin for a milti-language web site.
I thinks it’s a really good plugin, but maybe I miss something…
If I switch language the English (default is Italian) and I click on blog title link, It auto switch to Italian.
Is it normal, or I didn’t see some option to avoid it?
You can see it on http://www.edisplay.it/software-house
[ WP 2.6.5 - ZdMultilang 1.2.0 - theme K2 1.0 RC7 ]
Thanks a lot
Alessandro
PS: I wrote this post also in Wp forums…
@alessandro flocco,
Yes this is normal, the home link is taking you back to blog’url as defined in your Wordpress configuration. Meaning it takes you back to the default language. If you use the widget, clicking on the language will display you the current page in correct language.
There is no option to avoid it as replacing this variable will make the blog non working as most plugins will use the blogoption call to find proper directories.
Hello Anthony, thanks for this plug-in, it is exactly what I would want: multilanguage site that doesn’t use horrible computer generated “translations”.
I’m planning to make a Wordpress MU installation for club which will have many languages. Is ZDMultilang able to run in MU? I don’t know if you extended your testing that far….
Also, is it compatible with WP 2.7?
Sorry, I’m a bit new to the WP scene so I don’t know all that back-end stuff yet.
@ryan,
Yes it is compatible with Wordpress 2.7.
As for Wordpress MU, I was reported it to work but never tested it myself.
Oh, quick response. Thank you! :) Please delete that previous post.
I guess I’ll have to do a test setup to make sure nothing conflicts when I implement it (on MU).
Thank you for sharing your skills with the Wordpress community, we desperately need better bi/multi lingual support than what is offered at base level. Is there somewhere for me to vote your plugin as the best for WP and you as the best dev? Most people just make something and drop it, but you are very good.
One more question, can I offer an admin face in multiple languages using your plugin or another? What I mean is I have a group of different site contributors that their primary languages are different. Is it possible to have the same admin interface for one individual blog in multiple languages?
Ryan,
As far as promoting the plugin, I have no idea :s I don’t really promote the plugin appart from telling people to try it. People that use the plugin and talking about it is my reward.
As for the admin side, I never thought about that, I could try to do that, but it *should* belong to the core of wordpress to enable users to set their own locale (That a good idea for a new plugin btw ;))
Thanks for your time, support and all the compliments you made me :$
Hi! I would like to ask a question about this plugin because I’m switching from Joomla to Wordpress and this seems to be the most similar to the one I use.
Is there a way to keep the original content (translating only the title)? I’m running a video-blog so I need only to translate that.
I have also tried to check NULL via phpmyadmin but no change.
Thanks
Hi, is it possible to get the default language (in our case English) to direct to / instead of /en ?
istvan, no there is no way to do that.
Christiaan, just select the option do not generate permalinks for default langage
I’m not an expert. But I’ve found that modifying lines 1299 and 1300 in this way seems working. Can you please tell if there will be any problem with the code elsewhere?
if ($row[$Post->ID]->post_content!='') {$posts[$Idx]->post_content=$row[$Post->ID]->post_content;
$posts[$Idx]->post_excerpt=$row[$Post->ID]->post_excerpt;
}
Ah right, thanks Anthony, sorry I missed that one!
Hi again Anthony. If I want to use the widget do I have to turn on permalink for the Default language?
And if that’s the case, do you have any instructions online as to how to display the links in a custom position in one’s theme?
Hi,
I have just installed zdmultilang and it is great, thanks!
One problem I have is that I can’t make the plugin “Google Sitemap Plugin” to recognize and publish the translated pages / posts.
I know there must be a way but I am new to wordpress and I am a bit slow…
How would you do that?
@Christian, no you don’t have to turn them on, but there is a bug in the widget that will make them present even if the option is set to no. If you want to put the links in a custom position, you can use the zd_multilang_menu() function which will return <li> elements.
Joe, I’m not sure that it is feasible, I do have the plugin installed, but I’m not sure that the sitemap will generate the links with languages :s
@Joe, If you are referring to the Google XML Sitemap plugin, I have already made a modification to that plugin so that it works with ZDMultilang.
I’m sure Anthony will come up with a more permanent fix. In the mean time anyone who’d like the modified plugin can email me at “info [at] profiphotos [.] com” and I can forward the modified PHP file. It’s working well at my site.
Cheers, Markus
@Markus: Thanks for that I will send you an email, right now.
@Anthony: I have checked your sitemap and effectively only the english pages are indexed. This is a fundamental flow because Google indexing is paramount (at least for me).
I will give Markus’ mod a go but otherwise I will install multiple installs of wordpress, one for each language…
Thanks for your help!
Bonjour,
Super ce plugins, mais moi j’ai un problème avec la version “2.7-RC1″ + “ZdMultiLang 1.2.0″ , install ok et configuration ok.
La traduction des catégories “du blog” + “Lien” fonctionne bien, mais les autres traductions ne fonctionnent si je clic sur “Save” dans les articles ou les pages l’enregistrement ne fonctionne pas (j’ai pourtant le message “Articles ou Pages mise à jour” ).
Merci d’avance.
Christophe, as-tu fait une mise à jour du plugin ou une installation ? Ensuite le mode brouillon ne t’affichera pas la page traduite, elle ne s’affichera que lorsque tu aura publié le billet.
C’est une installation du plugins.
langue fr + en
Voila ma procédure de traduction d’une page:
- Traduction / pages (affichage de la liste des pages)
- Sélection d’une page + clic sur “traduire”
- Affichage du formulaire de la page
- je remplis les champs “Titre” “traduction” puis je clic sur “Save”
- Affichage du message “Articles ou Pages mise à jour” mais problème les champs que je viens de rentrer sont vide.
si je regarde dans la BD dans la table “Wp_Post”, il n’y pas de nouvel enregistrement.
Je pense qu’il a un problème avec une requête Mysql insert.
j’ai les 3 tables suivantes dans ma BD wp_zd_ml_langs – wp_zd_ml_linktrans – wp_zd_ml_termtrans, c’est ok pour ces tables?
je viens de trouver dans le fichier zd_multilang.php le code d’install suivant :
function zd_multilang_install() {
global $ZdmlCache;
global $wpdb;
$termtrans=$wpdb->prefix.’zd_ml_termtrans’;
$langs=$wpdb->prefix.’zd_ml_langs’;
$posttrans=$wpdb->prefix.’zd_ml_trans’;
$linktrans=$wpdb->prefix.’zd_ml_linktrans’;
apparemment il devrait exister la table wp_zd_ml_trans!
il y a peut-être un problème d’install du plugin ?
Merci
Hi Anthony, I’m getting this weird problem where each link doubles up on the other so my first language link is fine:
domain.com/es/
but the next one is
domain.com/fr/es/
and then:
domain.com/ar/fr/es/
Any ideas what I’m doing wrong here?
Bon cela fonction maintenant, le problème est qu’apparemment “longtext character set utf8″ et “text character set utf8″ n’est pas compatible avec ma version de mysql 4.018
comme cela c’est ok pour moi
CREATE TABLE wp_zd_ml_trans (
ID BIGINT(20) NOT NULL,
LanguageID varchar(5),
post_content longtext,
post_excerpt text,
post_title text NOT NULL,
post_status varchar(10),
primary key (ID, LanguageID)
)
Autre chose pense tu trouver une solution pour faire des permaliens du style ?
fr/nom-de-la-page/
en/page-name/ (récupérer le titre de l’article ou de la page OU créer un champ “adresse url” dans le formulaire de traduction post)
@christophe, merci pour les précision :)
@Christiaan, how did you define the languages ? can you send me the content of the zd_ml_lang table by email at anthony at this domain ?
[...] Erfahrungsberichten mit mehrsprachige Blogs … gesucht habe - hier meine Eindrücke. ZdMultilang gefällt mir super, das Plugin läßt sich super bedienen, Spracheinstellungen, [...]
Nice plugin, I’m experimenting with it while preparing an upgrade to 2.7 and a localizable theme. A couple of questions:
1. In Tarski, my sidebar widgets disappear when viewing a translated entry. Why is that?
2. I selected Swedish as the default language, but sometimes I write entries in other languages with no Swedish translation. How do I indicate which language they are in? Up to now, I have been using one category for each language. I suppose there is no easy way to convert that to language data in your plugin.
3. On the same theme: any way to attach a language to a category, so that when reading a post in category “Russian” you also get the Russian WP interface?
Thanks!
@Kalle:
1: what is tarski ? is it a theme ?
2: No this can’t be done, but I’ve been thinking about giving the possibility to do that in the next release (I talk about not having a post in the default language). As for categories assignements, this is not feasible.
3: As far as you selected the correct language code, the WP interface will switch at the same time as the plugin (meaning that if you selected russian language with the widget/link you will get the locale changed and therefore the interface)
Hey!
After updating to 1.2.0, the tags on Tag Cloud widget won’t show for the default language. Since I updated WP at same time I updated ZdMultilang, I can’t really tell if the problem was one or the other.
Any ideas?
@Yuji, this doesn’t seem to be due to the plugin as there is no widget modification done by the plugin. It may be due to the theme.
Yes, Tarski is a theme, and a quite popular one at that.
I can now see that the sidebar disappears in all languages save the default one. Maybe there is a widget that doesn’t like your plugin, or vice versa?
Is there any way to turn of some of the functions? I’d love to use this plugin for changing the interface language and for showing versions of pages in different languages, but as I already have large amounts of content in different languages, and as most of the content is unique for each language, I don’t want the plugin to do anything with posts. Also, I’d like to be able to decide which RSS link the plugin displays for each language. (I’d change them to language category links.) Any way to do that? I suppose there should be a way to turn of parts of the plugin, but which parts, and how?
If you don’t want the posts to be managed, juist don’t translate them and do not activate the translate with google link. In that case posts will be displayed as the original ones.
You mau be able to achieve what you want by commenting this line : add_filter(‘the_posts’,'zd_multilang_translate_post’,10,1); (line 54)
Hey Anthony!
Thanks for your reply.
I tried switching to the default theme, and the problem is still there.
What’s happening is that it outputs:
It seems to be unable to get the tag label for default language (which is English in my case)
Oops, the HTML code ended up parsed.
But in short, there is nothing between the a tags.
This is very strange as when you are seing default language, it will not do anything special and will let wordpress display tags that are already setup. I’ll take a look and see if it’s possible that language detection may cause a bug
OK, thanks, I’ll check that out.
But how do I edit the adress of the RSS link generated by the plugin when changing interface language? I need feed links to categories, like this one:
http://www.kniivila.net/lingvo/esperante/feed
In order to do that, you will have to edit your template to decide which rss feed you want. You can use the $locale global variable to know which language is currently used.
Anthony, I disabled the plugin, reuploaded and enabled it again and it’s now working. Maybe it was some issue updating the tables structure in the DB… But it’s solved now. Thanks!
Yuji, it might have been an update problem, or a migration to WP2.7 problem. I’ll make a post on that issue with Wordpress 2.7 permalinks
Really like the Plugin … version 1.2.0 brought some problems with it which I hope you’ll get to soon … if there is a mail adress to reach you at I’ll send you everything I know.
So don’t get me wrong … great plugin, but a few fixes are needed.
Version 1.1 showed very beautiful my original post undrneath and then I could translate away, now there is an empty box … nothing in it … going over the google link is aweful to translate as now the fliping between pages starts again.
On some of the “img” Tags you forgot to make the closing slash “/>” as well as forgot to add the alt Tags.
I translated it into german, but will have to look over one more time before I send ti to you.
Thanks for the plug in and please look into the issue of not seeing the original post.
Steffen, you can contact me at anthony at this domain. As for the original article, I removed it as it made the page translation “bloated” but I will make an option to put it back for users who wants it. As for the google translate feature, it’s still experimental and I should not have included it as it’s still buggy.
If you’re not using the widget and don’t enable showing the flags (for example) in the option menu you have the possibility to call a function to make them show up, right?
Is this “ or “ . . . and what would be the option for those calls be?
I’m a bit confused as the first on is showing it on every post, even tough I don’t have them translated and the second one gives me en error and my website isn’t showing up anymore.
Thanks for your help!
Nicolas, did you do an upgrade of Wordpress 2.7 until your install ? If so, you should head to the language tab and everything will work fine (this is a bug due to WP2.7 that changes your permalink structure without calling back the permalink modifications made by the plugin).
Otherwise, you can call the zd_multilang_menu(); function from within your theme.
Anthony, thanks for your fast reply. I was checking out my Back-end section again. One thing that seems strange to me is the “Generate permalink for Default language” Option. Although, I did say “No” and update my option it always switches back to “Yes”…strangely the permalink seems to behave the way as “No” is active. This probably is just a little bug and maybe you already noticed it yourself (thought I mention it just in case).
To come back to my little problem. What I like to do on my new design is to wrap the language switcher in a div. That’s why I would choose “No” for the “Show Language Switcher in post” option. My problem with the zd_multilang_menu(); call is that it is showing the flags and the language text for all post even those I didn’t translate. But what I really want is the default behavior as if I would say “Yes” in the option I mentioned earlier.
Can you help me to do that? Thank you so much for your time!
Sorry, forgot to mention that I’m on WP 2.7
Dear Anthony,
I had a website with properly installed ZdMultilang plugin. I would like to use a normal link format, and a plugin is not working.
Our default language is Hungarian (hu). The second is English (en_GB) on the site. The small Zd widget is active. When I click on the small flag the browser seems to be loading the content, but I get the default language one.
The english contents are on the WP of course, but I don’t know what to check.
I can see the MySQL tables also, but nothing special there. But maybe we can check the settings lines.
do you have any suggestions for this problem. (off course we are using the latest ZdMultilang plugin 1.2.0)
Tamas
Tamas, what do you call normal link (?p=… or normal permalinks) ?
Default language must match the normal content of the blog (meaning that if the plugin is not activated and the content is in english, you should use english as default language).
What is a sample url when you click on the flag ? (you can answer to me via email at anthony at this domain if you prefer)
Hey Anthony, great plugin. I think I might have found a bug, though – I made a test post in all 6 languages that the site will be in, and I put the language switcher widget in the right sidebar. However, every link in the widget links right back to the current page, which means that the links aren’t configured correctly in the PHP file (I think). Am I doing something wrong? Or is there a way to fix this?
Thanks
hi,
your plugin works in most cases fine. switching and translates of categories works. but in my installation wp 2.7 with cformsII and ng-gallerie i can’t translate manually post and pages. i see the translate fields, i fill in my translation and click save. the message is “save successfully”. but there is no entry. every time my translation goes into the nirvana.
have you an idea?
regards
klecks
Hi,
i solve my problem.
there is no db tables trans created during the installation.
because my db is running on mysql 4.0.
your code try to create “post_excerpt text character set utf8″
but character set utf is not a valid command in this db version.
i create the table manual and now it works.
regards
klecks
Dear Anthony
I like your plugin very much. My homepage/blog has been en german and english for a while, but so far I used the “Language Switcher” plugin. The fact that all languages were in a single place, separated by appropriate tags, made things simple and complicated at the same time. I am now trying your solution and it looks great to me, with a few quirks.
Feature request: It looks like the admin pages are always shown in the language chosen as the default language. I think it should be one of two ways: a) either it is shown in the language previously chosen through use of the language picker sidebar widget, or b) let each user select his or her language in his user profile.
Do you think you can do this?
Any idea when a new version with the search capability operating in the secondary languages could be available? Any wprkaround around that limitation? Otherwise – remarkable plugin. Thanks!
Hi,
Thank your for developing this great plugin!
Can you please explain how I can display the flags next to each other instead of below each other?
Thanks in advance,
Walt
Walt, you can have a look at this comment
Dear Anthony
How do I go about translating widget titles? or the text in “Text” widgets?
Daniel, Unfortunatly you cannot do that for now. I’m not even sure this is feasible as it is due to each plugin to adapt.
Bonjour,
J’ai un soucis et je ne comprends pas.
J’ai Wordpress 2.7 avec zd_multilang d’installé.
J’ai créé 2 langue fr_FR et en_US. fr_FR est par defaut.
Mais quand je veux éditer en_US ou traduire un post en en_US, je suis redirigé ver la page de login de wordpress (!!), mais je suis pas déconnecté.
Par contre pour éditer des mots, ça marche (re-!!).
Pour tester, j’ai essaye avec Bengali (bn_BD) et Danois (da_DK), le bn_BD me fait le même soucis, mais par contre ça marche parfaitement avec le da_DK …
Une idée ?
Merci pour tout
Bonjour Anthony,
un énorme bravo pour ton plugin ! et pour ta réactivité sur la maintenance !
il marche parfaitement, cependant je rencontre des problèmes sur la sidebar. En utilisant “the_title()” les titres des articles restent en Français…
N’y a t il pas un truc pour contourner cela ?
Merci pour tout le meilleur pour 2009 à Vancouver !
Rebonjour,
Je viens de voir qu’il y a un forum exprès, donc je m’empresse d’aller m’y exprimer.
[Daniel], I did work on widget translation with zd multilang.
It’s in the state : it works for me ! I’m waiting for Anthony’s feelling about it as it is his plugin.
Hi Anthony,
I’m sorry to bother you again and again.
But I didn’t find a answer to the second part of one of my earlier comments. Do you think it’s possible to achieve what I have in mind? Thanks for your time and help.
Hi! Can you please explain how to translate also the “get_the_category()” tag?
It is really important because it is used by seo pluings (such as All in one seo..) to display the category name in single post title. For example: My post title > My category > My blog
If it helps its the use is:
[code]
cat_name;
echo $category;
?>
[/code]
Thanks
My fault previous code doesn’t show correct… here it is…
$categories = get_the_category();
$category = $categories[0]->cat_name;
echo $category;
Bonjour et tout d’abord merci pour ce plugin extra…
J’ai un problème de fonctionnement. Dès que je veux traduire quelque chose, je me retrouve déconnecté (comme si) et si j’entre mes identifiants, il me dit que ce ne sont pas les bons. Alors que si !!
Que faire ?
@Valentin, effectivement il y a un soucis depuis une mise à jour récente, il faut que je regarde d’ou cela provient.
@Anthony Merci pour ce retour rapide !!
J’attends donc et si je peux aider… le blog multilingue que je développe n’en est qu’à son début et peut me servir de “bac à sable”.
ouép pareil j’ai le même pb que Valentin !
en tout cas joli travail ! c’est exactement ce que je cherchais =)
Petite question supplémentaire : l’insertion du code ne fonctionne pas pour moi (dans le header).
Faut-il qu’il soit impérativement placé dans “La Boucle” ?
Où bien ais-je manqué une option ?
Merci d’avance !!
Valentin, de quel code parles-tu ?
[...] ZdMultiLang [...]
oOops, le code n’est pas passé dans le commentaire…
Il s’agit de zd_multilang_menu();
@Valentin, non il n’as pas besoin d’être dans la loop, par contre il faut faire un echo zd_multilang_menu(); pour qu’il affiche quelque chose ;)
@Anthony : génial, merci ! Il me reste à trouver comment supprimer le nom de la langue…
Heu… trouvé !! ;-)
Et merci pour la version 1.2.1 qui corrige le problème que nous étions plusieurs à avoir !!
Heu finalement y’a d’autres problèmes… pas de traduction enregistrées…
J’ai fait une fresh install histoire de voir si c’est moi qui fait une bêtise.
Mais non, à priori, à moins que je n’ai pas compris comment fonctionnait le plugin.
Je clique sur traduire (une page par exemple), j’enregistre et puis plus rien. Où se trouve la page traduite ? Elle n’est pas annoncée comme traduite, etc.
Et le masquage du nom de la langue dans le menu ne fonctionne pas non plus.
Merci !!
J’ai trouvé le bug… le LanguageID n’est pas stocké dans la table zd_ml_trans.
En tout cas pour moi. Par contre, au niveau du code… je ne sais pas où ça se passe !!
J’ai donc inséré ce LanguageID dans la colonne de ma page (bien enregistrée dans la table) et pouf, zdMultilang le reconnaît comme traduit.
Désolé de faire autant de commentaires mais je crois qu’il n’y a que le titre qui est enregistré en base, l’excerpt et le content ne le sont pas non plus.
Et en fait, non. Si je regarde la base, il m’a créé un nouvel enregistrement avec seulement le content, pas de titre et rien du reste non plus.
Weird ;-)
J’espère que c’est un bug avéré et pas seulement chez moi et j’espère aider.
Vais faire un don moi… parce qu’il est réactif à nos remarques Anthony !!
Hi Anthony,
I think you have made one of the bests (if not the best) multi-language plugin available for wordpress. Works amazingly well, and the interface is quite intuitive.
I’ve just want to point out two possible features that I think would be a great improvement for this wonderful plugin:
The first one is to create a function to get which is the current language (this one is easy, but really useful)
The second one, but the most important, I think it is _essential_ to have comments on each post separated by language. Currently people from one language could see the comments made by people in another language, which does not make much sense since readers usually do not understand more than their own language, and get discouraged to comment if there are comments in other languages.
Again, thank you very much for creating and sharing this plugin and I hope you like these ideas ;)
@Pau Sanchez, Thanks for your support !
As for current language, you can check the global variable $locale which is always accessible and filled with the current language.
And for the suggestion, I already thought about it, but I have to leave a track somewhere of the current language for each comment. And the purpose of the plugin is to use its own tables to manage everything, meaning that if you want to remove the plugin, you just have to delete 3 database tables, and the blog will appear as if the plugin was never installed.
I will think of a way to implement your idea without altering original tables.
Hey @Anthony!
It’s good you privided the plugin as open source, I finally got time and was motivated enough to work for the first time on a WordPress plugin, in fact, to work for improving your plugin ;)
I’ve improved your plugin by implementing the “keep separate comments” functionality I mentioned to you around 10 months ago.
You could check the details of the new functionality in my blog, where I provide a TGZ with the .diff and the updated zdmultilang.php file.
The address is:
http://www.codigomanso.com/en/2009/10/improved-multi-lingual-support-for-wordpress/
I’ll be pleased if you add this improvements on future versions of ZdMultilang. I tried to implement it using your coding style.
If you need anything, or want to know more details, just send me an e-mail ;)
Thanks for the plugin and I hope you like and enjoy the new changes!
Thanks, I’ll try to include that in next release :)
wonderful plugin, congratulations.
with your permission, the report on my blog.
Thank you.
by Italy
Hi @Anthony,
Just as an idea, I haven’t done anything for WP, and I just had a look on the tables, but I think maybe for keeping the plugin non-intrusive, one solution could be to create a new table that takes the comment_ID, and saves in which language a comment has been created (a new entry would be created at the same time the comment is inserted on the DB). The, when showing comments, if a global setting says you have to separate comments, show only the comments for that post which language in the new table is the same as current language.
Don’t get me wrong. I don’t know if this is feasible or not, because as far as I can see, although I don’t have much idea of WP internals, I know there are several components of WP involved, and I’m sure that you, as the developer of the plugin, will have better ideas on how to do this kind of things :)
Anyway thank you again for listening (and answering) to my comments ;)
Thanks again!
Pau, that’s how I think I will do it, the only thing that I don’t like is, another table :(
I may find another way to do the translations globally, in order to have less tables.
Hi Antony
The language widget only permits correct changing of languages while being on the blog’s main page. Not if being on some article or other page. At least not on my blog. Did I do anything wrong? Can you give me a hint? Or is this a bug?
I would expect the language switcher widget to change the current page to another language, whatever that current page is.
Thank you very much
– Daniel
Bonjour,
Je suis en train d’essayer ZdMultilang avec Wordpress Mu. J’ai un problème, le plugin est bien installé et activé. Mais, lorsque je traduit un article et que je le publie, celui-ci ne semble pas être sauvegardé. Est-ce que ce problème est connu? Y’a t-il une solution?
Merci.
@F, Oui, le problème est connu et corrigé dans la version 1.2.2 du plugin.
Bon courage avec WPMU (je ne l’ai pas testé)
Hi Anthony.
Whether I can use the switcher of languages not in a message body, and in any place of a site?
@Aleks, Yes, you can deactivate the option show language selector in posts and instead use the widget provided.
Anthoy, merci. Je teste demain et je te tiens au courant.
Bonjour,
tout d’abord bravo et merci pour ce plugin si pratique !
Je viens de réinstaller wordpress, et il m’arrive ce souci : à partir d’une bdd vierge, et d’un wp vierge aussi, à l’activation du plugion dans le backoffice il s’affiche ceci : “Warning: Invalid argument supplied for foreach() in /home/allbathr/public_html/allbathros/wp-content/plugins/zdmultilang/zd_multilang.php on line 216″ Je suis bien embêtée car je ne vois pas du tout d’où pourrait venir le problème… Avez-vous une idée ? (j’ai la version 1.2.2 du plugin et la version 2.7 de WP)
@Nath, effectivement, il faut que tu traduise au moins un terme (categorie, tag, lien, etc…).
Je corrige ce bug et il sera intégré a la prochaine version du plugin ;)
Hi Anthony,
I really appreciate your great plug-in – easy to install and easy to use.
I have run into one problem though. My first page works fine when switching back and forth between languages. The problem is that any underlying pages get stuck in my second language. For example – page http://domain_name.com/?page_id=2&lang=se is shown correctly but the link to the default languages picks up http://domain_name.com/?page_id=2&lang=se. The correct page can be found either by browsing from the top or by pointing to the page http://domain_name.com/?page_id=2&lang=en
All links from default languages to second languages works fine.
I use Wordpress 2.7 and ZdMultilang 1.2.2.
What did I miss? Any clue what’s wrong?
Per
@Per,
Thanks for the comment, as for the problem you are encoutering, I know that the plugin is not working great with the “no permalinks” structure of the blog. I would advise that you use pretty permalinks in order to have correct management of the languages.
Does this plugin work with version 2.7? I don’t get any language switcher when its enabled.
Yes, the plugin do work perfectly with WP2.7 as you can see on this blog. Depending on your options the switcher may appear on non tranlated posts
Is there any solution for the “static page” as homepage not working bug??
I´ve just translated a whole website and I really need to have a custom homepage =(
@Gason, I’m trying to figure out the problem but have a little time, sorry for that. Be assured that this issue is of high priority to me.
hello anthony !
yaurait-il moyen d’integrer dans ton plugin la possibilité de traduire le slogan ainsi que le nom des catégories ?
Pour traduire le slogan, il suffit d’aller editer la langue et le titre du blog, ainsi que le slogan est editable a cet endroit.
Quand aux catégories, il suffit d’aller dans le menu catégories du plugin…
ok vu, par contre quand on veut éditer la langue, ça déconnecte de l’admin (pb caractères spéciaux dans le lien on dirait)
Hi Anthony,
I tried to switch to “pretty permalinks” as you recommended, but still the same symptoms but with prettier link names.
Switching language in any underlying pages get stuck in my second language. For example – page http://domain_name.com/se/about is shown correctly but the link to the default languages picks up http://domain_name.com/se/about.
Sorry for bugging you but I would love being able to get this to work and add a third language
Thanks / Per
Per, I’ll have a look at what may cause this problem, I’ll keep you informed.
Anthony, you’ve done a great job with this plugin!
I’m waiting for the static_page bug being fixed, but anyway, thanks for the plugin!
Salut,
Bravo et merci pour cet excellent plugin.
Si toutefois tu trouvai le temps de te pencher sur la structure des permaliens afin qu’ils soient construit à partir du titre du post (ou de la page…) en fonction de la langue ( /fr/nom-du-post, /en/post-name…), ce serait, je crois, un plus très appréciable en terme de référencement.
Ceci étant, le travail que tu a déjà effectué et mis à la disposition de la communauté est remarquable et je t’en remercie encore.
Je vais sans doute utiliser zdmultilang dans les jours à venir pour un projet sur lequel je travail et je ne manquerai pas de suivre son évolution.
Bonne continuation et à bientôt.
Séb.
C’est juste pour te dire MERCI, ton plugin est GENIAL !!!
Hello Antony,
nice plugin.
I would like to show flag once, on the top of sidebar.
how can i find this result?
thank you in advance for help.
@susoland,
You can use the zd_multilang_menu() function as this : echo zd_multilang_menu();
This will display a set of li elements.
As for your other problem, you can always hard code it, using the $locale variable which contains the current language
Another problem:
after installation i have problem with default page.
I have a menubar with an “home” tag that links to my default page.
but mysite/it default page (or mysite/eng default page) is not the one i want.
mysite/language page links to the Wordpress default page, that contains last published post.
how can i set up the mysite/language default page???
thanks in advace.
Hi Anthony,
I haven’t posted here in a long time – but that’s probably good since everything is working well with your plug-in – or it was.
I hope you’re also well settled in Vancouver by now. It’s good to hear that things are ok for you.
Now my question. You have posted before in this site about a plug-in that you found interesting called WP-Print. I have recently NEEDED a plug-in like this for my site and once installed I discovered (by process of elimination) that there appears to be a conflict with the newest WP-Print 2.4 and ZdMultiLang. Is there anyway something can be worked out to get these two plug-ins to co-exist nicely? Or is there an alternative Print plug-in that is known to work with ZdMultiLang?
Thanks,
Markus
I’m very sorry, Anthony,
but i don’t understand you suggestion.
I’m not a develper, maybe i need detailed information.
i don’t understand wich is the string i have to put in side bar and hide in contents for flag.
thank you,
s.
Hallo Anthony, thanks for your great plugin, I’m trying to configure it. Everything goes right, but one problem: translated tag .. I know, that it’s possible to translate it too, but I can’t find where is the problem, my tag in translated pages is still in original language :| ..
Can you help me? Thanks a lot!
Greetings, Jan (Czech Republic)
Ok, as I mentionned earlier (probably in French so I won’t blame you of course ;)) tags are translated by analysing the html code, if your theme is using other parameters than the default ones it may make tags impossible to translate.
Thank you for quick answer and sorry, that tag was -title-, deleted by filter here («title», < title &rt;, replace – with brackets, hope it will be displayed).. In header.php is code “«?php wp_title(”); bloginfo(‘name’); ?»”, should I change it?
@Jan, can you explain me with more details directly by email (anthony at this domain ?) cause I’m not sure to understand your problem exactly
Hi Anthony,
i really like you plugin, but i have a problem !
After installation, zdMultilang doesn’t work in front end.
I have flags in my admin panel, so i can translate pages/post, but on my site front end i don’t have flags and link for languages.
My options settings are:
italian, yes, show, show, show, top, show, show.
thanks!
If you have no article translated, then no flag will be displayed.
If you want to have flags displayed, you also have to put the widget somewhere on your site.
How do I get the parent language to show in custom wp-loops? I do have to custom loops showing the latest posts in two categories. They are translated and working with the default loop.
The loop I’m using:
Any why to pass the language chosen within these custom loops?
$lastposts = get_posts(‘numberposts=3&category=13′);
foreach($lastposts as $post) :
setup_postdata($post);
thanks for a neat plugin! Would it be possible not to have to go to the ‘translations’ admin panel to translate posts? I mean, qtranslate has these beautifull boxes next to visual/html, which would make your plugin a lot easier to use by end users!
BTW: when one looks at the normal post manager, there always appears a translate icon, even if there already has been a translation.
Erik, there is the icon near the media managers with the flags. And yes the flag is always here because, you may want to translate or edit a translation.
Hi Anthony,
thank you for your response. I overlooked the flag. It would however be useful if that flag updated according to the