Git Product home page Git Product logo

qtranslate-x's Introduction

qTranslate X

Developed by: qTranslate Team based on original code by Qian Qin Contributors: johnclause, chineseleper, Vavooon, grafcom Tags: multilingual, language, multi-language, multilanguage, bilingual, Polyglot, admin, tinymce, widget, switcher, i18n, l10n, professional, human, translation, service, WPML, WPGlobus, Polylang, Ceceppa Multilingua, qTranslate, zTranslate, mqTranslate, qTranslate Plus Requires at least: 3.9 Tested up to: 4.5 Stable tag: 3.4.6.5 License: GPLv3 or later Donate link: https://qtranslatexteam.wordpress.com/donations/ License URI: http://www.gnu.org/licenses/gpl-3.0.html

Adds a user-friendly multilingual dynamic content management.

Description

The plugin offers a way to maintain dynamic multilingual content on a WordPress site. While static localization is already excellently implemented and offered by WordPress framework through po/mo file framework, it is still impossible to maintain dynamic multilingual content without an additional specialized plugin, a kind of which qTranslate-X belongs to. For example, what if you need to make title, content and excerpt of a page to be multilingual? In theory, it could be handled by po/mo files, but in an insanely inconvenient way.

To deal with dynamic content, qTranslate-X provides language switching buttons on applicable admin editing pages, which, once pressed, make all the text of multilingual 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, which makes it most convenient for bi-lingual or few-lingual sites, for example, owners of which perform the translation of content on their own. qTranslate-X does not provide a way to translate static strings, assuming that this part is already implemented and handled by the WordPress localization framework.

The plugin provides a way to designate which fields on a page or post are to be multilingual. Once a field is declared multilingual, it will be distinguishably highlighted (in a customizable way) on admin side. Pressing one of the Language Switching Buttons (LSB) will change the value of mutlilingual fields allowing to input and edit edit different values for each language. Note, that only the fields configured to be multilingual respond to LSB, while regular fields are not affected and keep the same value for each language. At frontend, the value of active language, as defined by a page viewer, is extracted from multilingual field to be displayed within HTML context. Thus, a concept of multilingual field is in use here, as opposite to a concept of whole separate page or separate site for each language, as it is done in a number of other multilingual content management plugins, see for example, free Polylang or paid WPML. Each plugin has its own pros and cons, please, choose carefully the one which suits your needs the best.

Plugin qTranslate-X provides a convenient way to describe which fields need to be multilingual through a JSON-encoded configuration file as described in Integration Guide. It makes it easy to integrate your theme or other plugins with qTranslate-X. A JSON-encoded file, named i18n-config.json, such as the one used by qTranslate-X itself, may be provided by themes and plugins within their distribution. Plugin qTranslate-X picks up and load those configuration files on activation of a plugin or on the switch of a theme. Such a configuration file can potentially be employed by any other multilingual plugin. The developers are encouraged to contact us to discuss a common standard for the i18n-config.json configuration file.

The plugin does not currently offer any kind of translation services. The team has conducted an online survey to find out how people translate their content. You are welcome to make your entry too. It appears so far, that translation service is not an immediate need. Administrators normally have their ways to translate the content, but they need a convenient way to enter translated content into an appropriate place, which this plugin is designed to help for. Translation services might still be provided in the future releases as a paid feature.

Plugin 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.
  • Comes with a number of languages already built-in - English, German, Simplified Chinese, for example, and many more.
  • Language customizations without changing the .po/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.
  • Language tag encoding allows strings like this '[:en]English Text[:]<html-language-neutral-code>[:de]Deutsch[:]<another-html-language-neutral-code>', with language-neutral text embedded.
  • Multilingual dates out of the box - translates dates and time for you.
  • Theme custom fields can be configured to be translatable too.
  • Choose one of a few modes to make your URLs look pretty and SEO-friendly, for example, the simple and beautiful /en/foo/, or nice and neat en.yoursite.com, or 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.
  • To generate language-specific sitemaps for better SEO support, use Google XML Sitemaps or 'XML Sitemaps' under Yoast SEO. Please, report a successful use of other sitemap plugins.

The website qTranslate-X explained provides and keeps updated a few useful listings:

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

This plugin has started as a descendant of qTranslate, which has apparently been abandoned by the original author, Qian Qin. At this point, qTranslate-X has many new features and hardly resembles its ancestor. Neither it is a straightforward compatible with older plugin. One will need to carefully read Migration Guide in order to switch a site from old qTranslate to qTranslate-X.

You may still find some 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 a 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 has been a number of forks of qTranslate, for example, mqTranslate, qTranslate Plus and zTranslate. Most of them are now retired. They all tried 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 instance. We hope that this plugin is the most complete working version which combines the best features of the original qTranslate as well as all its forks.

We organized an impersonal 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

Important: Read migration instructions, if you previously used other multilingual plugin, otherwise initial installation of this plugin is no different from any other standard plugin. It may help to review Startup Guide in order to get an idea on what to expect.

Very Important: Whenever you update the plugin, make sure to deactivate the previous version and then activate the new one. Normal WordPress update does that, and should be sufficient, but if you overwrite plugin files manually, be sure to execute deactivation/activation cycle, otherwise you will miss the execution of activation hooks and some options may become misconfigured. For the sake of performance, plugin is not programmed to run all the necessary checks every time it is loaded, since activation hook is an expensive operation. That is why it is important to execute deactivation/activation cycle.

Otherwise the installation is similar to any other WordPress plugin:

  1. Download the plugin from WordPress or take the latest development version from GitHub.
  2. Use WordPress /wp-admin/plugin-install.php page to install a plugin or extract all the files and upload everything (keeping the directory structure) to the /wp-content/plugins/ directory.
  3. Deactivate plugin qTranslate, mqTranslate, qTranslate Plus, zTranslate or any other multilingual plugin, if you are running any.
  4. Activate qTranslate-X through the 'Plugins' (/wp-admin/plugins.php) configuration page in WordPress.
  5. Open Settings->Languages configuration page and add/delete/disable any languages you need.
  6. Add the "qTranslate Language Chooser" widget or "Language Switcher" menu item to let your visitors switch the language.
  7. For the new installers, it may be useful to read Startup Guide.
  8. Configure theme or other plugins custom fields to be translatable if needed (Settings -> Languages: "Integration").
  9. If your theme shows multilingual fields at front end in raw format, then read Integration Guide.

Frequently Asked Questions

  • For the new installers, it may be useful to read Startup Guide.
  • It is important to read migration instructions, if you previously used other multilingual plugin.
  • Read Integration Guide when you need to make theme or other plugin custom fields to be multilingual.

A general 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.

Screenshots

  1. Editing screen showing the Language Switching Buttons (LSB). Pressing a button does not make a call to the server, the editing happens locally in browser, until "Update" button is pressed, the same way as it is for one language. Multilingual Fields (MLF) are decorated with a color bar on the left to make it easier to distinct them. The way MLF is marked is customizable. Note, that only the fields configured to be multilingual respond to LSB, while regular fields are not affected and keep the same value for each language.
  2. Language Management Console - tab "General". Read Startup Guide for more information.
  3. Language Management Console - tab "Advanced". Read Startup Guide and FAQ for more information.
  4. Language Management Console - tab "Integration". These are the options to configure custom Multilingual Fields (MLF). Read Integration Guide for more information.
  5. Language Management Console - tab "Import/Export". Read Migration Guide for more information.
  6. Language Management Console - tab "Languages". Read Startup Guide for more information.
  7. Language Management Console - page "Configuration Inspector". This page allows to review the combined resulting JSON-encoded configuration of qTranslate-X. Read Integration Guide for more information.

Upgrade Notice

3.4.8

Introducing new date/time handling method based on the latest WordPress implementation of date/time translation.

3.4.6.6

More of compatibility issues with WP 4.5

3.4.6.5

Compatibility issues with WP 4.5

3.4.6.4

Fix: A fix for Internal Server Error 500 under some circumstances.

3.4.6.2

This version recovers translation of parent of a category on category edit page.

Changelog

3.4.8

  • Enhancement: New date/time handling (QTX_DATE_WP) based on WordPress implementation. Related options are moved to a new tab "Dates" on language management page. The default is changed to the new method.
  • Enhancement: Improved language choosing and handling for the first-time installation.
  • Enhancement: Improved new language handling with more pre-filled attributes.
  • Enhancement: Table of languages is now sortable.
  • Enhancement: Table of languages now shows language names in admin language.
  • Enhancement: Column "Edit" has been removed from the table of languages as redundant. Click now name of language or its flag to edit a language.
  • Enhancement: Improved performace and error handling of function qtranxf_updateGettextDatabasesEx.
  • Enhancement: Handling of slugs in qTranslate-X native way, instead of semi-integrated plugin "Qtranslate Slug" - removed later, it needs more work.

3.4.6.8

  • Imrovement: translation of taxonomies on page /wp-admin/edit.php.
  • Fix: proper tag editing on page post.php Issue #366.

3.4.6.7

  • Fix: for /wp-login/ and /login/. Thanks to extremecarver.
  • Fix: unexpected menu behaviour for empty menu label when option "Hide Content which is not available for the selected language" is on: WP Topic.

3.4.6.6

  • Fix: WP45, '/wp-admin/nav-menus.php': title of newly added menu item kept one language only.
  • Fix: WP45, '/wp-admin/nav-menus.php': double quotation mark in menu label.

3.4.6.5

  • Improvement: Option 'Show language names in "Camel Case"' has been added on Settings/Languages page /wp-admin/options-general.php?page=qtranslate-x#general in order to handle absence of function mb_convert_case, as PHP module mbstring may not be installed by default: WP Topic.
  • Enhancement: added preset for Welsh (Cymraeg, 'cy') language.
  • Fix: regular expression to detect lang=xx in line preg_match('/(^|&|&amp;|&#038;|\?)lang=([a-z]{2})/i',$url_info['query'],$match) of file qtranslate_core.php: Issue #288.
  • Fix: smooth run of wp-cron.php from command line: WP Topic.
  • Fix: consistency of option "Hide Content ..." to show single post without 404 error, like it is with single page: Issue #297.
  • Fix: Predefined locales are changed to match WordPress locales:
    Estonian (Eesti) 'et_EE' renamed to 'et',
    Basque (Euskera, in native alphabet, Euskara, in WordPress, both correct) eu_ES renamed to 'eu',
    Greek (Ελληνικά) 'el_GR' renamed to 'el',
    Finnish (Suomi) 'fi_FI' renamed to 'fi',
    Croatian (Hrvatski) 'hr_HR' renamed to 'hr'.
    Old .mo files are kept in order not to break the sites that may be currently using them, but they should now switch the locale appropriately. The following /lang/qtranslate-* files have been renamed to match changes in locale:
    qtranslate-el_GR.
    renamed to qtranslate-el.
    qtranslate-es_CA.
    renamed to qtranslate-ca.
    qtranslate-hr_HR.
    renamed to qtranslate-hr.*
    This emerged from Topic #27.
  • Languages: Slovak (sk_SK) language preset has been added. Thanks to Andrej Leitner.
  • Fix: WP45, LSB on term adit page '/wp-admin/term.php': Issue #342
  • Fix: WP45, menu update problem '/wp-admin/nav-menus.php': Issue #347.
  • Fix: PHP7, Warning 'Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP': Issue #.

3.4.6.4 release

  • Enhancement: The list of avalable languages in "Not Available Message" and alternative language shown now follow the order of languges defined on configuration page, ignoring the default language. For example, if the first language in the order is English, the second is your native and the default, then English translation will be preferably shown as alternative language. Most sites are expected to be unaffected, since the first language in the order is normally the default langauge. However, it may make sense to first try to show most common language (like English in this example), instead of the default language. Now this is possible with putting the most common language to be the first in the order of languages. The order affects language menu, widget and language shown when translation is not available, as well as any other place where languages need to be listed in an order.
  • Fix: home_url() on admin side is now only filtered on /wp-admin/customize.php page, otherwise it created a few problems, for example, wrong overwriting of .htaccess file in some cases, causing Internal Server Error 500 with infinite redirection loop: WP Topic.
  • Fix: consistency and caching of meta data translations. Known affected theme: Sahifa. WP Issue.

3.4.6.2 release

  • Fix: recovered translation of parent of a category on category edit page.

3.4.6.1 release

  • Fix: Call of qtranxf_get_admin_page_config is moved after all integrating plugins loaded their *-admin.php, otherwise i18n configuration is loaded only partially, which broke "Woocommerce & qTranslate-X". Issue #277.

3.4.6 release

  • All issues after version 3.4.4

3.4.5.4

  • Feature: Type 'custom' with arbitrary format of items for widget "qTranslate Language Chooser". Arguments of function qtranxf_generateLanguageSelectCode are chenge to comply with WordPress standards. Compatibility with old arguments is preserved.
  • Enhancement: Translation of language names to other languages: Issue #264. Thanks to benique.
  • Enhancement: Moved meta tag "generator" to a separate action: Issue #244.
  • Enhancement: PNG files have been further compressed with advanced algorightms: PR #279. Thanks to benique.
  • Enhancement: Translation of colon ':' to satisfy French language and may be some other.
  • Fix: enabled back translation of posts in qtranxf_postsFilter with filter 'raw'.

3.4.5.3

  • Enhancement: integration with plugin bbPress started, file ./i18n-config/plugins/bbpress/i18n-config.json.
  • Enhancement: integration with theme WPEX Elegant started, file ./i18n-config/themes/wpex-elegant/i18n-config.json.
  • Enhancement: integration of WP Widget "Text" is enabled: WP Issue.
  • Fix: position of flags in admin menu: Issue #269.

3.4.5.2

  • Improvement: admin configuration loading is moved to filter 'plugins_loaded', search for function qtranxf_admin_load to see the change.
  • Fix: removed meta box "Languages" in any Editor Mode, except "Single Language".

3.4.5.1

  • Enhancement: argument $found for qtranxf_split_blocks.
  • Enhancement: removed limit of 5 characters in language form for locale: Issue #262;

3.4.5

  • Fix: Crash on customize.php screen. No Language Switching Buttons on customize screen yet, some values are not translated, but raw multilingual values work. Issue #223.
  • Fix: Remove children of parent menu item deleted: Issue #255.
  • Fix: Obsolete widget constructor Issue #250
  • Fix: Enable a language when gettext database fails to update on a private server: Issue #236.
  • Fix: use table of list of languages for WP 4.3.
  • Fix: disabled translation of posts in qtranxf_postsFilter with filter 'raw'.
  • Enhancement: home_url on admin side now returns url of current front end language - this helps on customize screen.
  • Enhancement: choice 'css_only' for $style argument in qtranxf_generateLanguageSelectCode: Issue #259.
  • Enhancement: Handle the CSRF vulnerability.

3.4.4 release

  • Fix: link 'View Page': WP Topic.
  • Fix: security exploit found by WordPress for vulnerable parameters json_config_files and json_custom_i18n_config: report.

3.4.3 release

  • Fix: qtranxf_trim_words defined at front and admin side: Issue #201.
  • Fix: BugTraq issue 139 reported for old qTranslate was assumed to be applicable to qTranlstae-X too, causing WP to ban the plugin temporarily.
  • Improvement: WP_CLI compatibility.
  • Translation: a lot of thanks to all translators contributed.

3.4.2 release

  • Fix: i18n configuration loading on the first installation, WP Topic.
  • Fix for qtranxf_updateGettextDatabases.

3.4.1 release

  • Fix: i18n configuration loading for integrated plugins.

3.4 release

  • Includes all changes after version 3.3. Please, review Release Notes.
  • Major new feature: Integration Framework is finalized in its first edition.
  • Translation: a lot of thanks to all translators contributed.

3.3.9.0

  • Fix: warning message on the first update from 3.3 due to new options creation.

3.3.8.9

  • Enhancement: deep translation of options (qtranxf_translate_option) including embedded serialized values.
  • Enhancement: allow absolute paths in 'src' attribute in configuration: Issue #186.
  • Enhancement: Dealing with '&' in term name, filter 'get_terms_args'.

3.3.8

  • Enhancement: option 'Locale at front-end' added. WP Topic.
  • Feature: custom language switching menu with #?lang=xx.
  • Enhancement: in function qtranxf_collect_translations_posted, parse variables collected as a query string in an option.
  • Enhancement: update option 'Configuration Files' on theme switch.
  • Enhancement: search for i18n-config.json files under active theme, plugins and qtranslate-x/i18n-config folder.
  • Enhancement: more on error handling.
  • Enhancement: translation of admin menu.
  • Enhancement: display translation of h2 titles on post.php (for custom types).

3.3.7

  • Feature: finalizing Integration Framework.
  • Feature: swirly-bracket(brace) language encoding added to be used in places where square-bracket and comment encoding do not work. '[:]' sometimes conflict with shortcodes. '' does not survive tag clean up. '{:}'(swirly-bracket) seems to survive all.
  • Enhancement: 'plugins' vs 'mu-plugins', links of sub-folders, etc. Issue #168.
  • Enhancement: gettext filters in raw and single language modes.
  • Enhancement: turn on 'Compatibility Functions' on first activation, if a file of one of the former forks is detected.
  • Enhancement: translation of user metadata at front end WP Topic.
  • Fix: handling non-standard language code: Issue #171.
  • Fix: 'Head inline CSS' update on language list changes.
  • Fix: pagination of posts under Query Mode of URL Modification (filter 'qtranxf_convertBlogInfoURL'): Issue #155. Filters 'home_url' and 'bloginfo_url' are disabled in Query mode.
  • Fix: updated qtranxf_get_option_config_files to check for misconfigurations.
  • Fix: prev/next_post_link WP Topic.

3.3.5

  • Feature: Integration Framework finalizing JSON file format.
  • Enhancement: function qtranxf_error_log to show crucial error messages as admin notices on all admin pages and to update 'error_log' file.

3.3.4

  • Fix: function qtrans_join: WP Topic.
  • Feature: Meta-box 'Language' with Language Switching Buttons is now ready for functionality testing.
  • Feature: Integration Framework for PHP code.

3.3.3

  • Fix: skip filter 'pre_get_posts' for post_type 'nav_menu_item': WP Topic.
  • Fix: hreflang in <link> is now locale instead of language code: WP Topic.

3.3.2

  • Feature: Meta-box 'LSB' for Language Switching Buttons, which can be placed anywhere on a page (not finished, just to test an idea on how it will look and work).
  • Feature: integration framework is finished in its first version as it is described in Integration Guide. The configuration is now loadable from JSON files, which 3rd-party themes or plugins may generate.
  • Enhancement: pre-sets for option 'Highlight Style' are changed to use CSS property 'border' instead of 'box-shadow' and 'outline', otherwise the highlighting was not always visible, specifically when class 'widefat' is also in use.
  • Fix: visual mode misbehaviour in field 'Details' for events managed by plugin Events Made Easy Issue #152.

3.3.1

  • Enhancement: added class attributes qtranxs-available-language* to the message about available languages to make it CSS-customizable: WP Topic.
  • Enhancement: qtrans_getAvailableLanguages added to "Compatibility Functions".
  • Enhancement: tabs on configuration page, thanks to Pedro Mendonça for the idea and initial coding: Issue #135 & #153.
  • Fix: pagination of posts under Query Mode of URL Modification (filter 'get_pagenum_link'): Issue #155, WP Topic and WP Topic.
  • Fix: locale 'ja_JP' changed back to 'ja' as this is what WordPress uses. Files lang/qtranslate-ja_JP.mo/po renamed to qtranslate-ja.mo/po.

3.3 release

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

3.2.9.9.8 (3.3 RC1)

  • Enhancement: admin message with a link to Startup Guide on the first install.
  • Fix: sub-domains should be external hosts Issue #148.

3.2.9.9.7 alpha

  • Fix: one more problem is discovered in function qtranxf_filter_postmeta for the case of empty $meta_key, reported in Issue #138.

3.2.9.9.6 alpha

  • Enhancement: override admin language from $_POST['WPLANG'] in case user tries to change language using field 'Site Language' on page /wp-admin/options-general.php.
  • Fix: action 'updated_postmeta' added to clear post meta data cache: Issue #138.

3.2.9.9.5 alpha

  • Feature: query argument qtranslate-mode=raw to retrieve a page without translation as suggested in issue #133.
  • Fix: use of post meta cache after its update, Issue #138.
  • Translation: German (de_DE) po/mo files updated. Thanks to Robert Skiba.
  • Translation: Dutch (nl_NL) po/mo files updated. Thanks to Marius Siroen.

3.2.9.9.4 alpha

  • Feature replaced: Visual Composer compatibility moved to a separate plugin: WPBakery Visual Composer & qTranslate-X
  • Enhancement: filters 'gettext' and 'gettext_with_context' are moved to qtranslate_frontend.php, as they are not needed on admin side.
  • Enhancement: js scripts in the 3rd-party integration framework.
  • Fix: the list of available languages in the column 'Languages' of post listing.

3.2.9.9.3 alpha

  • Enhancement: support for flags of type svg.
  • Enhancement: improved report messages for action 'markdefault'.
  • Enhancement: improved messages in column "Language" of post listing pages.
  • Translation: German (de_DE) po/mo files updated. Thanks to Robert Skiba.
  • Enhancement: another attempt to check REDIRECT_STATUS in function qtranxf_can_redirect to prevent unnecessary redirection if mod_rewrite is already doing redirection. In particular, this should help to troubleshoot internal server error as it was observed in Issue #96.

3.2.9.9.2 alpha

  • Fix: troublesome use of deprecated function mysql_real_escape_string is removed: WP Topic.

3.2.9.9.1 alpha

  • Fix: alt attribute for flag icons in widget 'qTranslate Language Chooser': WP Topic.
  • Fix: title attribute for language menu items: WP Topic.
  • Feature: take language menu title from field 'Navigation Label' of menu editor: WP Topic.
  • Feature: options 'names' and 'colon' in Language Menu configuration.
  • Translation: .pot, .po and .mo files updated.

3.2.9.9.0 alpha

  • Design: Java script interface for 3rd-party integration, functions: getLanguages, getFlagLocation, isLanguageEnabled, addLanguageSwitchBeforeListener, addLanguageSwitchAfterListener, enableLanguageSwitchingButtons.
  • Translation: pot and po files updated.

3.2.9.8.9 alpha

  • Feature: option 'Post Types' to exclude some post types from translation: WP Topic and WP Topic.
  • Feature: Visual Composer compatibility (experimental).
  • Enhancement (cancelled previously changed at 3.2.9.8.8, it breaks some other places, needs more investigation): 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.

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 release

  • 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 'Yoast 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 release

  • 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 release

  • 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 release

  • 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 release

  • 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 release

  • 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 release

  • 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 release

  • 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.

qtranslate-x's People

Contributors

benique avatar chsxf avatar d-blindside avatar ddon avatar estim avatar funkjedi avatar gasimgasimzada avatar howtosolutions avatar isoph avatar jcchavezs avatar johnclause avatar kuchenundkakao avatar maurizio-omissoni avatar moralfish avatar mweimerskirch avatar pedro-mendonca avatar ryo88c avatar sdellenb avatar vallsargente avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qtranslate-x's Issues

Language .pot file

qtranslate.pot catalog is too old.
I've started with .pot from the very good mqTranslate and most strings are the same, way more than original qtranslate.pot.
Please update .pot file so that we can keep up with the translations.
Great work by the way, hope this will be the future of qTranslate platform, with all childs merged into one :)
I'm very happy with this joint solution.
Best regards
Pedro Mendonça

DB Conversion to Brackets / Legacy throws errors because of mysql_real_escape_string, better use $wpdb->prepare

As the title says, if you try to use the "convert database" function, you get a lot of errors because no mysql connection is opened.

Please replace lines 81 and 97 in the admin/admin_utils.php with the following:

$wpdb->query($wpdb->prepare('UPDATE '.$wpdb->posts.' set post_content = %s, post_title=%s, post_excerpt=%s  WHERE ID=%d',$content, $title, $excerpt, $post->ID));

http://codex.wordpress.org/Data_Validation#Database

The shortcodes are not escaped when saving

The following is a minor issue I noticed while digging through the code.
The original qtranslate used HTML comments as separation characters:

<!--:en-->.....<!--:-->

A big advantage of this notation was that if you happened to use this notation in the WYIWYG editor, it would be escaped automatically and saved correctly:

&lt;!--:el--&gt;.....&lt;!--:--&gt;

qtranslate-x uses the shorter versions:

[:en]......

When entered manually in the WYSIWYG editor (e.g. if you want to write an article about qtranslate-x), the codes disappear when saving, because they are not escaped.

On a related note, the original qtranslate codes disappear as well (which didn't happen with the original version). This might be because the "split_regex" handles both separators at the same time.

How to stop add language in user-defined link in Menu ?

In the menu config page, I add a link part, It's good for qTranslate to set the different language name for the link, but I want to use a same link without adding a /en or other language. Is it possible to stop this function. Thanks.

Visual editors compatibility

Hi Michel (@mweimerskirch), I am wondering, since you seem pretty familiar with both codes, mq- and -x, could you take a look at the problem with WP Editor https://wordpress.org/plugins/wp-editor/? Users report, https://wordpress.org/support/topic/wp-edit-modifying-pages-in-visual-mode-not-working, it working in mq-, while it not working in -x. Would you be able and have time to look for a reason? I would not expect a fix to be easy, but at least understanding the reason why it does not work in -x would be a good start. Thanks a lot in any case for all your help.

Admin Language Switcher is not working consistently

After upgrading from v.3.2.9 to v.3.2.9.2 the admin language switching button is working inconsistently.

When I switch from one language to another one, some strings are translated to the just selected language and others are obtained from a previously used language that was somehow kept in memory, even if it's not enabled anymore.

Before upgrading, the switching was perfect and complete. After upgrading to 3.2.9.2 it's somehow messy.

No translation for timestamps with ISO 8601

timestamps are translated if time format convert function is turned on.
a exception in the qtranxf_convertFormat() function would be great for iso timestamps if using get_the_date('c')

Add/remove content hooks dynamically

When custom fields are added/removed from a post I'm looking for a way to be able to add/remove the content hooks from the frontend (since the page has already loaded).

One approach would be to expose the qTranslateX instance on the window object. That would allow calling the addContentHook* methods.

jQuery(document).ready(function($){ 
    window.qtx = new qTranslateX(qTranslateConfig.js);
});

Translation of fields in WP General Settings: JetPack incompatibility

When I update Site Title or Tagline fields that now appears highlighted and tabbed with language flags in the Settings > Settings panel, it's content is erased. I've checked the database and the fields blogname and blogdescription got cleaned.
I've tried inserting different and same text for different languages, the behaviour is the same.
The only ways to readd it are:

  1. General Settings > editing Site Title and Tagline in Raw Mode with [:pt]Título[:en]Title[:] tags.
  2. Appearance > Customize, and after inserting the single fields Site Title and Tagline it populates both fields again in the General Settings.

qTranslate-x v.3.2.9.5

Re-Open Issue "Default language can't be chosen" (#33)

Hi, i'm pretty new to the higher functions of github, so i'm not sure if commenting to a closed issue reopens them. So to be sure that you see it, i paste my response here.

Please be free to delete this issue if you saw my response in the closed thread.

Hi again!
Sorry, that was a miscommunication. This is really about "Hide URL Information for Default language" and the fact that after going to the secondary language, visiting the site without language path gets you to the secondary language again.

Thank you for the clarification about your reasons to "get" the language in the order that it does. I see many things clearer now and i can understand the reasons.

I think the reason that so many "mqtranslate-to-qtranslate-x-switchers" like me have a problem with this is that its completely opposite to what we were used to from mqtranslate or qtranslate. mqtranslate didn't use cookies or Browser Redirection, so this is new to us and sometimes breaks functionality on existing websites.

Maybe we (you) can implement a compatibility function that uses my "fix" above if activated. It could be called "mqtranslate redirect compatibility" or something like this ;)

Happy Coding,
Kuchenundkakao

Changing navigation menus is broken

Hi,

I noticed, that adding new Pages to a Menu breaks the translation.
Upon saving the now changed menu every old translation gets deleted.

Step 1: Create a new test menu /wp-admin/nav-menus.php
Step 2: Add some pages
https://www.dropbox.com/s/sltppu1khin1btc/Screenshot%202015-01-12%2022.29.12.png?dl=0
Step 3: Add more pages
https://www.dropbox.com/s/kr9uxyze44dtkc8/Screenshot%202015-01-12%2022.29.30.png?dl=0
https://www.dropbox.com/s/gkusl97zj1nmd7n/Screenshot%202015-01-12%2022.36.45.png?dl=0
Step 4: Save Menu
https://www.dropbox.com/s/8idafcrp1zvj39m/Screenshot%202015-01-12%2022.29.40.png?dl=0

As you can see only the default language (and the translations of the last item) are preserved.
I'm fine with the ... tags, but preserving these upon adding new items would be great 👍

Plugin description translation

I've been searching to automatically include the plugin description contained in header in .pot file.
So far no result, I'll keep digging and opened this issue to keep a track of this.

Front page encoding doesn't work

Hello,

i'm using 3.2.7 version.

Encoding [:] or does not work on front page.
I tried:
[:en]English[:de]Deutsch
[:en]English[:de]Deutsch[:]
[:en]English[:][:de]Deutsch[:]

and the same combination for syntax.

Any ideas?

Version 3.2.9 redirects wp-login / wp-admin to home url when wordpress is in a folder.

Hi
I have wordpress installed in a folder (example.com/app) and when I updated from 3.2.7 to 3.2.9 when I was trying to login (example.com/admin/wp-admin) I was being redirected to home URL (example.com/app) and couldn't access admin panel. I rollback to 3.2.7 and everything works fine.

The problem lies in the WP_HOME variable.

If I change the WP_HOME to define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME'] . ''); and move the index.php file to root folder is working fine.

wp-config.php

if (!defined('WP_SITEURL')) {
define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/admin');
}
if (!defined('WP_HOME')) {
define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME'] . '/app');
}
if (!defined('WP_CONTENT_DIR')) {
define('WP_CONTENT_DIR', dirname(FILE) . '/app');
}
if (!defined('WP_CONTENT_URL')) {
define('WP_CONTENT_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/app');

Folder structure:

root
---admin (wp-admin etc)
---app (themes, plugins etc)
---wp-config.php

Throwing a lot of php warnings and notices in debug bar

I just did a migration from mqtranslate to qtranslatex and get some errors – perhaps the given strings or data are not nice validated? Site seems to work.

WARNING: wp-content/plugins/qtranslate-x/qtranslate_core.php:1199 - get_class() expects parameter 1 to be object, string given

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, Debug_Bar->render, __, translate, apply_filters('gettext'), call_user_func_array, qtranxf_gettext, qtranxf_use, get_class

WARNING: wp-content/plugins/qtranslate-x/qtranslate_core.php:1199 - get_class() expects parameter 1 to be object, integer given

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action_ref_array, call_user_func_array, wp_admin_bar_updates_menu, wp_get_update_data, wp_get_translation_updates, get_site_transient, get_site_option, get_option, apply_filters('option__site_transient_update_themes'), call_user_func_array, qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage, qtranxf_use, qtranxf_use, get_class

WARNING: wp-content/plugins/qtranslate-x/qtranslate_core.php:1199 - get_class() expects parameter 1 to be object, boolean given

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action_ref_array, call_user_func_array, wp_admin_bar_updates_menu, wp_get_update_data, wp_get_translation_updates, get_site_transient, get_site_option, get_option, apply_filters('option__site_transient_update_core'), call_user_func_array, qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage, qtranxf_use, qtranxf_use, qtranxf_use, qtranxf_use, qtranxf_use, get_class

NOTICE: wp-content/plugins/qtranslate-x/qtranslate_utils.php:73 - Undefined offset: 5

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action('wp_before_admin_bar_render'), call_user_func_array, wp_customize_support_script, home_url, get_home_url, apply_filters('home_url'), call_user_func_array, qtranxf_home_url, qtranxf_get_url_for_language, qtranxf_parseURL

NOTICE: wp-content/plugins/qtranslate-x/qtranslate_utils.php:76 - Undefined offset: 6

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action('wp_before_admin_bar_render'), call_user_func_array, wp_customize_support_script, home_url, get_home_url, apply_filters('home_url'), call_user_func_array, qtranxf_home_url, qtranxf_get_url_for_language, qtranxf_parseURL

NOTICE: wp-content/plugins/qtranslate-x/qtranslate_utils.php:77 - Undefined offset: 7

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action('wp_before_admin_bar_render'), call_user_func_array, wp_customize_support_script, home_url, get_home_url, apply_filters('home_url'), call_user_func_array, qtranxf_home_url, qtranxf_get_url_for_language, qtranxf_parseURL

NOTICE: wp-content/plugins/qtranslate-x/qtranslate_utils.php:78 - Undefined offset: 8

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action('wp_before_admin_bar_render'), call_user_func_array, wp_customize_support_script, home_url, get_home_url, apply_filters('home_url'), call_user_func_array, qtranxf_home_url, qtranxf_get_url_for_language, qtranxf_parseURL

NOTICE: wp-content/plugins/qtranslate-x/qtranslate_utils.php:72 - Undefined offset: 1

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action('wp_before_admin_bar_render'), call_user_func_array, wp_customize_support_script, home_url, get_home_url, apply_filters('home_url'), call_user_func_array, qtranxf_home_url, qtranxf_get_url_for_language, qtranxf_parseURL

NOTICE: wp-content/plugins/qtranslate-x/qtranslate_utils.php:73 - Undefined offset: 4

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action('wp_before_admin_bar_render'), call_user_func_array, wp_customize_support_script, home_url, get_home_url, apply_filters('home_url'), call_user_func_array, qtranxf_home_url, qtranxf_get_url_for_language, qtranxf_parseURL

NOTICE: wp-content/plugins/qtranslate-x/qtranslate_utils.php:74 - Undefined offset: 2

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action('wp_before_admin_bar_render'), call_user_func_array, wp_customize_support_script, home_url, get_home_url, apply_filters('home_url'), call_user_func_array, qtranxf_home_url, qtranxf_get_url_for_language, qtranxf_parseURL

NOTICE: wp-content/plugins/qtranslate-x/qtranslate_utils.php:75 - Undefined offset: 3

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/lucas/front-page.php'), get_footer, locate_template, load_template, require_once('/themes/lucas/footer.php'), wp_footer, do_action('wp_footer'), call_user_func_array, wp_admin_bar_render, do_action('wp_before_admin_bar_render'), call_user_func_array, wp_customize_support_script, home_url, get_home_url, apply_filters('home_url'), call_user_func_array, qtranxf_home_url, qtranxf_get_url_for_language, qtranxf_parseURL

GitHub updates

Hi @johnclause

Do you know the plugin GitHub Updater?
https://github.com/afragen/github-updater

It allows a theme or plugin to update either from WordPress or GitHub defined repo/branch.
It uses the header info on Version and GitHub release tags.
Are you willing to try it? I'm testing it and found it somehow usefull and interesting, specially for developers.
The thing it would need from your side is just add the github repo to headers in qtranslate.php:

GitHub Plugin URI: https://github.com/qTranslate-Team/qtranslate-x
GitHub Branch: master

RFC: "flat" flags without bevel effect

The flag icons currently have a slight bevel effect. This limits the way they can be used, because the bevel effect does not always fit. If they were flat, they could be used in a more wide range of sites without having to manually find other icons. For backwards compatibility, the bevel effect can be re-added using a line of CSS (2 simple inset box-shadows)
At the same time, the resolution of the flag icons could be increased so they can be used in larger versions.

product variation is not working in the second language

Installed the new version (3.2.7) and (woocommerce) product variation is not working on the second language, shows only an empty selector box. The first language works well, though. The previous version (3.2.2) was working in both languages. Have only 2 languages on the page, so guess the issue is the same with 3 or more languages.

Tags and Categories not translated after migration

Hi,
I wrote also in wp support. After migrating almost painless from mqTranslate I found out that Tags and Categories are not translated after the migration.
I have a bilingual site (English- Italian) and Italian tags/Categories are not present anymore. Clicking the language button only English version is available of both. Pages and Posts works correctly. If you visit http://www.norwayinteractive.biz/ changing language can see that About Us menu item changes because is a page title while other items not, they are tags and categories.
I wish you can find the fix because there's no error log in the php panel of server site
thanks
I tested with other themes too and tried to deactivate also some plugins but nothing changes and tags/categories are not available in Italian always English is shown.

Language Codes conflicting

Sinced we're having both Portuguese and Portuguese (from Brazil) languages that I've had a difficulty to understand the Language Codes.

The two letter code for Language Code is far from good.
There are several possibilities and a more wide and WordPress compatible should be chosen.

In a simple example, in the pre-installed list there are:
pt - Portuguese
br - Breton
pt-br(?) - Portuguese (from Brazil)

I'm sure there are a lot of languages that derive from the same base, as en_US/UK or es_ES/MX/AR languages.
To correctly identify these, the two letter code is not enough.

There isn't for now a Breton localization team for WordPress, but the problem still exists for several other languages. Look at the current list of available WordPress languages here:
http://wpcentral.io/internationalization/
and here
https://make.wordpress.org/polyglots/teams/

I've been searching for the optimal code system to solve this issue, there are some possible choices.
As this is a WordPress plugin the best option would be using the same system that it's parent framework.
I suggest to look a bit inside this list I've found in the core of GlotPress, it's the most complete info on all the languages with all the necessary codes to correctly identify the languages, the ones that already have translation and the ones that might have in the future.
https://github.com/GlotPress/GlotPress/blob/master/locales/locales.php

Below I've pasted the info of the three languages I found conflicting to make it easy to choose the apropriate precise system that won't generate any conflict.

$pt->english_name = 'Portuguese (Portugal)';
$pt->lang_code_iso_639_1 = 'pt';
$pt->country_code = 'pt';
$pt->wp_locale = 'pt_PT';
$pt->slug = 'pt';
$pt->google_code = 'pt-PT';
$pt->facebook_locale = 'pt_PT';

$pt_br->english_name = 'Portuguese (Brazil)';
$pt_br->lang_code_iso_639_1 = 'pt';
$pt_br->lang_code_iso_639_2 = 'por';
$pt_br->country_code = 'br';
$pt_br->wp_locale = 'pt_BR';
$pt_br->slug = 'pt-br';
$pt_br->google_code = 'pt-PT';
$pt_br->facebook_locale = 'pt_BR';

$br->english_name = 'Breton';
$br->lang_code_iso_639_1 = 'br';
$br->lang_code_iso_639_2 = 'bre';
$br->country_code = 'fr';
$br->slug = 'br';

Using country code is incorrect as a lot of languages belong to the same country.
Using the two letter ISO_639_1 is a incomplete and generates conflict.
I find most convenient one to be the slug = (aka Locale Code) and wp_locale = (aka WordPress Locale) chosen by WordPress, it perfecly identifies the language with no conflict.

In the end, this is similar to the system that you've implemented in qTranslate-X, but the list that you point in the form (http://www.w3.org/WAI/ER/IG/ert/iso639.htm#2letter) for users to choose their Language Code is far from good as it's incomplete to avoid conflict and it's not possible for to user to write more that two letters in the field.

I suggest to allow more letters in the form field and to use the WordPress corresponding adopted fields in http://wpcentral.io/internationalization/:
[QTX] Language Code -> Locale Code
[QTX] Locale -> WordPress Locale

Crashes Firefox with Adblock Plus extension

With Qtranslate-X 3.2.9, a user with adblock pro plugin with Firefox will experience a crash. Disabling the plugin or adblock plus prevents the crash. It began since 3.2.9. Works fine in 3.2.7

qTranslate Reset problem and returns errors

Version 3.2.9.2

After upgrade from 3.2.9 to 3.2.9.2, when I try to reset qTranslate-x it won't reset and returns errors in these lines:
Warning: Invalid argument supplied for foreach() qtx_configuration.php on lines 39, 40, 41, 42 and 43.

Random <p> and </p> tags in post editor pages

Theme: any, "Twenty Fifteen" would do.
Plugins: can be qTranslate-X only, I do not think it is a compatibility problem with other plugins.
At least two languages, for example, en and de, to be specific.

Steps to reproduce the problem:

  • Add New Post
  • Title: any, it is not a subject of the problem
  • Put Editor in "Text" mode
  • Description: type EN for "en" language and DE for "de", just as an example, any text would do.
  • Publish.
  • Go to database and see that 'post_content' field of that post has <!--:en-->EN<!--:--><!--:de-->DE<!--:-->, which is normal.
  • Open that post for editing.
  • Editor comes in "Text" mode, as it was left in "Text" mode before.
  • Switch to "Visual" mode
  • Click on description text, do not even need to do any typing, just press "Update" button right then.
  • Database now has: <!--:en--><p>EN</p><!--:--><!--:de-->DE<!--:-->, where EN was the active language at time of pressing "Update". This part is kind of explainable, TinyMCE embraced active text with <p></p>, although it does not do so, when plugin is deactivated.

But then something really strange happens:

  • click in editor again and then “Update” again, database now has:
    <!--:en--><p>EN</p><p> </p><!--:--><!--:de-->DE<!--:-->
  • And even more striking, do not click anywhere, just press “Update” again. database now has:
    <p><!--:en--><p>EN</p><p> </p><p><!--:--><!--:de-->DE<!--:--></p>
    Pay attention that <p> and </p> do not match anymore.

Further clicking “Update” does not modify this text anymore.

I have been printing various variables on java console, but those <p> did not show up anywhere I looked so far. I have no idea how they get into the database.

If people consistently keep editor at "Visual" mode, they apparently do not notice a problem. Nobody complained about this yet, but we'd better to clear it out before somebody does.

P. S. I first discovered this in the original qTranslate, and I thought that after cleaning the code, it will go away on its own, but it did not so far.

qtranslate-x-2.8 + qtranslate-slugs is broken

Good morning John,

I just upgraded my blog to qTranslate-X 2.8. After doing that, none of my posts were reachable anymore - everything resulted in 404s. When I disabled qTranslate-slugs, my posts were reachable again, so there seems something in qTranslate-X 2.8 that breaks if slugs is also used.
This issue has made me rethink the current approach with qTranslate-X and qTranslate slugs. I think we're running into a fundamental issue here - as long as the two plugins are separate and are thus not always tested together, issues like these will keep cropping up. Of course, it'd be possible to try and fix slugs everytime qTX gets upgraded (or the other way round), but that would lead to a lot of uncertainty and frustration for users because it's not ensured that a working combination is installed.
So I'd like to discuss whether you think it makes sense to include the slugs functionality in qTranslate-X itself. If you agree (and also if @LC43 doesn't see a problem with that since it's his code) I would volunteer to include that functionality. What do you think?

Best regards,
Bastian

Languages management problems

qTranslate version 3.2.9.2

I've spotted some issues with the list of languages.

  1. Deleting a manually added language won't deactivate it and it keeps listed in Default Language / Order and in dropdown list without any name or flag. I have to readd it, then deactivate it and finally delete it.

  2. Editing Language Code in a pre-defined language will create a duplicate in the list that automatically substitutes the pre-activated with this new duplicate with new Language Code. This duplicate issue won't happen if editing Language Code of manually added languages.

Question: About qtranxf_use_language()

I'm curious why the $show_available option is set to true for this line?

case 'post_content': $post->$key = qtranxf_use_language($lang, $txt, true); break;

Was trying to get WP to display the content under the default language if the one requested is empty. But it doesn't, and shows a line of message instead. I think it means to say that only English is available or something.

Anyway, I found that that's because $show_available is true, hence this expression isn't true.

Setting $show_available to false works, but I'm not sure about the implications.

slug drop caused by 'REDIRECT_' prefix in '$_SERVER' variables coming from mod_rewrite

Have a new issue: When I try to check the woocommerce orders located under

wp-admin/edit.php?post_type=shop_order

then occasionally the slug is dropped and ends up at

wp-admin/edit.php

Current config: WC 2.2.11, qT-X 3.2.9, WC & qT-X 1.0.1

Actually it seems to be the same that causes 404 errors at the individual orders. The symptom seems to be the same, the slug after questionmark is dropped.

RFC: Highlight translatable fields

I really like that qtranslate-x supports translating custom (meta) fields. However, it is not always clear, which fields are translatable, and which are not.
This could be improved upon by visually highlighting the translatable field. For example with a small flag icon in at the top right of each field. Like this maybe (option 1):

image

There are probably better ideas for highlighting the fields, but this is just a first idea. What do you think?

"qTranslate META" integration

Hi,
I was using qTranslate but due to deprecation I'm happy to go on with qTranslate X.

For my websites I was using qTranslate META:

Multilingual support for META tags. Requires qTranslate.
Version 1.0.2 | By John J. Camilleri

and I've noticed that it is no more working with qtranslate-x.
It is very important to me using the META thing (importing the already existing tag from qTranslate META and keeping on adding them to the new pages ) and this issue will compromise the complete transition.

How to resolve? Is there any chance to let qTranslate META work with qtranslate X ?
Best,
nkint

mlContentField insertion order leading to serious data loss

When qTranslate-X adds content hooks qtranxj_ce() inserts the mlContentField at the top of the form. This results in the fields being added in reverse order. Under normal circumstances this has no adverse affects.

However it can have serious affects when the field names utilize the array notation. For example:

<input name="acf[field][0][field_2]" type="hidden" class="hidden" value="">
<input name="acf[field][0][field_1]" type="hidden" class="hidden" value="">
<input name="acf[field]" type="hidden" class="hidden" value="">

As you can see the third field in the DOM essentially wipes out the values of the other fields when the form is loaded into the $_POST array by PHP causing some serious data loss.

I've worked around it for now by hooking qtranxj_ce() and manually reordering the DOM nodes. It's a pretty ugly hack but it works for now.

(function($) {

    // save reference to function and then
    // replace with a hooked version
    var _qtranxj_ce = qtranxj_ce;
    qtranxj_ce = function(tagName, props, pNode, isFirst) {

        // call original function
        var el = _qtranxj_ce(tagName, props, pNode, isFirst);

        // detach ACF related mlContentField inputs from DOM
        var form = $(pNode);
        var fields = form.children('input[name^=acf]:hidden').detach().toArray();

        // sort mlContentField inputs by input[name]
        fields.sort(function (a,b) {
            if (a.name > b.name) {
                return 1;
            }
            if (a.name < b.name) {
                return -1;
            }
            return 0;
        });

        // insert ACF related mlContentField inputs back into DOM
        form.prepend(fields);

        // return element created by original function
        return el;

    };

})(jQuery);

Option for showing post in default language if translation not available

Hi qTranslateTeam,

First, thank you for your great work! Since I found that this plugin is actively developed, I'll try to do a feature request.

I would be very pleased to see an option in the admin panel to also show posts in the default language when a translation is not available. Currently, (if I'm correct) this is only possible for the title of the post.

Something like this would be perfect:

Sorry, this entry is only available in Language

to:

Sorry, this entry is only available in Language:

post in default language here

Thanks!

TypeError: Cannot read property 'getNode' of undefined

Hi,

Platform info:

  • OSX - Chrome 40.0.2214.111 (64-bit)
  • On Firefox I couldn't reproduce it

Problem:

On a clean install + qtranslate-x I get the following error when editing a post (that has the visual tab active on load)

Uncaught TypeError: Cannot read property 'getNode' of undefined

Steps to reproduce:

  1. Install wordpress
  2. Install qtranslate-x and enable it
  3. Post > edit "Hello world" for example

This bug only occurs when "Visual tab" is the active one on load. If for example "Text" and I switch to "Visual" there is no error.

I have the feeling that it is trying to access an element in the DOM that at that point isn't loaded/ready yet. I need to find some time to investigate further.

design of function qtranxf_excludeUntranslatedPostComments

This is a continuation of WP discussion https://wordpress.org/support/topic/the-latest-beta-from-github-is-good-for-testing-thank-you on the topic initiated by side777.

side777: I get a WordPress database error Unknown column 'wp_posts.post_content' in 'where clause' for query SELECT * FROM wp_comments [...] but only on some sites of my multisite network. still investigating.

side777: Unfortunately i could not reproduce the error with a clean 2015 - BUT get_comments() still returns an empty array! The 2015 recent comment widget DOES return the comments, but ALL, also for untranslated posts, though.

johnclause: I guess in some cases this query gets executed without wp_posts table included. What are those cases? Do we abort this function in such cases? Or do we force a reference to wp_posts in somehow?

side777: I think this is not a good approach anyway - in worst case you query 1000s of comments WITH the corresponding posts, PLUS filtering the post content - I wrote my own solution a while ago... I think it's way more effective to save the current language to a comment meta when the comment is saved. this way you can easily query comments by meta.

johnclause: Sure that would be much better. Unfortunately, qTranslate is not designed for big sites with many languages and huge content to begin with. It does have severe performance problems in many places, not just this one. My priority is to make it work in a minimal, but bug free way, so that people can continue to use it. Most of qTranslate* clients, I believe, are small bi-lingual (not multi-) sites and they are ok with this version of free translation framework. I would worry about the performance issues later, when time comes. For now we need to figure out how to fix this query issue as soon as possible, so that I could release 3.0. Then I will be happy to come back and redesign this piece as well as other places in a much more efficient way. And I believe that those missing if statements, which we need to figure out now, will be useful to know when we do optimization.

Some fields should not be translated by the JS

Creating a filter to exclude certain fields from the JS translation buttons would be very useful.

Please see https://github.com/josk79/qtranslate-x/pull/1

This adds an option to the admin page that allows for CSS-selectors for DOM-elements that should not be translated.

This branch also applies a filter before passing the config to JavaScript. This way plugins can add certain filters. For example: "WooCommerce qTranslate X" should add body.post-type-shop_coupon #title because coupon titles shouldn't be translated as it breaks functionality.

problem with search form - qtranxf_convertURL produces wrong URL

Hello,

current version of plugin makes for me the wrong translation of URL.

I am switched to non-default language and trying to use search form produces wrong URL

the blog is not on home url, but on subpage: http://mypageblog/blog/

typing the query in search box produces wrong URL http://mypageblog/blog/pl/pl/?s=dsa

commenting out in function:

function qtranxf_fixSearchForm($form) {
//$form = preg_replace('#action="[^"]*"#','action="'.trailingslashit(qtranxf_convertURL(get_home_url())).'"',$form);
return $form;
}

fixes the problem, the URL is correct: http://mypageblog/blog/pl/?s=dsa

i guess there is some kind of problem in the qtranxf_convertURL function.

more info available upon request.

best regards,
Pawel

Temporarily disable get_terms translation?

I have a function in the admin panel that relies on get_terms to gather all translated term names, using mqtranslate_term_name option to match up the translation with the term. In mqTranslate get_terms always returned the term in the default language (in my case, Trad. Chinese) but in qTranslate X translates the terms according to the admin panel language so I get English terms when I use an English interface.

I tried remove_filter but it didn't have any effect. How do I temporarily disable the get_terms hook, or is there a better way to do this?

qTranslate-X breaks the Site Language

Hi!
I have done a massive upgrade from mqtranslate to qtranslatex (more then 10 wordpress sites).
I've read and followed the migration notes and all configurations and translations are good so far.

But the mail language is broken in the admin panel: in english and not in italian.

On "Settings > Languages > General Settings" the default language checkbox is Italiano.
On "Settings > General" there are icons of languages and Italiano is selected.
On "Settings > General > Site Language" the Site Language dropdown menu is en_US. If I change it in Italiano the page is refreshed, there is a message on the top of the page about good setting saving ("Impostazioni salvate") but the admin panel is still in english, and the dropdown menu Site Language is setted to en_US while I'm expecting to see Italiano.

If I deactivate the qTranslate-X plugin the admin panel is in Italian. If I activate the qTranslate-X plugin the admin panel is in english and there is no way to change it.

What can I try?

Language Menu has a strange html output

The language menu prints a-tags without href, the image flags have no alt attribute and the li-tags have no classes what language ist currently chosen or such. This makes it really difficult to style the language-menu

Compatibility with WP-Linkedin

Hi @johnclause

I'm using this plugin https://wordpress.org/plugins/wp-linkedin.
It needs to be authorized with linkedin developer app with auth key etc in https://www.linkedin.com/secure/developer
The plugin need gives a URL that the user must include in Linkedin as the "OAuth 2.0 redirect URL and it's something like this http://www.yoursite.com/oauth/linkedin/

The auth won't work unless I deactivate qTranslate-x, do you know where should I investigate to debug this? Probably a url problem, I thought that deactivating qTranslate-x would work, and it did.

Date format *\* backslash to escape characters

In the description of this setting it says this:

Depending on your Date / Time Conversion Mode, you can either enter a strftime (use %q for day suffix (st,nd,rd,th)) or date format. This field is optional. (Example: %A %B %e%q, %Y)

At least in the function date one can use escaping characters as at by preceding it with backslash \a\t as described here:
https://codex.wordpress.org/Formatting_Date_and_Time

The problem is that If I add this \(backslash) in the Date format field, after saving it adds an aditional backslash: \\:
Example:
if I write want to escape at I have to write \a\t\ but after saving it qtranslate returns \\a\\t.
I've tried to write just at but of course it don't recognize this as escaping non-string text and doesn't add automatically the needed single \a\t.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.