xili-language version 2.21.0 shipped

The plugin Xili-language (heart of his trilogy) continues its development …

Widget “language list” or “language selector”

After the period devoted to the management of menus and their style with image (flag), this is the appropriate time to review widget “language list” or language selector (switcher).
Adding pictures is based on an integrated style sheet in the header if and only if this widget is active. (thanks to the is_widget_active function). As with nav menus, the theme must support (add_theme_support) the “custom_xili_flag” introduced since Xili-language version 2.15.

Widget inside twenty sixteen
Widget inside twenty sixteen

Three possible styles: single text (as before), image + text and image / flag alone (in compact horizontal list).
Images/pictures can have three origins:
– Those provided by the developer of the theme (so in a theme subfolder and reported at the theme setup)
– Those introduced as nav menu image in the catalog media associated with a language,
– And in case of absence, for some images contained in the plugin.

Settings of style in widget Language list
Settings of style in widget Language list

Importing multilingual datas of a website previously controlled by Polylang plugin

A few years after the birth of Xili-language, Polylang also chosen the way of taxonomy “language” to organize posts according to their language. The slightly different implementation of this taxonomy is discussed here. This approach retains the posts (article, page) to their initial state. In a decidedly simple approach with an effective ergonomics, its success demonstrates that it meets expectations in a very competitive multilingual context. But as for music, cars, the webmaster / developer may want different or complementary qualities, that is why, apart from other reasons, the trilogy Xili-language continuing its development. If, during the life of a website, the need appears, Xili-language 2.1+ version is able to detect the presence of previous Polylang and recover data to continue the multilingual architecture with the trilogy (Xili-tidy- tags, xili-dictionary). Caution, in the list of extensions, just disable Polylang without removing it because otherwise, for lack of option provided for this purpose by the author, all specific data Polylang will be deleted. Once, Xili-language active, a semi-automatic multi-step process is fired … a specially dedicated post is published…

Widgets visibility option under the current language

widget visibility
widget visibility

If the option is activated (5th tab), the webmaster will see in the interface of each widget, a group of 2 dropdown menus to decide whether this widget should appear or not.

various fixes

Each version is an opportunity to fixe and optimize the code in particular by integrating functions appeared since WP 4.1. or recent versions of javascript.

improved code and algorithms

Add filters to customize the implementation style images / flags in the language selector.
Added new theme twenty sixteen in the list of bundled themes that came with WordPress.
Intermediate versions before publication on the WP repository are available on GitHub

Importing multilingual datas of a website previously controlled by Polylang plugin

Preamble

VERY IMPORTANT: change of plugins must be preceded by IMPERATIVELY a backup of the database.

Performing backups has been very helpful in the phases of development of this new feature to Xili-language 2.21+ and allowed at any time to return to an earlier phase.

Although Xili-language taxonomy and that of Polylang have the same name, there are differences explained in this article.

This post concerns webmasters with a good level of knowledge of WordPress … and those who know the “CMS” reasons behind to move from Polylang to Xili-language (2.21+).

Preparation

Installation WITHOUT ACTIVATION  to the 3 xili-language plugins, Xili-tidy-tags and Xili-dictionary. Either via FTP or through the list of plugins.

Open multiple tabs in your browser: two on the list of extensions, one on the visitor site side and one on the dashboard.

Desactivate Polylang

Caution, in the list of extensions, you must  only desactivate Polylang without deleting it because otherwise, for lack of option provided for this purpose by the author, all specific data Polylang will be deleted.

desactivate Polylang
desactivate Polylang
Activate xili-language
Activate xili-language

Once, Xili-language activated, a semi-automatic multi-step process is set up and opens the welcome page:

Welcome screen after activation
Welcome screen after activation

Once in the page settings, it is seen that the elements left behind by Polylang are detected and processed for multilingual management now by xili-language:

before regeneration
before regeneration

Regeneration multilingual elements

The regeneration of links between posts made, the message says to go to the Settings for Experts tab.

regeneration done
regeneration done

Because the next step is taxonomies, go to the previously prepared browser tab where there is the list of extensions and enable Xili-tidy-tags:

Activate xili-tidy-tags
Activate xili-tidy-tags

Going back to the settings page Expert Xili-language and the window (meta-box) “special actions and parameters”:

Start taxonomy groups recovering
Start taxonomy groups recovering

Operations related to taxonomies relate Tags (post_tag) primarily:

Tags list and languages
Tags list and languages

now screen xili-tidy-tags assign

xili-tidy-tags assigning done
xili-tidy-tags assigning done

They prepare the items for categories that are managed in translation mode (without cloning) by xili-language and Xili-dictionary. (see Article …)

To clean the WP base before removing the Polylang extension, you have to go to the next step (this can be done later):

To launch DB cleaning process
To launch DB cleaning process
Ready to delete plugin files
Ready to delete plugin files

 

CAUTION :

It goes without saying that now Polylang should not be reactivated. To go back: use the backups.

The Polylang files are deletable via the page showing list of extensions or better via FTP. Xili-language, however, has made so renaming the file
 uninstall.php to uninstall_XL_desactived.php
so it does not destroy particular taxonomy “language” in the process “deleting” managed by  WP.

 

Multilingual WP plugins and (custom) taxonomy

Since 2009, Xili-language followed two years later by Polylang are two plugins that use a taxonomy named “language”. This is possible since WP 2.3 – see file taxonomy.php
The main advantage of this approach taxonomy is that it does not destroy records (post) originals. (Indeed, other extensions modify the fields ‘post_content’ and add tables …)

Like those basic categories (category) and keywords / tags (post_tag), each element (term) of the taxonomy is described by its name, its shortcut (slug) and description. The other fields are the technical elements (term_id, taxonomy_id …)

Example of category “Recent News”
– Name : Recent News
– Slug : recent-news
– Description : the most recent news to be published

Inside xili-language and the taxinomy “language”, a language is defined as:
– Name : fr_FR (iso)
– Slug : fr_fr
– Description : French
and
with Polylang, the choice is different :
– Name : French
– Slug : fr (raccourci)
– Description : several serialized data in a table (array) whose name iso (locale => en_US) used by WP to name translation files.

The key point (pivot) is in both cases, iso code that describes the language and country of its use: fr_CA is used in Canada if we are to be precise.

Using serialized data in the description field is a Polylang originality that is not found in WP. Such fields do not allow SQL query. (need php functions)

As shown locale.php JetPack file (used by Xili-language), language management is very complex and use multiple encodings. You can find other invariant elements like the name cited in the language (French) and the writing direction (ltr). In fact, there is very little quantity of rtl languages.

With a few hundred lines, Xili-language (2.21+) can recover multilingual elements of a previous WP installation driven by Polylang. (see instructions post)
Xili-dictionary is also compatible with Polylang active (through filters and an abstraction of the taxonomy model). For example to translate language files for a theme or plugin with creation of pot, po, mo files.