xLanguage (Wordpress Plugin)
Monday, January 21st, 2008
Contents
A WordPress plugin that allows you to blog in multi-language, and users to select which to read. If your want to localize and present your blog in different languages (totally with title, rss, categories working, not just the post) and allows visitors to pick the language they want, this plugin is for you.
xLanguage allows you to blog in different language, and allows user to select which version to read. It works for blog post, page, tags, categories. The user language preferences will also select the right theme and plugins MO files.
Customization is the No. 1 design goal, after all that’s probably the reason why you want to setup a multilingual blog. The language configuration combination is highly customizable to facilitate multiple fallbacks. Every UI is extracted out, which could be optionally overridden by theme design without touching the plugin file at all.
This plugin works by inserting W3C standardized <span lang=”..”> tag in the post content, and a XML parser will be involved to extract them when served, extracting all elements with the matching lang=”..” tag. The permalinks and RSS feeds are also presented correctly. For single line data such as post title, a special but simple syntax is introduced.
The language preference is detected from browser’s preferences, as well as from Cookie if user visited before. Widget and template functions are also provided to allow user to switch the language easily.
Please read on for the installation, complete usage guide, screenshots, comparisons and known problems. If you found this plugin useful, please consider supporting it.
Please feel free to let me know if you need additional template functions, or if you have any idea that could make this a even better plugins for you.
Notice
If you hit the following error message after installation:
can not redeclare class xLanugagePlugin on line 996 in xlanguage.php
Resetting the xLanguage configuration would help. To do that, please go to “Settings -> xLanguage -> Options” in the Admin control panel, Scroll to the very bottom and reset it.
This is a known problem but I can never reproduce this so have no idea how to fix it. Any volunteer in helping me is very welcome!
Change Log
v1.3.3 (r44242)
- #9 is regressed causing xLanguage installation dead on arrival. Now fixed together with #10.
- This new version should solve the v1.3.2 installation problem.
v1.3.2 (r44032)
- #9 is fixed - xLanguage should be usable in WP-MU now.
v1.3.1(r43326)
- #8 is fixed - The static homepage bug introduced in v1.3.0.
v1.3.0 (r42456)
- New feature #4 is implemented. In addition, to http://example.com/page/something/lang/en, now it could be http://example.com/lang/en/page/something.
- No other bug is fixed.
Licensing
This plugin by Sam Wong is licensed under the CC-GNU GPL.

































































English
September 9th, 2008 at 20:36
I figured out the problem. I leave a different collation in wp-config.php and get_option worked wrong with extended chars of xlanguage options in wp_options table.
September 9th, 2008 at 18:43
xLanguage does not work together with wordpress 2.6.2. After upgrading I recieve:
Warning: Invalid argument supplied for foreach() in /…/wp-content/plugins/xlanguage/xlanguage.php on line 845
Warning: Invalid argument supplied for foreach() in /…/wp-content/plugins/xlanguage/xlanguage.php on line 908
Fatal error: Cannot unset string offsets in /…/wp-content/plugins/xlanguage/xlanguage.php on line 935
And I must delete the folder in order to gain control over my blog. Can’t solve the problem even with reinstallation.
September 8th, 2008 at 12:29
I installed and activated xlanguage, but when it was activated it gave me the following message on the top of the admin page. What is the problem here and how can I solve it?
Warning: fopen(/var/www/vhosts/sourena.net/httpdocs/wp-content/uploads/xlanguage-parser-11914147621541470766.log) [function.fopen]: failed to open stream: No such file or directory in /var/www/vhosts/sourena.net/httpdocs/wp-content/plugins/xlanguage/admin.php on line 141
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/vhosts/sourena.net/httpdocs/wp-content/plugins/xlanguage/admin.php on line 142
September 3rd, 2008 at 17:51
I have a question: does the plugin allow for a distinction between the feeds in the two languages?
Right now I am using a plugin that does not. And readers will see feed items in both languages, or just one language.
Thanks.
September 1st, 2008 at 21:32
[...] xLanguage Ett plugin för du som bloggar på flera olika språk. xLanguage låter besökaren välja mellan vilken språkversion av bloggen som denne vill läsa. Användargränssnittet är dock inget för nybörjare och kräver viss erfarenhet av Wordpress. [...]
August 22nd, 2008 at 6:52
another thing is that the option “Explicit Redirection” “never” has no effect on the url creation. the url is always like this : “http://domain.tld/lang/en/postname”. so /lang/en/ is always displayd after I click on a link, and I get a blank page.
xlanguage works without permalinks but i want to have them.
any suggestions?
ray
August 22nd, 2008 at 6:16
nice plugin, but I have one problem:
maybe it is the the permalink rewrite rule.
Problem is that I do not know how to change the rewrite rule (is there ar tag like %language%?) to get a valid link to my posts.
the Plugin works (with wp 2.6.1) but if I click on a link the url changes (/lang/fr/ is prepended to the rewritten url after the .tld ) and the link does not work any more.
please help! I promise I will donate if I can get it to work, because xlanguage is better then gengo which tends to screw up the database on deinstallation.
August 19th, 2008 at 5:35
It never ceases to amaze me the number of things that wordpress can do.
August 17th, 2008 at 2:21
What a great way to make your blog available and accessible to people all over the world.
August 7th, 2008 at 22:20
To support any other 3rd Party plugin, there are two options:
1. See if they support .mo file localization. That’s how the Wordpress itself, the most themes and modules support the multi-language for hardcoded display element.
2. if it’s about admin configurable element, then you have to hack the logic that prints out your content. By making sure they go through apply_filters(’localization’, …), the language tag will be functional on them.