WordPress Multilingual Multisite
I had a great meeting this afternoon with the good folks at Middlebury (Amy Collier, Sonja Burrows, Evelyn Helminen) to talk about a project they have with their School of Hebrew. They are looking to create a Community of Practice for their faculty where much of the content is in English, but there is also a forum that would allow them to write in Hebrew.
Multi languages can be tricky for a number of reasons, but a good thing about WordPress is that they’ve really focused on internationalizing the platform. This means you can install it in 162 different languages (including Hebrew) as of the date of this post..
There are several plugin solutions that can be helpful. For instance, some allow you to write various languages side-by-side, or tag a post a specific language and allow the end-user to choose between other translation, while others utilize engines to autogenerate translations.
But many of these are focused on end-user and not necessarily authoring. For example, when writing a comment in Hebrew, you want to be considerate of the change in orientation from left > right to right > left. WordPress itself has a very good article that talks about the different options, tools, and complexities ofmultilingual wordpress.
So I’ve been trying to think of how one site can serve multiple languages and will lay out below the approach I recommend: a multisite installation. Multisite will allow you to easily manage a similar look in feel as you share resources such as themes and plugins across the network, but will allow you to customize different aspects of your site(s) depending on their specific needs.
One other neat feature of WordPress is that you can do a multisite installation and each subsite can be a different language. Here’s a quick tutorial on how to setup different sites under a multisite with separate languages:
First, I’m going to use Installatron to make a fresh multisite install. The main thing here is opt-in to multi-site. I’m going to call this Dual Lingo (not to be confused with a similarly titled, massively popular language learning website!)
For this installation, I’ve kept in English.
Now I’m going to go to Network Sites and check out my sites to add a new site.
Where my main site is adam.middcreate.net/duallingo, the new site will be adam.middcreate.net/duallingo/hebrew. In this dialogue box, I’ll also select Hebrew as the site language.
So here’s my new Hebrew site:
As I mentioned, Middlebury wants to have a Hebrew forum so I’m going to install a few plugins that allow 1.) visitors to generate a user account 2.) the forum itself and 3.) a single sign-on plugin so you can register for the account on the English site but still use those credentials on the Hebrew site. I’m going to install BuddyPress for registration, BBPress for the forum, and WP Multisite SSO for single sign-on. Once you’ve done so, make sure they are activated across the network.
Now I’m going to navigate into my Network Settings to allow users to be registered.
BuddyPress is going to tell me I need to setup the pages for registering and activating an account. So I’ll do that next.
To do this, navigate to from your network settings to your main site settings and publish the pages. I’m going to simple call them “Activate” and “Register.” You want to leave the dialogue boxes blank. As I navigate to “All Pages” you’ll notice that BuddyPress generated a couple pages (activity, members) that you may or may not use.
Next I’m going to go BACK to network settings and make match these pages to their respective templates.
Last thing I’ll do on the Registration side is add a link to the Register page on the main sites menu and make its location the Primary Menu.
Alright, now let’s setup our Hebrew forum. This can be tricky, of course, because we are in a different language. I’m going to generate a simple test forum so then we can test out all of the site functionality.
The last thing I’m going to do is add on my main English site a link to the forum and then a registration and login links on Hebrew site menu. Since we are doing registration on the main site, I’m going to grab that specific link as I don’t want to duplicate the signup process (http://adam.middcreate.net/duallingo/register
). So I’m going to add a custom link to the Menu.
Since we initially installed the SSO plugin, when a user logins, they will now login to the entire network.
And we’re taken care of! We can now register across the network and then type in the proper orientation.
A couple of things I would strongly recommend to further expand this. Consider installing a Google CAPTCHA plugin for any BuddyPress site to thwart spam(In fact, I use one called Google Captcha reCAPTCHA for the regular signup page and another specifically for BuddyPress registration called BuddyPress NoCAPTCHA). Additionally, you can Remove Dashboard Access for non-admins with a plugin as well.
So that’s a super niche use case but it really shows you the flexibility of WordPress multi-site! Let me know below in the comments if you’ve similarly used WordPress multi-site to do something a little out-of-the-box.
Featured image: flickr photo shared by neilfein under a Creative Commons ( BY-NC-ND ) license