WP_Multilingual - wordpress plugin

Rincewind could shout `help!` in fourteen languages and scream for mercy in a further twelve.

“Eric” by Terry Pratchett

What is WP_Multilingual?

WP_Multilingual is extension that brings WordPress multilingual support. With it's help you can publish more that in one language at a time. Its easy, cheap and simple way to use multilingual advantages of blogging.

How it works?

For instance, if the post is in English, and the default language is English, the existing posts would have "en" as the key. Other examples would be de / fr/ ja when German, French and Japanese are the default language. Don’t worry, WP_Multilingual does not touch your existing posts – it just doesn't use the posts table for saving content information.

License

Copyright (C) 2008  United Nations University

This program is free software developed by Oleg Butuzov for  the United Nations University: you can redistribute it and/or modify  it under the terms of the GNU General Public License as  published by  the Free Software Foundation, version 3 of the  License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU    General Public License for more details.

You should have received a copy of the GNU General Public License   along with this program.  If not, see  http://www.gnu.org/licenses/.

Download

multilingual v1.3.1 (2.3.* and 2.5 RC1)

Preparing for installation.

What Wordpress version are you running?

First you need to check what version of Wordpress drives your blog. We've developed WP_Multilingual from version 2.3* (that means any Wordpress branch from version 2.3 will work with the WP_Multilingual plug-in). If you have an earlier WP version you will need to upgrade before proceeding.

It also work with WordPress 2.5 RC1 (betta mode).

MySQL database issues

You will need to check which character set your database is set to before you proceed. Almost 99% of hosting services that provide MySQL set the default language to Latin. Before you proceed you will need to change this to UTF-8. Not doing so will prevent your chosen character set from displaying and saving correctly. You can check your character set using PhpMyAdmin ( http://phpmyadmin.net ). If your database is set to UTF-8 then you can proceed, otherwise you will need to follow the step below.

Before proceeding with modifying your database remember to make a backup

As you see from the example screen shot above, the second database has latin-swidish collation, but all tables have utf8 collation. This is correct. If your database looks like the 1st one in the screen shot – I.e. With a character set other than utf8 you can run this query for each one of the tables.

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

Replace tbl_name with the original table name that needs to be converted. The table list you can find with the help of phpMyAdmin.

If you encounter problems with the above approach, there are a number of online resources that explain how to convert latin mysql to utf mysql. For example Convert mysql from unconfigured encoding to utf8

Assuming you were successful in converting the database or your database was already utf8 move on to the next step.

Checking wp-config.php

Open your wp-config.php from your site and check it has the constant definition:

define('DB_CHARSET', 'utf8');

If not, ad it to the list of definitions.

This is needed to create collation when a connection is made to mysql.

OK. The hard part is over. Lets move to easy part.

Copy all content from your extracted Wp_Multilingual plug-in download to wp-content/plugins directory and activate it via Plugins page from wp-admin.

As you see you will need install one more plug-in…

Unfortunately WP_Multilingual only supports Dean’s FCKeditor for now, but with thousands of developers using it, it must be good!

Download, install and activate Dean’s FCKeditor and let's finish the installation.

Once installed you will find a menu item in your Wordpress Admin panel.

Select the default language via the options page of Wp_Multilingual. This language will be the default for all your current posts/pages.

Congratulations WP_Multilingual is now installed! Moving to next step…

Via “Language List” you can edit/add/remove languages for you blog.

Now you have defined 2 languages (default and 2nd language) write a new post to see how it works.

IMPORTANT NOTICE

You always need to write at least a title in the Default language to save ML (multi language) post.

Default language variable (title, content or excerpt (for blog entries) ) will replace localized variable if this variable does not exists.

Customization

Categories | Tags | Blogroll categories

You can customize these variables via the categories bar in the Language page (WP_Multilingual page in wp-admin called Languages). You can edit titles and descriptions for each of these categories (as tags do not support descriptions , these cannot be edited). Slug’s localization is currently not supported.

Posts | Pages

You can manage these via writing/management posts/pages pages in wp-admin.

Links

By default Wp_Multilingual works with permanent and dirty (dynamic) links, but if you switch on permanent links you also should write a tag (tag_base) and category (category_base) base starting from "/" char (/categories and /tags) for example.

Search form

You should add language identify to your form action to make the right selection for specific languages.

Permanent Link Example

<form method="get" id="searchform" action="<?php bloginfo('home').'/'.$language; ?>/">

Dymanic Link Example

<form method="get" id="searchform" action="<?php bloginfo('home').'/?language='.$language; ?>/">

WP_Multilingual Interface

You can change the WP_Multilingual localization (use plugin in your native language) via the Options page (Language bar at wp-admin) of via your profile edition.

WP_Multilingual currently localized in English, Russian, Ukrainian, Italian, Franch and Greek

WP-Admin interface

If you have a localization file that was used (“was used” because WP_LANG constant was replaced at the time of installation by a dummy constant) in wordpress and exists at wp-includes/languages/ directory – you can see a WP localization select box with a list of possibilities for localizations.

Theme Localization

Front-end localization is used for localization of your theme. You can do it yourself or change main the localization that is used for the localization of WP. It should be called LOCALE_NAME.mo and be located: wp-includes/languages/

It will be automatically loaded when user opens your blog in a specific language. You can easy diversificate WP-admin and front-end localizations by naming mo files using LOCALE_NAME for front end and language code (or LOCALE_NAME) for WP-admin. Locale name you can view in Languages List page (Language bar).

Language Switcher

You are free to use the built in switcher or make your own. Sample switch code for the language switcher can be viewed on the Options page (Language Bar).

All you need to do its write your own css for the switcher (you also can write it into your style.css in your theme).

Localizations

If you want to help me to localize WP_Multilingual in your language - just ask me.

Screenshots

2.3.3, RC 1

Support

Ask for free help via icq 318183, email qwerty@qwerty.co.ua or directly via Help page of Multilingual plugin, i will answer you asap.

Thank you!

This plugin was created with help and by the request of the UNU MediaStudio team. Please visit (http://mediastudio.unu.edu/) for more information on team and it's projects.

Donnations

I will be happy to receive donations for this plugin because any support I provide takes quite a bit of my time, but I don’t have Paypal to make this process easy… so if you still desire to make a donation, ask – hopefully we can work something out.

Cast