Basic Bilingual 1.0 Plugin for WordPress: Blog in More Than One Language! [en]

[fr] Le plugin WordPress Basic Bilingual que j'utilise depuis un nombre incalculable d'années pour fournir des résumés "dans l'autre langue" à mes articles a enfin été mis à jour. Grâce à Claude Vedovini, il passe à la version 1.0, que je vous conseille d'essayer tout de suite!

A huge huge thanks to Claude Vedovini who spent the last few days working on my really old plugin (but still used daily!) Basic Bilingual in order to release version 1.0. Download it now!

The plugin has been around since early 2005, and honestly, what it does hasn’t really changed: it allows you to specify a summary of your post in another language and label it as such, as you can see here on Climb to the Stars. If you want more complex handling of languages in WordPress, head over to WPML, the likes of which weren’t around when I first threw a few functions together to try and make my bilingual blogging life easier.

So, what’s new?

  • unlike me, Claude actually knows how to write code, so instead of being some horribly outdated collection of clumsy functions, the plugin’s code is now upto 2013 standards (hadn’t seen an update in 4 years, can you imagine?)
  • it’s now possible to have more than two languages in your blog, with two “different language” excerpts accompanying your main post
  • you can now choose the markup for your excerpts without having to wade through plugin code: there is a lovely settings page for that and other things you can configure
  • the language widget in the page editing screen is a drop-down now, and not an ugly text field where you need to type your language’s code
  • you can also filter excerpts based on your readers’ browser settings
  • …and the plugin has been tested with the latest version of WordPress! (not that it broke too much before…)

So thanks so much Claude, it feels good to have Basic Bilingual off life support and alive again!

If you use Basic Bilingual I’d really love if you could take a few minutes to write a review over on Thanks! Oh, and if you have a crazy plugin idea that needs bringing to life, ping Claude about it 😉

Similar Posts:

Bilingual Frustrations, Still in 2013 (With Siri and Dragon Dictate) [en]

[fr] J'adore Siri, mais qu'est-ce que j'aimerais que les logiciels à "intelligence linguistique" puisse fonctionner en mode multilingue. En tant que bilingue, je trouve extrêmement frustrant de devoir (a) m'en tenir à une seule langue (b) me souvenir dans quelle langue j'ai "configuré" le logiciel en question!

Before leaving for India last year, my earbuds died, which I took as a sign to head out and upgrade my iPhone, something I was due for sooner or later (in Switzerland, your mobile phone is tied to your subscription, and you get a discounted phone every one or two years).

This means I got an iPhone 5, and was finally able to play about with Siri. I love Siri and voice commands/dictation in general. But as a bilingual person, I find it really sad that there is no voice command to switch languages. I do it many many times a day! Bilingual mode would be the best. Sure, it would double Siri’s vocabulary, but I’m sure with today’s technology and if Siri knows which two languages I’m speaking it’s doable.

Plus I read in a forum (link lost since then) that changing languages resets all the “learning” aspect of Siri? That really sucks and should qualify as a bug.

When will people making software that has language intelligence understand that there are bilingual people out there who juggle with two (ore more!) languages constantly throughout their day? I have exactly the same grief with Dragon Dictate.

Remember: most people are multilingual. And if you’re interested in bilingualism, you should be reading François Grosjean‘s “Life as a Bilingual” blog.

2nd Back to Blogging Challenge, day 3. Others: Nathalie Hamidi(@nathaliehamidi), Evren Kiefer (@evrenk), Claude Vedovini (@cvedovini), Luca Palli (@lpalli), Fleur Marty (@flaoua), Xavier Borderie (@xibe), Rémy Bigot (@remybigot),Jean-François Genoud (@jfgpro), Sally O’Brien (@swissingaround), Marie-Aude Koiransky (@mezgarne), Anne Pastori Zumbach (@anna_zap), Martin Röll (@martinroell), Gabriela Avram (@gabig58), Manuel Schmalstieg (@16kbit), Jan Van Mol (@janvanmol). Hashtag:#back2blog.

Similar Posts:

Polyglots and other Multilinguals, Rejoice [en]

[fr] A lire de toute urgence pour ceux d'entre nous qui parlent plus d'une langue (même imparfaitement) -- et pour les autres aussi: Life as a Bilingual, blog du Prof. François Grosjean de Neuchâtel.

My friend Corinne shared a link on Facebook the other day. It was a link to an article (I’ve forgotten which one by now, as I’ve pretty much read them all) on a blog titled Life as a Bilingual. It’s written by François Grosjean, professor of psycholinguistics at the University of Neuchâtel (his site is also full of interesting information).

Go and read. Start anywhere. Myths about bilingualism, for example. (My only complaint is the use of the term “bilingualism” to refer to what is actually “multilingualism” — using more than one language.) Or what parents need to know.

More from the blog:

Pick one, and start reading. If you’re interested in languages, or if you speak more than one, you’ll probably spend a few hours reading through the blog.

I have to say I was really happy to see that research about using multiple languages seems to confirm many conclusions I arrived at instinctively (check out my Multilingual Page if you’re not familiar with my various talks and rantings about multiple languages online).

Thanks for your sharing your research with us through your blog, François!

Similar Posts:

WPML to Make Your WordPress Site Multilingual [en]

[fr] A tester absolument si vous devez mettre en place un site multilingue: le plugin WPML pour WordPress.

I’ve been wanting to play with the WPML WordPress plugin for a while now, and I finally took the plunge today and updated my professional site to the latest version of WordPress, as well as WPML. (Sadly, the content still needs a major overhaul.)

Until now, I had built it using two separate WordPress installations, one in English, one in French, linked together by my quick-and-dirty plugin Bunny’s Language Linker (which, in the light of today’s experiment, I will be retiring from rather inactive development — Basic Bilingual remains, though, and still very much makes sense).

Here’s a summary of what I did:

  • backed up my database
  • upgraded both WordPress blogs to the latest version and exported their content
  • removed the automatic language redirection based on browser language preferences to make sure it wouldn’t interfere (I want to find a way to insert it back in, help appreciated)
  • added and activated the WPML plugin on the English installation
  • went through the settings after activating advanced mode
  • translated widget text and site tagline
  • manually imported content from the French site (import failed due to PHP on my server not being compiled with ctype_digit()), but it was only a dozen pages — it’s easy to specify language and of which English page a new one is a translation of, if any)

Setting up WPML

I did encounter some grief:

  • when selecting the “different languages in directories” I kept getting an error message which didn’t make much sense to me; tip: if that happens, make sure that your site and pages all work fine (in my case, I had to reset permalink structure because it had got lost somewhere on the way — even though the settings didn’t change)
  • I’m using a theme with an existing .mo file for French, so I selected that option (to figure out what the textdomain is, look through a theme file to see what the second argument to the gettext calls is — they look like __("Text here", "text domain here")) but it seems that all the strings for my theme still appear in the “string translation” pane
  • initially the strings for my widgets and site tagline weren’t appearing in the “string translation” pane — you have to click the “Save options and rescan strings” button for that, even if you haven’t changed any settings (that was not exactly obvious to me)

Here’s what I still need to fix:

  • the rewrite rules are set to hide the “language directory” part of the URL when browsing the site in the default language — I want to change this as explained in this forum post
  • reimplement automatic language detection
  • set up a custom language switcher that looks more like “Français | English” somewhere at the top right of the page

And honestly, once that is settle, WPML is as close as it gets to my dream multilingual plugin for WordPress!

Similar Posts:

Google: "Don't Mix Languages on the Same Page" [en]

[fr] Dommage, un article sur comment démarrer son site multilingue sur un des blogs officiels de Google donne des conseils que je trouve assez malheureux (genre: "ne mélangez pas plusieurs langues sur une même page").

I wanted to leave this as a comment on [How to Start a Multilingual Site]( over on the [Official Google Webmaster Central Blog](, but unfortunately Blogger is taking a break right now and I can’t post. So, here we go:

“Avoid mixing languages on each page, as this may confuse Googlebot as well as your users.” (Nico, thanks, I’d missed that one)

I’m really disappointed to see this kind of advice handed out. Yes, it confuses Googlebot, but only because it doesn’t (I guess?) take into account lang=”xx” attributes. (Yeah, nobody uses them, but that’s because nobody parses them.)

But users? Most people are not pure monolinguals. We need ways to make linguistic barriers online weaker, and not stronger.

I’ve been mixing languages on Climb to the Stars for eight years now, and it hasn’t prevented my readers or my Page Rank from being happy.

I vote for Google learning that the “page” is not the smallest item on the web that is allowed to have its own language attribute, rather than asking people to conform to some kind of artificial absolute monolingualism.

I’ll try an post tomorrow, but at least this is out there. I left a [previous comment]( on the same post earlier today, by the way. (Check out my other [multilingual stuff](/multilingual) while you’re on the topic.)

Similar Posts:

Bunny's Language Linker: New WordPress Plugin [en]

[fr] Un nouveau plugin WordPress que je viens d'écrire. Celui-ci vous permet de gérer les liens entre pages équivalentes de deux versions linguistiques d'un site. Par exemple, si vous avez et (deux installations WordPress séparées!), le plugin vous aidera à faire en sorte qu'il y ait des liens entre et

Ladies and Gentlemen, I’m proud to announce the WordPress plugin [Bunny’s Language Linker](/code/language-linker.tgz) ([zip](/code/, [phps](/code/language-linker.phps)).

I’ve been wanting to write this plugin for ages, and I’ve finally done it this evening. This is a plugin for people who have a WordPress site with content duplicated in more than one language, like I’m going to have with []( For example, you have an “about” page in English, and another “about” page in German. This plugin helps you create and manage links between such “sister” pages. (“Pages”, not “posts”. It doesn’t work with posts at all.)

The plugin adds an extra field to the page editing form, inviting you to input the *page slug* of the sister page:

Bunny's Language Linker - Admin view

The screenshot is a bit small, but there on the right, there is a little box with “a-propos” — the slug of the French sister page. It works with more than one other language, too. You just need to edit the settings in the plugin file to specify which languages you’re playing with (instructions are in the plugin file). If I had sites in 3 other languages, say French, Spanish, and German, my settings line in the plugin file would look like this:

$bll_other_languages=array(‘fr’, ‘es’, ‘de’);

And the little box would provide three different fields for the page slugs of the different localized sites. (OK, I’m making this sound complicated, sorry.)

The plugin then automatically adds links to the sister pages you’ve indicated. Here’s what it could look like:

Bunny's Language Linker - Page view

There’s a readme file with the plugin which will give you some more details. I’ll soon have a client site in production using that plugin, so if these explanations weren’t very clear, hopefully the demonstration will help.

Similar Posts:

BlogTalk 2008 Proposal — Being Multilingual: Blogging in More Than One Language [en]

Here’s the proposal I just sent for [BlogTalk 2008]( (Cork, Ireland, March 3-4):

> The strongest borders online are linguistic. In that respect, people who are comfortable in two languages have a key “bridge” role to play. Blogging is one of the mediums through which this can be done.

> Most attempts at bilingual (or multilingual) blogging fall in three patterns:

> – separate and independent blogs, one per language
> – one blog with proper translation of all content, post by post
> – one blog with posts sometimes in one language, sometimes in another

> These different strategies and other attempts (like community-driven translation) to use blogging as a means to bridge language barriers are worth examining in closer detail.

> Considering that most people do have knowledge (at least passive, even if incomplete) of more than one language, multilingual blogging could be much more common than it is now. The tools we use, however, assume that blogs and web pages are in a single language. Many plugins, however, offer solutions to adapt existing tools like WordPress to the needs of multilingual bloggers. Could we go even further in building tools which encourage multilingualism rather than hindering it?

> —-
> Extra material:

> I’ve gathered pointers to previous talks and writings on the topic here: []( — most of them are about multilingualism on the internet in general, but this proposal is for a talk much more focused on blogging. Here is a video of the first talk I gave in this series (by far not the best, I’m afraid!) []( and which was about multilingual blogging — it can give you an idea of what this talk could look like, though I’ve refined my thinking since then and have now fallen in the grips of presentation slides. I also intend to base my talk on real-world examples of what bloggers are doing in the field.

> Please don’t hesitate to get in touch if you would like more details for evaluating this proposal.

We had a long discussion on IRC about the fact that the submission process required a 2-page paper for a talk (in all honesty, for me, almost the same amount of sweat and tears as preparing the talk itself — I’ll let you figure that one out yourself). BlogTalk is a conference which aims to bridge the space between academics and practitioners, and a 2-page paper, I understood, was actually a kind of compromise compared to the usual 10-15 page papers academics send in when they want to speak at conferences.

The form was changed, following this discussion, to make the inclusion of the paper optional. Of course, this might reflect badly on proposals like mine or [Stowe’s]( which do not include a paper. We’ll see!

I’ll also be speaking on [structured portable social networks]( during the workshop on [social network portability](, the day before the conference.

Similar Posts:

Basic Bilingual 0.3 for Multilingual Blogging [en]

[fr] Une mise à jour de mon plugin "Basic Bilingual" qui permet de rendre WordPress bilingue. Modification majeure: il n'y a plus besoin de bidouiller son template pour faire apparaître l'extrait du billet dans "l'autre langue". Par contre, c'est toujours nécessaire pour rajouter les attributs lang.

Long overdue, an upgrade of my plugin Basic Bilingual. Grab the [tgz archive](/code/basic-bilingual.tgz) or [check out the code](/code/basic-bilingual.phps).

Some explanations. First, you all know of my [long-standing interest in all things multilingual](/focus/multilingual) and in [multilingual blogging]( in particular.

Years ago, I switched to [Movable Type]( and then to [Wordpress]( because I was blogging in two languages. Movable Type allowed me to assign more than one category to each post — so I used two huge categories, fr and en, to indicate what language I was blogging in. This soon made the rebuilds a real pain in the neck, and WordPress allowed me first of all to [happily hack it into being multilingual](, and then actually [write a plugin to do it in a cleaner way]( The plugin hasn’t changed much since, and this upgrade isn’t a major one, but it’s a step in the right direction.

Ideally, I’d like people to be able to use the plugin without having to modify their templates at all. I’d also like the plugin to allow filtering out one language if that is what the reader desires. I still hope that [Wordpress will one day “see the light” and let us define language at post-level]( “Please vote!”) (Matt [saw the light for tagging]( ;-), so I do have hope). By the way, I stumbled upon this [Ajax Language Switcher for Basic Bilingual]( earlier today, and it will probably greatly interest those courageous ones of you who tend to have translations of each post or page.

Back to the plugin. It installs normally (unzip everything in the /plugins directory). If you’re using other languages than French and English, you’ll have to manually change the language codes in the plugin file (not very difficult, you don’t have to know PHP to do it; just look for “en” and “fr” and put the language codes for your languages instead).

I’ve fixed an annoying problem with slashes that popped up at some point (somebody else gave me the fix, but I can’t remember who — let me know!).

But most of all, I’ve made the “other language excerpt” appear automatically in the post content. Yes, you hear me: no need to add <php bb_the_other_excerpt(); ?> in your templates anymore. Yay! Added bonus: it will show up in the feeds, too — for that reason, I’ve added a text separator between the excerpt and the post so that there is a separation between the languages.

Basic Bilingual in Google Reader

Obviously, you’ll want to hide these separators and style your posts a little. Here is roughly what I’m using right now:

.other-excerpt {
font-style: italic;
background: #fff;
padding-left: 1em;
padding-right: 1em;
border: 1px solid #ccc;

.other-excerpt:lang(fr) p.oe-first-child:before {
content: “[fr] “;
font-weight: bold;

.other-excerpt:lang(en) p.oe-first-child:before {
content: “[en] “;
font-weight: bold;

.bb-post-separator {
display: none;

div.hentry:lang(fr) .entry-title:after {
content: ” [fr] “;
vertical-align: middle;
font-size: 80%;
color: #bbb;

div.hentry:lang(en) .entry-title:after {
content: ” [en] “;
vertical-align: middle;
font-size: 80%;
color: #bbb;

Now, notice there is fancy stuff in there which relies on the lang attribute. If you’re mixing languages on a page, you should [use the lang attribute]( to indicate which language is where. This means (unfortunately, until I become buddies with PHP’s ob_start() function) that you need to touch your template. It’s not that hard, though.

Find the outermost <div> for each post in the template (it [should have the CSS class hentry, by now]( Add this inside the tag: lang="<?php bb_the_language(); ?>". Do so on every theme template which produces posts. With [the Sandbox theme](, it would look like this:

<div id="post-” class=”” lang=””>

That’s it!

If you’re using this plugin, please leave a link to your blog. I’m also always interested in hearing of other examples of multilingual blogging or multilingualism online.

Similar Posts:

Lars Trieloff: i18n for Web 2.0 (Web 2.0 Expo, Berlin) [en]

*steph-note: incomplete notes. I was very disappointed by this session, mainly because I’m exhausted and I was expecting something else, I suppose. I should have read the description of the talk, it’s quite true to what was delivered. Please see [my work on multilingualism](/focus/multilingual) to get an idea where I come from.*

Why internationalize? You have to speak in the language of your user.

e.g. DE rip-offs of popular EN apps like Facebook. CN version of Facebook, and RU, and turkish.

What is different in Web 2.0 internationalization? Much more complicated than normal software i18n, but some things are easier.

More difficult:

– sites -> apps
– web as platform
– JS, Flash, etc…

The i18n challenge is multiplied by the different technologies.

Solution: consolidate i18n technology. Need a common framework for all.

*steph-note: OK, this looks like more of a developer track. A little less disappointed.*

Keep the i18n data in one place, extract the strings, etc. then pull them back into the application once localized.

Example of how things were done in Mindquarry.

*steph-note: oh, this is in the Fundamentals track :-/ — this is way too tech-oriented for a Fundamentals track in my opinion.*

*steph-note: insert a whole bunch of technical stuff I’m skipping, because I can’t presently wrap my brain around it and it is not what interests me the most, to be honest.*

Web 2.0 Expo Berlin 21

Web 2.0 Expo Berlin 22

Similar Posts:

Reminder: Speaking Tuesday at Web2Open, Berlin [en]

[fr] Je présente une session sur le multilinguisme ici à Berlin, à l'occasion de Web2Open, mardi (demain!) à 10h10.

Just a reminder: I’ll be giving my talk [Waiting for the Babel Fish: Languages and Multilingualism]( Tuesday (tomorrow as of writing) at [10:10 during Web2Open]( at the Web2.0Expo in Berlin.

I also put together (for the occasion, but I’d been wanting to do it for a long time) a page entirely devoted to [my work about languages and multilingualism on the internet](/focus/multilingual). This is the first page of the [Focus series](/focus/) which will showcase some of my work and the areas I’m currently active in.

For those of you who’ve been intrigued by [this twitter of mine]( I’m going to make you wait a little more — but if we bump into each other at Web2.0Expo, don’t be shy to ask me about it!

**Update:** here’s the slideshow! Slightly upgraded since the [last incarnation of this talk at Google](

Thanks to all those of you who came. I got lost on the way so arrived late — my apologies to any of you who might have been there on time and left before I arrived.

Similar Posts: