Zen-Dreams

Zen-Dreams.com

ZdMultilang

  • Français

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.

  1. Installation
  2. Usage
  3. Options
  4. F.A.Q
  5. Download
  6. Screencast

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 :

translate-post

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 ?


By Anthony

207 Comments

  1. jorge
    Posted 19 June 2008 at 17:29 | Permalink

    dommage de ne pas disposer d’une F.A.Q digne de se bon ni d’aucune explication supplémentaires á revoir… :-)

  2. Posted 19 June 2008 at 17:52 | Permalink

    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.

  3. Posted 27 June 2008 at 6:58 | Permalink

    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 :)

  4. Posted 27 June 2008 at 11:18 | Permalink

    Ljesh,

    I don’t see it twice, I only see the flag once for each language.

  5. Fedor
    Posted 30 June 2008 at 15:34 | Permalink

    when I try to add a language named with non-latin characters, it’s shown as ????????

  6. Fedor
    Posted 30 June 2008 at 16:51 | Permalink

    I have solved my problem by setting “LanguageName” column collation to ‘utf8_unicode_ci’

  7. Posted 1 July 2008 at 10:44 | Permalink

    bonjour anthony

    Ce plugin est très intéressant cependant lorsque je l’active l’administration passe en anglais.
    Une idée?

  8. Posted 1 July 2008 at 11:54 | Permalink

    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.

  9. Posted 25 July 2008 at 20:30 | Permalink

    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

  10. Posted 25 July 2008 at 21:12 | Permalink

    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.

  11. Posted 26 July 2008 at 1:47 | Permalink

    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 :)

  12. Posted 26 July 2008 at 10:32 | Permalink

    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

  13. Posted 26 July 2008 at 11:06 | Permalink

    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.

  14. Posted 26 July 2008 at 11:21 | Permalink

    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

  15. Posted 26 July 2008 at 12:06 | Permalink

    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.

  16. Posted 26 July 2008 at 13:15 | Permalink

    Yes! The Dutch flags appears by renaming nl.png to nl_NL.png thank you very much!

  17. Posted 27 July 2008 at 0:23 | Permalink

    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!

  18. Posted 27 July 2008 at 10:36 | Permalink

    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.

  19. Posted 27 July 2008 at 12:54 | Permalink

    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

  20. Posted 27 July 2008 at 12:57 | Permalink

    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 :)

  21. Posted 27 July 2008 at 13:10 | Permalink

    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.

  22. Posted 27 July 2008 at 15:18 | Permalink

    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.

  23. Posted 27 July 2008 at 17:46 | Permalink

    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 ;)

  24. Posted 28 July 2008 at 10:15 | Permalink

    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.

  25. Posted 28 July 2008 at 10:54 | Permalink

    Great !
    I Hope the plugin will satisfy your needs, and next version will even more ;)

  26. Posted 29 July 2008 at 3:23 | Permalink

    It seems that plugin is not working with cyrillic langugage.

    Anyone manged to use this plugin it showing ???????? if I translate posts.

  27. Posted 29 July 2008 at 4:00 | Permalink

    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);
    }
    }

  28. Posted 29 July 2008 at 9:19 | Permalink

    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.

  29. Posted 29 July 2008 at 10:55 | Permalink

    I am glad to help, for me this plugin is best multi language option.

    You have done nice plugin!

  30. Posted 29 July 2008 at 12:34 | Permalink

    Thanks teneke !
    I’m glad you find this plugin usefull :)

  31. Posted 29 July 2008 at 18:03 | Permalink

    hi. Thanks for plugin

    perfect.

    Regards

  32. fred
    Posted 30 July 2008 at 23:09 | Permalink

    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

  33. fred
    Posted 30 July 2008 at 23:17 | Permalink

    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 ;-)

  34. Posted 31 July 2008 at 1:20 | Permalink

    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.

  35. Posted 31 July 2008 at 9:59 | Permalink

    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.

  36. Posted 31 July 2008 at 11:58 | Permalink

    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.

  37. Posted 31 July 2008 at 12:08 | Permalink

    Ferlo, apparently there is a bug with locale in dashboard, I’ll look into it ;)

  38. Posted 31 July 2008 at 13:39 | Permalink

    I can translate this plugin to spanish if you want. Sende me an e-mail.

  39. Posted 31 July 2008 at 14:25 | Permalink

    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 :)

  40. Posted 31 July 2008 at 17:03 | Permalink

    Ferlo, this is strange, did you set default language as italian ?

  41. Posted 1 August 2008 at 17:17 | Permalink

    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 :)

  42. Posted 2 August 2008 at 10:41 | Permalink

    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.

  43. Posted 2 August 2008 at 11:32 | Permalink

    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.

  44. Posted 2 August 2008 at 21:16 | Permalink

    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)

  45. Posted 3 August 2008 at 10:05 | Permalink

    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.

  46. Posted 3 August 2008 at 10:16 | Permalink

    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.

  47. Posted 3 August 2008 at 11:02 | Permalink

    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 ;)

  48. fred
    Posted 3 August 2008 at 21:34 | Permalink

    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 ?

  49. Posted 4 August 2008 at 10:15 | Permalink

    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.

  50. Fred
    Posted 4 August 2008 at 18:33 | Permalink

    Si tu as le temps ça m’intéresse beaucoup, car pour le moment je n’ai pas encore trouvé de solutions alternatives.

  51. Posted 7 August 2008 at 17:09 | Permalink

    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!

  52. Posted 7 August 2008 at 17:42 | Permalink

    Hi luisa,

    I’ll have a look at it and fix everything that needs to be fixed for next release, thanks for the information :)

  53. Posted 13 August 2008 at 12:39 | Permalink

    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

  54. Posted 13 August 2008 at 12:48 | Permalink

    Julio, it seems that there might be a problem due to the fact you didn’t translate any term.

  55. Posted 13 August 2008 at 15:14 | Permalink

    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

  56. Posted 13 August 2008 at 15:59 | Permalink

    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

  57. Frib
    Posted 19 August 2008 at 21:07 | Permalink

    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.

  58. Posted 19 August 2008 at 22:19 | Permalink

    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.

  59. Frib
    Posted 19 August 2008 at 22:58 | Permalink

    Bien sûr:
    [Lien supprimé]
    Merci pour tout.

  60. Posted 19 August 2008 at 23:22 | Permalink

    Frib, je vais voir ça dès demain :)

  61. Posted 20 August 2008 at 9:19 | Permalink

    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

  62. Frib
    Posted 20 August 2008 at 22:15 | Permalink

    Bonsoir,

    j’avais testé avec de_DE mais il n’y avait pas le flag et les tags ne marchaient pas non plus :(

  63. Posted 21 August 2008 at 14:07 | Permalink

    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!

  64. Posted 21 August 2008 at 17:44 | Permalink

    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.

  65. Posted 23 August 2008 at 11:16 | Permalink

    Hello,
    I just get an screen where I get the message there is no language installed and I should install one. How?

  66. Posted 23 August 2008 at 14:05 | Permalink

    Christian, just follow the documentation, it’s described in step 2.

  67. jpat
    Posted 24 August 2008 at 23:12 | Permalink

    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

  68. Posted 25 August 2008 at 9:56 | Permalink

    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.

  69. Posted 5 September 2008 at 15:45 | Permalink

    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.

  70. pietro
    Posted 5 September 2008 at 15:51 | Permalink

    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

  71. Posted 5 September 2008 at 21:06 | Permalink

    Etienne, tu peut ne pas afficher le selecteur de langue, mais tu ne peux pas le faire pour certains articles uniquement.

  72. Posted 5 September 2008 at 21:11 | Permalink

    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.

  73. pietro
    Posted 5 September 2008 at 23:28 | Permalink

    ok, thank you

    for the second question, have you planned this improvements for next releases?

  74. Posted 6 September 2008 at 9:50 | Permalink

    Pietro, yes it will be included in next release :)

  75. Posted 6 September 2008 at 13:26 | Permalink

    OK je vais utiliser la fonction zd_multilang_menu dans mon thème !

  76. pietro
    Posted 6 September 2008 at 17:07 | Permalink

    great :-)

    how can i include the funcion?


    this code not work

  77. pietro
    Posted 6 September 2008 at 17:08 | Permalink

    <?php zd_multilang_menu(); ?>

    this is the the code i have tested

  78. Posted 7 September 2008 at 9:02 | Permalink

    Pietro, this is the code you should include :
    <ul>
    <?php zd_multilang_menu(); ?>
    </ul>

  79. pietro
    Posted 7 September 2008 at 9:37 | Permalink

    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

  80. Posted 7 September 2008 at 20:18 | Permalink

    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

  81. Posted 7 September 2008 at 22:19 | Permalink

    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.

  82. Posted 8 September 2008 at 6:41 | Permalink

    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!

  83. Posted 8 September 2008 at 12:34 | Permalink

    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.

  84. Posted 8 September 2008 at 12:54 | Permalink

    Hey Anthony!
    Widgets may have custom text as well. Maybe language tags would be an idea?

  85. pietro
    Posted 8 September 2008 at 17:40 | Permalink

    anthony, in my theme the code don’t show anythink if i “hide” all in the option

  86. Posted 8 September 2008 at 17:57 | Permalink

    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.

  87. Jossi
    Posted 9 September 2008 at 1:38 | Permalink

    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.

  88. Jossi
    Posted 9 September 2008 at 1:40 | Permalink

    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.

  89. Jossi
    Posted 9 September 2008 at 4:16 | Permalink

    @ pietro the code is:

    echo zd_multilang_menu();

    (inside the php tags)

  90. pietro
    Posted 9 September 2008 at 10:10 | Permalink

    @ 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

  91. Andy
    Posted 9 September 2008 at 11:00 | Permalink

    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

  92. Posted 9 September 2008 at 11:01 | Permalink

    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.

  93. Andy
    Posted 9 September 2008 at 11:53 | Permalink

    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.

  94. Posted 9 September 2008 at 12:32 | Permalink

    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;}

  95. FVE
    Posted 19 September 2008 at 19:47 | Permalink

    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)

  96. Posted 20 September 2008 at 10:31 | Permalink

    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 ;)

  97. Posted 22 September 2008 at 12:32 | Permalink

    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 ?

  98. Posted 22 September 2008 at 17:47 | Permalink

    Oui, depuis la derniere version, l’ecremage du code a fait que ca ne fonctionne plus, dans la prochaine version, cela sera corrigé.

  99. Posted 23 September 2008 at 11:54 | Permalink

    @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.

  100. Posted 23 September 2008 at 14:25 | Permalink

    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.

  101. Posted 24 September 2008 at 17:53 | Permalink

    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!

  102. Posted 24 September 2008 at 18:25 | Permalink

    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.

  103. tony
    Posted 24 September 2008 at 19:48 | Permalink

    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.

  104. Posted 24 September 2008 at 21:59 | Permalink

    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.

  105. Posted 6 October 2008 at 20:14 | Permalink

    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 :-)

  106. Posted 6 October 2008 at 22:13 | Permalink

    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)

  107. Posted 7 October 2008 at 0:07 | Permalink

    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

  108. Posted 7 October 2008 at 17:43 | Permalink

    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)

  109. Posted 7 October 2008 at 21:45 | Permalink

    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.

  110. Posted 7 October 2008 at 21:56 | Permalink

    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?

  111. Posted 7 October 2008 at 22:23 | Permalink

    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.

  112. Posted 9 October 2008 at 15:58 | Permalink

    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?

  113. Posted 9 October 2008 at 16:54 | Permalink

    Amazing plus convenient!

    thanks !!!

  114. Posted 9 October 2008 at 18:34 | Permalink

    @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 ! :)

  115. Posted 9 October 2008 at 20:00 | Permalink

    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.