Plugin Directory

xili-language

xili-language lets you create and manage multilingual WP site in several languages with yours or most famous localizable themes. Ready for CMS design.

Download Version 2.4.1

READ CAREFULLY ALL THE README AND PREREQUISITES

  1. Upload the folder containing xili-language.php and language files to the /wp-content/plugins/ directory,
  2. Verify that your theme is international compatible - translatable terms like _e('the term','mytheme') and no text hardcoded - and contains .mo and .po files for each target language - (application poEdit and/or plugin xili-dictionary can be used)
  3. verify that a domain name is defined in your theme - see note at end list below,
  4. Activate the plugin through the 'Plugins' menu in WordPress,
  5. Go to the dashboard settings tab - languages - and adapt default values if necessary by adding your languages in the catalog. You can set the order (1,2,3...) of the series. (used in language_attributes() template_tag).
  6. Modify each post by setting (checking) the language in xili-language box at the right of the post editing window before publishing.
  7. Others settings and parts (Browser detection, widgets, shortcode, template tags) see below… and examples.

Additional infos

  1. Before using your own theme, to understand how xili-language works, install the child theme of twentyten shown in this commented demo site.
  2. Child of TwentyTen and Child of Twenty Eleven themes include a navigation menu - downloadable here -. In xili-language settings it is possible to insert automatically languages menu in the menu previously set by you.
  3. If you are webmaster and want to add lot of personalizations in your theme, read source and visit expert's corner.

XILI-LANGUAGE VERSION >=1.8.0 is not compatible with WP less than 3.0

SPECIAL NOTE FOR XILI-LANGUAGE VERSION >= 1.5.0 and WP 3.0

Nothing to do in functions.php as in former version of WP and xili-language : only verify that the theme is localizable (translation-ready) and functions.php contains a function load_theme_textdomain(); and that the theme's folder contains .mo files (in root or a language sub-folder) for each languages of your website. As example "twentyten" default WP theme is compatible with help of a child theme "twentyten-xili" available here in action and downloadable .

Plugin is backward compatible for theme of monosite. But if you upgrade xili-language, it is better to restore your theme with default load_theme_textdomain();. Delete lines concerned by obsolete constants THEME_TEXTDOMAIN and languages sub-folder THEME_LANGS_FOLDER.

NOTE FOR THEMES DESIGNER

If your theme is compatible both for newest (>3.0-apha) and older versions, add some conditional lines.

NOTE FOR COMMENT FORM IN WP 3.0

Today with WP3.0, comments form language is based on default language of admin UI and not on theme's language. xili-language solves this features. So you need to add this terms msgid in the .po of your theme for translation used by xili-language. In latest version, xili-dictionary adds this option to avoid tedious copy and paste !

Browser detection for visitors or authors

To change the language of the frontpage according to the language of the visitor's browser, check the popup in right small box in settings. To change the default language of a new post according to the language of the author's browser, check the popup in right small box in settings.

xili-language and widgets

Three widgets are created to enrich sidebar : list of languages, recent posts and recent comments with sub-selection according current language.

xili-language and shortcode

Shortcode to add a link to other language inside content of a post like

[linkpost lang="fr_FR"]

is available in a library in complement to xili-language.

xili-language and template tags

  • xili-language "translates" template tags and permits some variations for webmasters:

The most current template tags don't need special work: wp_list_categories(), wp_title(),...

wp_get_archives

Possible that very special permalinks need to use hook named xiliml_get_archives_link. - Sub selection of archives for wp_get_archives() with &lang= (see § below)

wp_list_pages()

with optional query tag &lang=

  • xili-language "provides" new template tags (or widgets) to solve issues from WP core or add new features for CMS:
xili_language_list()
  • outside loop (sidebar) display the languages of the site (used also by widget)
xiliml_the_category()
  • replace the_category() template tag of WP Core

improved xiliml_the_others_posts() function and theme tag to be used in multilingual category loop and by option (array) to return an array of linked posts in other languages (useful for CMS webmasters) (array of lang and id ) - the id is easily transformable in permalink with function get_permalink() when using this array.

  • widget for recent comments that can subselect those for current language. (a function xiliml_recent_comments() is also available if you want to create a template tag with resulting objects array).

Archives selection

Archives tags is a very complex template tag in his background and not very easy source hookable. So we decided to add few features : by adding query in vars of the function, it will be possible to display a monthly list of archives for a selected language - wp_get_archives('..your.vars..&lang=fr_fr') - or the current the theme language - wp_get_archives('..your.vars..&lang=') -. The displayed list of links will be translated and link restrited to display only archives of this language.

text direction

Examples for theme's designer of functions to keep text direction of theme and of current post : (see child theme of twentyten example in) or twentyeleven child theme using rtl.css.

<?php 
    $themelangdir = ((class_exists('xili_language')) ? the_cur_lang_dir() : array ()) ; ?>
<div class="inside <?php echo $themelangdir['direction'] ?>">
...

example in loop :

<?php while (have_posts()) : the_post(); 
$langdir = ((class_exists('xili_language')) ? get_cur_post_lang_dir($post->ID) : array());
?>
      <div class="story <?php echo $langdir['direction'] ?>" >

minimal example in css :

.rtl {direction: rtl; text-align:right !important; font-size:130% !important;}
.ltr {direction: ltr; text-align:left !important;}

Caution : multilingual theme with both ltr and rtl texts needs a rigourous structure of the css ! See note in version 2.4.

Requires: 3.2.1 or higher
Compatible up to: 3.3.1
Last Updated: 2012-2-3 Downloads: 45,217

Average Rating

5 stars
4 stars
3 stars
2 stars
1 star
(15 ratings)

Compatibility

+
=
Not enough data

1 person says it works.
0 people say it's broken.

Log in to vote.

100,1,1 100,1,1
100,2,2 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1
100,2,2 100,1,1 100,1,1 100,1,1
100,1,1 100,2,2 100,1,1 100,1,1 100,3,3 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 80,5,4
100,1,1 100,2,2 100,1,1
100,1,1 100,1,1
100,1,1 50,2,1
100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,2,2 100,1,1
100,2,2 100,1,1 100,1,1
0,1,0 100,1,1