dleetz / qtranslate-x

Wordpress plugin: Adds user-friendly and database-friendly multilingual content management and translation support.

Home Page:http://qtranslatexteam.wordpress.com/about/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

qTranslate X

Developed by: qTranslate Team based on original code by Qian Qin Contributors: johnclause, chineseleper, Vavooon, grafcom Tags: multilingual, language, admin, tinymce, bilingual, widget, switcher, i18n, l10n, multilanguage, translation Requires at least: 3.9 Tested up to: 4.1.1 Stable tag: 3.2.9 License: GPLv3 or later Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QEXEK3HX8AR6U License URI: http://www.gnu.org/licenses/gpl-3.0.html

Adds user-friendly multilingual content management and translation support. It is an up-to-date fork of qTranslate with many additional features.

Description

This plugin is a descendant of qTranslate, which has apparently been abandoned by the original author, Qian Qin.

While the back-end database framework is left almost intact, the design of editors is drastically changed and improved to be much less vulnerable to WP updates. Instead of seeing multiple lines per each language for title, qTranslate-X provides language switching buttons, which, once pressed, make all the text fields to be filled with the language chosen. The instant language change happens locally in your browser without sending an additional request to the server.

qTranslate-X makes creation of multilingual content as easy as working with a single language. Here are some features:

  • One-click local switching between the languages - Changing the language as easy as switching between Visual and HTML.
  • Language customizations without changing the .mo files - It stores all the translations in the same post fields, while shows it to user for editing one by one depending on the language to edit chosen.
  • In-line syntax '<!--:en-->English Text<!--:--><!--:de-->Deutsch<!--:-->' or '[:en]English Text[:de]Deutsch[:]' for theme-custom fields gets them translated. See FAQ for more information.
  • Starting from release 3.1 encoding like this '[:en]English Text[:de]Deutsch' may also have closing tag [:], which makes the example looks like this: '[:en]English Text[:de]Deutsch[:]'. The advantage of this is that one now can encode strings like this '[:en]English Text[:]<html-language-neutral-code>[:de]Deutsch[:]<another-html-language-neutral-code>', with language-neutral text embedded. Closing tag is not required, but if it is absent and multilingual text happened to be used embedded within other language-neutral text, then a part of language-neutral text will be recognized as language-specific text and may be removed by translator. That was a common incompatibility issue with other plugins, which is now resolved. Comment-like encoding <!--:--> still works as well, and can be used if desired, but it does not have any feasible advantage over [:]-style.
  • Multilingual dates out of the box - translates dates and time for you.
  • Theme custom fields can be configured to be translatable too.
  • Comes with a number of languages already built-in - English, German, Simplified Chinese, for example, and many more.
  • Choose one of 3 Modes to make your URLs look pretty and SEO-friendly. - The simple and beautiful /en/foo/, or nice and neat en.yoursite.com, and everywhere compatible ?lang=en.
  • One language for each URL - Users and SEO will thank you for not mixing multilingual content.
  • qTranslate-X supports unlimited number of languages, which can be easily added/modified/deleted via a comfortable Configuration Page at Settings->Languages.
  • Custom CSS for "qTranslate Language Chooser" widget configurable via its properties.
  • Menu item "Language Switcher" to enable language choosing from a menu.
  • Use Google XML Sitemaps v3 for qTranslate plugin to rebuild your XML sitemap for better SEO support.

The following plugins provide integration of qTranslate-X with other popular plugins:

Below is the list of some plugins reported to be compatible with qTranslate-X without an additional integrating plugin:

If you encounter a conflicting a plugin, please let us know, and meanwhile try to use other plugin of similar functionality, if possible.

You may still find a lot of useful information through reading qTranslate's original documentation, which is not duplicated here in full. There are also other plugins, which offer multilingual support, but it seems that Qian Qin has very good original back-end design, and many people have been pleasantly using his plugin ever since. It stores all translations in the same single post, which makes it easy to maintain and to use it with other plugins. However, the user interface of former qTranslate got out of sync with the recent versions of Wordpress, especially after WP went to TinyMCE 4. There is a number of forks of qTranslate, see for example, mqTranslate, qTranslate Plus and zTranslate. They all try to fix qTranslate's user interface preserving its original back-end, which is what this plugin does too. This plugin is a hybrid of all of them and fixes a few bugs in each of them. It also has many new features too, like theme custom translatable fields, for example. We hope that this plugin is the most complete working version which combines the best features of qTranslate, mqTranslate, qTranslate Plus and zTranslate.

We organized an anonymous entity qTranslate Team to maintain a joint authority of all qTranslate-ish plugins. Anyone is welcome to join with a contribution. Participating plugin authors should share the support efforts for each other.

GitHub repository is available: https://github.com/qTranslate-Team/qtranslate-x.git

We thank our sponsors for persistent help and support:

Installation

Installation of this plugin is no different from any other plugin:

  1. Download the plugin from here.
  2. Extract all the files.
  3. Upload everything (keeping the directory structure) to the /wp-content/plugins/ directory.
  4. Deactivate plugin qTranslate, mqTranslate, qTranslate Plus, or zTranslate, if you are running any.
  5. Activate qTranslate-X through the 'Plugins' configuration page in WordPress.
  6. Open Settings->Languages configuration page and add/delete/disable any languages you need.
  7. Add the "qTranslate Language Chooser" widget or "Language Switcher" menu item to let your visitors switch the language.
  8. You may use Google XML Sitemaps v3 for qTranslate plugin to rebuild your XML sitemap for better SEO support.
  9. Configure theme custom fields to be translatable if needed (Settings -> Languages: "Custom Fields").
  10. Upgrading from qTranslate required no additional actions, qTranslate-X will continue to work from the database entries of qTranslate. One may also go back to qTranslate at any time. Upgrading from other qTranslate forks may require re-configuration of the languages and taxonomies names, unless you rename corresponding database entries directly.

Frequently Asked Questions

FAQ list is available at "qTranslate-X explained" website: https://qtranslatexteam.wordpress.com/faq/, where it is easier to maintain it in between releases.

Developers: please drop new topics here, the text will be moved to qTranslate-X explained at the time of the next release.

Upgrade Notice

  • Upgrading from qTranslate and zTranslate requires no additional actions, qTranslate-X will continue to work from the database entries of qTranslate. One may also go back to qTranslate at any time.
  • Upgrading from other qTranslate forks also painless with an additional steps of configuration import and using 'Convert Database' option. One may also go back at any time using configuration export and 'Convert Database' option.
  • Former page and post translations are untouched and preserved in any case, except when using 'Convert Database' option.
  • Upgrading from other multilingual frameworks will require custom re-configuration. We suggest to search for a plugin, which may be already implemented to transfer the translations to qTranslate or to qTranslate-X. If a plugin works for one, it should work for other too, since qTranslate-X and qTranslate share the same database structures.
  • Additional information is available on migration notes.

Screenshots

  1. Editing screen showing the buttons to switch the languages. Pressing a button does not make a call to the server, the editing happens locally, until "Update" button is pressed, the same way as it is for one language.
  2. Language Management Interface

Changelog

3.3 stable

  • Includes all changes after version 3.2.9. Please, review Release Notes.
  • Translation: thanks to all translators contributed.

3.2.9.8.8 alpha

  • Translation: Greek ('el_GR') predefined language added, thanks to Marios Bekatoros.
  • Translation: Arabic (ar) po/mo files updated. Thanks to Nedal Elghamry.
  • Enhancement: added check isset($_SERVER['REDIRECT_STATUS']) in function qtranxf_can_redirect to prevent another redirection if mod_rewrite is already doing redirection. In particular, this should help to troubleshoot internal server error 500 as it was observed in Issue #96.
  • Feature: js functions addLanguageSwitchBeforeListener and addLanguageSwitchAfterListener is designed for other plugin integration, read Integration for more information. Thanks to Dmitry for the useful design discussion Issue #128.
  • Fix: more special cases for arrays in POST, Issue #127.

3.2.9.8.5 alpha

  • Fix: special cases for arrays in POST, Issue #127 and WP Topic.
  • Translation: thanks to all translators contributed. po files updated with correct version number.

3.2.9.8.4 alpha

  • Fix: taxonomy names with apostrophe and other special characters: Issue #122.
  • Fix: locale 'ja' changed to 'ja_JP'. Thanks to Yusuke Noguchi.
  • Translation: thanks to all translators contributed.

3.2.9.8.3 alpha

  • Feature: choice 'Single Language Mode' for option 'Editor Mode'.
  • Enhancement: New release handling framework.
  • Fix: function qtranxf_sanitize_url, thanks to HAYASHI Ryo: Issue #117.

3.2.9.8.2 alpha

  • Feature: js function addLanguageSwitchListener is designed for other plugin integration, read Integration for more information.
  • Fix: handling of cookie qtrans_edit_language.

3.2.9.8.1 alpha

  • Fix: function qtranxf_join_b, test for qtranxf_allthesame.
  • PHP version compatibility: syntax changed in 'qtranxf_collect_translations*'.

3.2.9.8 alpha

  • Improvement: TinyMCE handling is re-designed once again. [WP Topic] [Issue #115]
  • Feature: new type of hook, displayHookAttrs, in admin/js/common.js to translate submit button texts (used in Woocommerce, for example).

3.2.9.7 alpha

  • Translation: German (de_DE) po/mo files updated, thanks to Maurizio Omissoni.
  • Translation: Italian (it_IT) po/mo files updated, thanks to Maurizio Omissoni.
  • Feature: new front-end option 'Show content in an alternative language': Issue #21.
  • Improvement: error handling for gettext updates #105 and #113, and other minor code clean up.

3.2.9.6 alpha

  • Translation: Dutch (nl_NL) po/mo files updated. Thanks to Marius Siroen.
  • Translation: Portuguese (pt_PT) po/mo files updated. Thanks to Pedro Mendonça.
  • Feature: framework for handling admin notices on new releases.
  • Improvement: design of option handling: optimization and simplification in the code.
  • Fix: replaced pre-defined language code 'pt-br' with 'pb': Issue #104.
  • Fix: hidden multilingual input fields moved right before their single-lingual originals: WP Topic.

3.2.9.5

  • Improvement: 'Code' column in the list of languages. Thanks to Pedro Mendonça for the discussion.
  • Fix: date/time formats containing backslashes: Issue #99.

3.2.9.4

  • Translation: po files updated. Thanks to Pedro Mendonça for a discussion.
  • Fix: languages management problems: Issue #102.

3.2.9.3

  • Feature: qtrans_join added to option 'Compatibility Functions'. [Issue #106]
  • Translation: Portuguese (pt_PT) po/mo files updated. Thanks to Pedro Mendonça.
  • Fix: various problems with new option save/load methods.
  • Fix: CSS syntax. Thanks to Michel Weimerskirch: Issue.

3.2.9.2

  • Feature: option "LSB Style" to customize Language Switching Buttons style.
  • Feature: after the first activation, the current WordPress active language becomes the default one for qTranslate-X, instead of English. No other languages are added anymore.
  • Improvement: option load and save algorithm re-designed.
  • Fix: special cases for function convertURL.

3.2.9.1

  • Feature: Option "Highlight Style". Thanks to Michel Weimerskirch.
  • Fix: handling of relative urls in qtranxf_convertURL.
  • Fix: default locale for Estonian is 'et_EE'.
  • Improvement: more on 'URL Modification Mode' option Per-Domain.
  • Translation: Arabic (ar) po/mo files updated. Thanks to Nedal Elghamry.
  • Translation: Dutch (nl_NL) po/mo files updated. Thanks to Marius Siroen.

3.2.9 stable

  • Improvement: function convertURL has been re-designed to take into account scheme, user, password and fragment correctly.
  • Improvement: added "x-default" link <link hreflang="x-default" rel="alternate" /> as suggested by Google.
  • Feature: added exclusions to qtranxf_convertFormat for language-neutral date formats 'Z', 'c' and 'r' in addition to 'U' [Issue #76]
  • Feature: variable $url_info['set_cookie'] can be overridden via qtranslate_detect_language filter. [WP Topic]
  • Feature: admin notices for integrating plugins 'ACF qTranslate', 'All in One SEO Pack & qTranslate‑X', 'Events Made Easy & qTranslate‑X', 'qTranslate support for GravityForms', 'WooCommerce & qTranslate‑X' and 'Wordpress SEO & qTranslate‑X'.
  • Feature: added URL folder /oauth/ to the list of language-neutral URLs. [Issue #81]
  • Maintenance: GitHub repository information in the header of qtranslate.php
  • Performance: function convertURL now uses cached values of previously converted urls.
  • Performance: a few other little performance improvements.
  • Translation: Dutch (nl_NL) po/mo files updated. Thanks to Marius Siroen.
  • Translation: French (fr_FR) po/mo files updated. Thanks to Sophie.
  • Translation: Portuguese (pt_PT) po/mo files updated. Thanks to Pedro Mendonça.
  • Fix: Query in qtranxf_excludePages. [WP Topic]
  • Fix: Warning 'Undefined index: doing_front_end' reported in WP Topic.
  • Fix: time functions adjusted. [WP Topic]
  • Fix: custom menu item query 'setlang=no': [Issue #80]

3.2.7 stable

  • Includes all changes after version 3.2.2.
  • Improvement: added removeContentHook in admin/js/common.js. Thanks to Tim Robertson: [GitHub Issue #69]
  • Improvement: use of nodeValue instead of innerHTML in addDisplayHook of admin/js/common.js.
  • Translation: Dutch (nl_NL) po/mo updated, thanks to Marius Siroen.
  • Translation: pot/po files updated

3.2.6

  • Feature: replaced option 'Remove plugin CSS' with 'Head inline CSS'.
  • Fix: problem with url like site.com/en without slash.

3.2.5

  • Feature: options of similar functionality of mqTranslate: 'Remove plugin CSS', 'Cookie Settings' and 'Translation of options'. Thanks to Christophe) for the initial pull.
  • Improvement: qtrans_getLanguageName added to option 'Compatibility Functions'.
  • Fix: url like site.com/en?arg=123 without slash before question mark now works correctly.

3.2.4

  • Feature: multiple sets of Language Switching Buttons per page. Enabled by default above metabox 'Excerpt'. Will be customizable later.

3.2.3

  • Improvement: auto-translation of metadata at front-end, filter qtranxf_filter_postmeta. [Ticket]

3.2.2 stable

  • Translation: Dutch (nl_NL) po/mo updated, thanks to Marius Siroen.
  • Improvement: common.js modifications needed for plugin All in One SEO Pack & qTranslate-X.
  • Fix: non-standard host port handling. Thanks to Christophe. [Ticket]

3.2.1 stable

  • Feature: added option "Hide Title Colon" for widget "qTanslate Language Chooser". [Ticket]
  • Improvement: disabled browser redirection for WP_CLI. [Ticket]
  • Fix: wp-admin/nav-menus.php: new menu items for pages get added with title already translated.

3.2 stable

  • Includes all changes after version 3.1.
  • Translation: Dutch (nl_NL) po/mo updated, thanks to Marius Siroen.
  • Improvement: add_filter('term_description') at front-end. Thanks to josk79.

3.2-b3

  • Feature: class qtranxs-translatable is introduced to distinct all translatable fields. Thanks to Michel Weimerskirch.
  • Improvement: QTRANS_INIT constant is now defined when "Compatibility Functions" is on. [WP issue.]
  • Improvement: various code improvements, search for '3.2-b3' tag to look them them up.

3.2-b2

  • Translation: Hungarian (hu_HU) po/mo updated, thanks to Németh Balázs.
  • Translation: German (de_DE) po/mo updated, thanks to Maurizio Omissoni.
  • Improvement: Basque language added to the pre-set list of languages, thanks to Xabier Arrabal.
  • Improvement: 'Convert Database' options now also convert postmeta.meta_value database field.
  • Fix: 'Convert Database' options would not work correctly for some options.
  • Fix: qtranxf_http_negotiate_language used to return en_US when PHP supports function http_negotiate_language.

3.2-b1

  • Translation: Dutch (nl_NL) po/mo updated, thanks to Marius Siroen.
  • Improvement: updated activation/migration messages with a link to Migration from other multilingual plugins publication.
  • Improvement: updated "Compatibility Functions" option with qtrans_split.
  • Fix: dealing with https and port 443.

3.1 stable

  • Includes all changes after version 3.0.
  • Maintenance: 'Translate Service' feature has been disabled, as the vast majority of people surveyed declined it. Thanks to Gunu (Marius Siroen) who made this survey possible.

3.1-a1

  • Improvement: up to date code for updateGettextDatabases and cleaning up of a lot of code. Thanks to Michel Weimerskirch.
  • Translations: Croatian po/mo - thanks to Sheldon Miles.
  • Translations: po/mo adjusted for a typo fixed. Thanks to Michel Weimerskirch.
  • Translations: default time format for Sweden changed - thanks to Tor-Björn.
  • Fix: import/export from other qTranslate-ish forks.
  • Fix: problem with menu editor under some configurations.

3.1-b4

  • Fix: 'Hide Title' in the widget. WP topic
  • Fix: corrected redirection in some peculiar cases.

3.1-b3

  • Fix: query to implement option 'Hide Content which is not available for the selected language'

3.1-b2

  • Feature: more on framework for integration with other plugins and themes.

3.1-b1

  • Feature: closing tag [:] for square bracket language encoding mode is introduced.
  • Feature: options to convert database to/from square bracket only mode.
  • Feature: new language encoding mode 'byline', particularly needed for Woocommerce integration.
  • Improvement: altered the response of filter 'esc_html' to return a translation to current language instead of the default language.
  • Feature: more on framework for integration with other plugins and themes.
  • Fix: import from mqTranslate (thanks to Christophe).

3.0 stable

  • Includes all changes after version 2.9.6.
  • Please, do not forget to respond to survey on 'Translate Service' feature by courtesy of Gunu (Marius Siroen), whose continuous help is much appreciated.
  • Feature: framework for integration with other plugins and themes.
  • Maintenance: po/mo files updated.

2.9.8.9 alpha

  • Feature: editing of menu item description on page /wp-admin/nav-menus.php.
  • Feature: hooks for integration with other plugins
  • Improvement: safer comment query with cache support when 'Hide Untranslated Content' is on. issue #17
  • Compatibility: PS Disable Auto Formatting. WP issue
  • Maintenance: .pot and .po files updated with new untranslated strings.

2.9.8.8 alpha

2.9.8.7 alpha

  • the version can be downloaded here: 2.9.8.7 alpha.
  • more on proper detection of front-end vs back-end on AJAX calls.
  • 'attr_title' is now translated in menu display

2.9.8.5 alpha

  • more on option "Hide Content which is not available for the selected language"
  • thanks to Marius Siroen for Dutch translation

2.9.8.4 alpha

  • .pot/.po files in order. Thanks to Pedro Mendonça for an extensive discussion on the best way to proceed with translations.
  • added 500ms delay before page refresh after new tag insertion on wp-admin/edit-tags.php.

2.9.8.3 alpha

  • Translations of captions and attributes in standard WP galleries, which is, in fact, much bigger change affecting many places. Need to re-test all carefully.
  • improved run-time performance.
  • some improvements on plugin translation as suggested by Gunu.

2.9.8.2 alpha

  • updated "Compatibility Functions" option with qtrans_generateLanguageSelectCode and qtrans_useCurrentLanguageIfNotFoundShowAvailable.
  • more on TinyMCE compatibility
  • taxonomy editor pages improved to switch languages for additional display fields.

2.9.8.1 alpha

  • URL of a custom menu item gets converted to active language, unless query argument 'setlang=no' is added.
  • filter 'get_search_form' is no longer need, since we adjusted home_url() issue #8

2.9.8.0 alpha

2.9.7.9 beta

2.9.7.8 beta

2.9.7.7 beta

  • menu items with empty text for the current language are not shown any more (WP issue).
  • enable Language Switching Buttons on menu editor page. Fields "Navigation Label", "Title Attribute" and "Description" now respond to Language Switching Buttons.
  • option "Custom Pages" to enable Language Switching Buttons on custom-defined pages.
  • [per-domain URL modification mode]https://wordpress.org/support/topic/qtranslate-tld-url-change-mode).
  • split the qtranslate.js script into a few scripts in admin/js/ folder to be loaded depending on the page which needs them.
  • updated qtranslate.pot and fixed proper translation of various strings in the code (thanks to Pedro Mendonça).
  • fix for when cookie 'qtrans_edit_language' contains unavailable language.
  • various performance improvements.
  • option "Editor Raw Mode" to be able to edit database text entries as they are, with language tag separators, without Language Switching Buttons.
  • fix for random <p> in TinyMCE editors.
  • fix for login problem when siteurl option is different from 'home'.
  • compatibility with Qtranslate Slug.
  • fix for blank translations.
  • fix for &amp; in url problem.
  • fix for option Hide Untranslated Content.
  • compatibility with plugin Groups, issue

2.9.6 stable

  • more fixes for <!--more--> and <!--nextpage--> tags and parsing multilingual texts.

2.9.5

  • more fixes for <!--more--> and <!--nextpage--> tags.

2.9.4

2.9.3

2.9.2

  • Option "Compatibility Functions" to enable former qTranslate function names: qtrans_getLanguage, qtrans_convertURL, qtrans_use, qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage, qtranxf_useTermLib and qtrans_getSortedLanguages
  • "Language Switcher" menu options: flags=[yes|no], type=[LM|AL]. They can be used in a query string in URL field of Language Menu.

2.9.1

  • JS bug fixed, which would not show any field value if no languages are yet configured for that field.

2.9

  • ability to enable "Custom Fields" by either "id" or "class" attribute.
  • ability to specify filters, which other theme or plugins define, to pass relevant data through the translation.
  • support for <!--more--> and <!--nextpage--> tags.
  • language cookie are renamed to minimize possible interference with other sites.

2.8

  • added option "Show displayed language prefix when content is not available for the selected language".
  • compatibility with "BuddyPress" plugin and various improvements.
  • custom CSS for "qTranslate Language Chooser" widget configurable via its properties.
  • now always redirects to a canonical URL, as defined by options, before displaying a page.
  • use of cookies to carry the language chosen from session to session.

2.7.9

  • [this does not work yet] created wrappers to make former qTranslate function names available: qtrans_getLanguage, qtrans_convertURL, qtrans_use, qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage.

2.7.8

  • user-friendly activation hook to deactivate/import/export other qTranslate forks.
  • import/export settings from other forks

2.7.7

  • improved automatic downloading of gettext databases from WP repository.
  • translation of "Site Title" and "Tagline" in Settings->General (/wp-admin/options-general.php).

2.7.6

  • Option "Custom Field": theme custom fields can be translatable.

2.7.5

  • handling multiple tinyMCE editors, as some themes have it. It will now make all fields in page and post editors of class "wp-editor-area" translatable.

2.7.4

  • fix permalink on edit pages
  • disabled autosave script in editors, since it saves the active language only and sometimes hardly messes it up later.

2.7.3

  • fixes for flag path, when WP is not in /. Permalink on edit pages is still broken, apparently has always been for this case.
  • various minor improvements

2.7.2

  • bug fixer

2.7.1

  • enabled translation of image 'alt' attribute.
  • corrected behaviour of category and tag editing pages when admin language is not the default one.
  • hid 'Quick Edit' in category and tag editing pages since it does not work as user would expect. One has to use "Edit" link to edit category or tag name.

2.7

  • enabled translations of image captions, titles and descriptions (but not 'alt').

2.6.4

  • improved Description, FAQ and other documentation.

2.6.3 (2014-12) (initial changes after zTranslate)

  • added "Language Switcher" menu item to WP menu editing screen
  • currently editing language is memorized in cookies and preserved from one post to another
  • on the first page load, the default language is now activated instead of the last language
  • full screen mode for tinyMCE integrated properly
  • more translation on tag and category editor pages
  • added 'post_title' filter to translate all titles fetched for display purpose
  • fixed problem with comment date display in some themes

Known Issues

It is important to review the list of Known Issues before starting using the plugin.

Credentials

Please, review the credentials page at qTranslate-X explained website.

Desirable Unimplemented Features

A list of desirable features is maintained at qTranslate-X explained website.

About

Wordpress plugin: Adds user-friendly and database-friendly multilingual content management and translation support.

http://qtranslatexteam.wordpress.com/about/

License:GNU General Public License v3.0


Languages

Language:PHP 87.9%Language:JavaScript 10.6%Language:CSS 1.5%