- Fix missing base
QTX_Translator
hooks in admin (#1337) - Fix ACF settings for post type and taxonomy (#1342)
- Fix localize script with missing ACF options (#1341)
- Fix Slugs paged custom post types archives (#1340)
- Fix undefined
str_starts_with
with PHP 7 (#1334) - Fix wrong PHP types with date/time filters (#1335)
- Fix unused
gmt
parameter withget_the_time
filter (#1335) - Fix
modified_date/time
filters should not use global post (#1336)
New requirements
- Bump minimum PHP version to 7.1 (#1084), recommend PHP 8.2
- Bump minimum WordPress version to 5.0 (#1084)
- Abandon support for Internet Explorer (#1313), no longer supported from WordPress 5.8
Core
- Add PHP 7.1 type check declarations (#1314), this may create regressions occasionally but also help to find latent bugs
- Make use of PHP 7.0 null coalesce
??
operator (#1084) - Lint PHP by removing unnecessary local vars (#1316)
- Lint PHP by simplifying expressions (#1317)
- Rename
i18n_content_translation_not_available
filter toqtranslate_content_translation_not_available
(#1322) - Delete admin translator, tidy up front interface (#1321)
- Delete
QTX_Translator_Admin
class andWP_Translator_Admin
interface. - Delete the
multilingual_term
hook that is specific to qTranslate.
- Delete
- Fix custom URL for admin area and login page (#1324)
- Fix undefined keys when URL mode set to per-domain (user setting) (#1319)
- Move deprecated functions to a separate file (#1311)
ACF
- Fix ACF category settings can't all be disabled (#1332)
- Fix wrong assert with cancelled redirections (#1326), should also fix related issues:
- NextGen Gallery uploader not working (#1266, #1096)
- AJAX response error in Advanced Woo Search plugin under PHP8+ (#1284)
- Problem with script in PHP CLI (#766)
- 502 Bad Gateway with Ultra Fast PHP (#986)
- Language needs to be shown in URL (#1068)
- Fix third-party Ajax requests not detected (#1327), might prevent wrong redirects and cookies set
- Fix warning deprecated
qtranslate_admin_page_config
hook (#1315) - Fix regression in 3.14.0 with ACF Post Object [qT-XT] (#1320)
Summary
- Major update for ACF, bump minimal version 5.6.0
- New settings to select more precisely the supported fields (standard / sub / extended)
- Deprecate redundant qTranslate
text/textarea/wysiwyg
extended fields to promote ACF standard fields
- Compatibility support for PHP 8.2
- Refactor source file structure and core loaders at init
Core
- Deprecate filter
wp_translator
(#1304) - Deprecate filter
qtranslate_admin_page_config
(notqtranslate_admin_config
) - Re-organize source file structure as
/css
,/js
,/src
for CSS / JavaScript / PHP sources, including modules - Refactor core file structure and init loaders (#1303)
- Refactor admin CSS and LSB files, deprecate
qtranxf_add_admin_css
(#1294) - Fix string interpolation deprecated in PHP 8.2 (#1271)
- Fix PHP Deprecated warning in
qtranxf_isMultilingual
(#1290) - Rewrite
require_once
as language constructs - Rename
Gutenberg
refs asblock editor
ACF
- Bump ACF minimal version 5.6.0 (#1307)
- Add new ACF settings to select extended types (#1300)
- Add new settings for ACF standard fields (#1279)
- Deprecate qTranslate
text/textarea/wysiwyg
extended fields (#1305) - Fix validation of standard fields (#1292)
- Fix missing LSB for user profile (#1270)
- Fix JS error no form found for
id=acf_content
(#1301) - Refactor ACF init of qTranslate fields (#1299)
Summary
- Compatibility with PHP 8.1 (#1085)
- Major refactoring of date/time without
strftime
(deprecated in PHP 8.1) - Attention: date/time features require PHP
intl
module (IntlDateFormatter
) - Note:
strftime
format options are still supported by conversion but they may become deprecated (#1234)
- Major refactoring of date/time without
- Major fixes for ACF
- Fix standard wysiwyg field, better admin support (ACF6, display fields, UI), simplify options
- Note: it is encouraged to use ACF standard fields, extended QTX fields may become deprecated in next releases
- New feature! Add setting to show menu items in alternative language (#1063).
Core
- Improve translatable UI for tinymce editor
- Add support of
form
attribute for detachedinput
(#1253, #1252) - Fix term update with same value for all langs (#1215, #1230)
- Date/time refactoring for PHP 8.1 (#1085)
- Replace
strftime
withIntlDateFormatter
for PHP 8.1 (#1228, #1224) - Deprecate date/strftime "override" options, because the use case is very unclear (#1245)
- Add date/time option to use WP date format and ignore QTX custom formats by disabling any conversion (#1248)
- Check if class
IntlDateFormatter
exists, or warn about missingintl
module (#1251) - Refactor date-time conversions using
qtranxf_intl_strftime
(#1238)
- Replace
ACF
- Generalize ACF config and simplify options (#1267)
- Remove obsolete option for standard ACF form fields (input, wysiwyg), always active
- Remove ACF page options, handled natively with new admin config for display and anchors
- Remove obsolete JS "shim" anchor hack
- Fix ACF standard wysiwyg editor field (#1186, #1261)
- Fix ACF translatable standard settings (#1255)
- Fix ACF display in taxonomy (#908)
- Fix field group title overwritten with ACF6 (#1252)
- Fix JS error reading
id
with ACF6 (#1254) - Fix broken ACF init sequence for options LSB (#1233, #1243)
- Fix translatable style in ACF-QTX fields (#1246)
- Resync ACF image
render_field
code (#1241)
Slugs
- Tidy up slugs module init
Yoast
- Mark Yoast module degraded (#1257)
- Fix wp-seo undefined array key
image
(#1262) - Add front filter to disable indexables in Yoast 18.2+ (#1219)
Core
- Check host key in parsed referrer URL (#1202)
- Filter excluded types in
qtranslate_admin_block_editor
(#1210) - No redirect or cookies on GraphQL requests (#1211)
- Exclude cron from translation of all options (#1188)
- Rename module classes with
QTX_Module
prefix (#1187)
ACF
- Refactor ACF module structure (#1191)
Slugs
- Fix MySQL error in Slugs migration from plugin (#1206, #1216)
- Escape
_
in SQL LIKE queries for Slugs import (#1217) - Replace metabox only if existing (#1209)
- Handle custom query var as array (#1200)
- Rename all
qts_
functions withqtranxf_slugs_
prefix (#1184)
WooCommerce
- Fix unintended translations in webhooks (#1194)
- Hide slugs metabox on WC shop pages (#1192)
- Fix
$order->id
called incorrectly in order emails (#1189)
New module: Slugs (experimental)
- Add support for permalink (slug/URL) translations to qTranslate-XT (#671)
- Integrated from qtranslate-slug (QTS) plugin v1.1.18 (#1060)
- Enable module and see qTranslate import settings to migrate QTS data (#1171)
- See modules/slugs/README.md for more info
Core
- Add new filter:
qtranslate_admin_block_editor
to disable Gutenberg support (#1112) - Fix Uninitialized string offset in getLanguageName (#1175)
- Fix 'Headers already sent' for
wp_doing_cron
(#1114) - Fix regression on reset config (#1109)
- Fix deprecated
preg_split
with PHP8.1 (#1085) - Fix missing check: qTranslate-X plugin must be disabled on QT-XT activation
- Remove
hreflang
froma
tag in widget (#1088) - Relax composer/installers version requirement (#1170)
- Generalize double checkboxes in QTX options (#1177)
- Refactor bool-array setting to
QTX_BOOLEAN_SET
(#1151) - Align translation files to current sources, complete it_IT translation (#1165)
- New module settings with manual activation for all modules (#1147, #1137, #1135, #1136)
- Generalize custom module settings tabs (#1146)
- Harmonize module options as
qtranslate_module_<name>
(#1158) - Refactor module classes and file structure (#1153)
ACF
- Integrate ACF settings in modules tab (#1154)
- Simplify module init (#1139)
Gravity Forms
- Fix translation of choice text in Gravity Forms (#1095)
Slugs
- Import QTS slugs options and meta data into QTX (#1171)
- Improve slugs layout with flags (#1163)
- Filter query vars in slugs, fix 404 mismatch (#1180)
- Fix many PhpPStorm warnings (#1172)
- Fix slugs in Cyrillic due to
esc_sql()
4.8.3 breaking change (#1156, #1157) - Fix page/post conflict and utf8 chars in filter_request (#1168)
- Remove slug fields for WC attributes add/edit page (#1164)
- Fix hide slug field in post quickedit (#1125)
- Fix warnings and major cleanup (PHPDoc, termmeta wrappers) (#671)
- Delete unused function raising warning in PHP8.1 (#1103)
- Remove internal QTS filter hooks (#1176)
- Replace slugs
qts_page_request
cache with transient (#1182) - Create
qts_show_list_term_fields
for add/edit term (#1163) - Separate admin functions from qts class, cleaning, refactoring (#1134, #1141)
- Refactor language setup with internal
q_config
(#1130) - Refactor with new
qtranslate_convert_url
filter (#1117) - Refactor and fix add/edit terms slugs (#1126)
- Improve slug admin metabox handling (#1124)
- Rationalize get post_types/taxonomies (#1121)
- Refactor install with WP API (#1122)
- Merge
qts
textdomain toqtranslate
, update l10n (#1120) - Remove nav functions and cleanup (#1118)
- Handle deactivation, remove widget, cleanup (#1111)
- Remove obsolete migration functions and styling (#1113)
- Integrate slugs settings in qtranslate (#1115, #1107)
- Use
$post
arg invalidate_post_slug
(#1102)
WooCommerce
- Fix attribute edit page hidden fields (#1161)
- Fix untranslated options in product variations (#1144)
- Fix product attributes translations (#1143)
- Remove unneeded action mistakenly used as a filter (#1145)
- Fix Yoast filter front schema webpage (#1086)
- Fix regression Yoast filter front in 3.11.2 (#1086)
- Add Yoast filters for organization schema and publisher (#1090)
- Fix warnings with Yoast breadcrumbs front (#1086)
Core
- Remove obsolete HTML
type
attributes fromscript
andstyle
tags (#1074)
Localization
- Update keywords list POT template
- Update keywords and localization zh_CN (100%) (#1059)
ACF
- Delete obsolete WP version check in ACF wysiwyg
- Fix localization of ACF field labels (#1081)
Yoast
- Fix yoast breadcrumbs front (#1079)
WooCommerce
- Add hook for WC privacy policy text (#1083)
Core
- Enable language switch for text widget with TinyMCE editor (#1042, #529, #616, #912)
- Disable the block-based widget editor with WordPress 5.8 (#1058, #1042)
- Set cookies with explicit
SameSite=Lax
policy (#1053) - Fix URL conversion for 3-letter language code (#1035)
- Fix uninitialized string offset in utils (#1047)
- Refactor and fix
removeContentHook
(#1043)
Localization
- Update localization zh_CN (80%) (#1049)
- Update localization ru_RU (45%) (#444)
- Update localization sl_SI (53%) (#437)
- Add localization nl_NL_formal (70%) (#416)
- Update language names for km (85%) (#420)
- Update POT template
Core
- Add qtranxs-flag class to flags on frontend (#1015)
- Remove obsolete wpautop hack for editor init (#1019)
- Remove wpautop from hook fields and format specifier (#1024)
- Remove Ajax qtranslate-fields collect as string (#1026)
- Create internal QTX initialize function in JS
- Use classList in JS instead of className or jQuery
Yoast
- Fix Yoast 'name' schema for WebPages (#1033)
- Fix Yoast canonical URL (#1032)
Core
- Major overhaul of Javascript builds
- New feature! Javascript bundled with Webpack and Babel (#990), production builds delivered in
dist
- Update Wiki for debugging Javascript
- Reorganize Javascript sources (#994)
- Refactor source code with const let ES6 (#996), new jQuery wrappers (#998), rename variables (#1001)
- New feature! Javascript bundled with Webpack and Babel (#990), production builds delivered in
- Improve integration of Custom Javscript
- Refactor
js-exec
config entries with JS events (#1009) - allows fusion of fragmented scripts into prod bundle - Deprecate
js-conf
andjavascript
config entries (#1000) - no more Javascript code in JSON configs
- Refactor
- Deprecate custom JSON configuration user field (#1012)
- Update hooks
- Rename filter
i18n_admin_config
->qtranslate_admin_config
- Rename filter
i18n_front_config
->qtranslate_front_config
- Deprecate duplicate filter
qtranslate_load_admin_page_config
(useqtranslate_admin_config
) - Rename config actions with underscores, e.g.
qtranslate_loadConfig
->qtranslate_load_config
- Deprecate action
qtranslate_admin_css
- Replace
admin_head
hook withadmin_enqueue_scripts
- Rename filter
- Update functions
- Deprecate functions
qtranxf_json_encode
,qtranxf_config_add_form
- Rename config and utils functions with underscores, e.g.
qtranxf_loedConfig
->qtranxf_load_config
- Delete functions deprecated in 3.7.3
- Delete internal functions
qtranxf_add_admin_head_js
,qtranxf_add_admin_footer_js
,qtranxf_clean_request_of
- Deprecate functions
- Fix undefined
use_block_editor_for_post
for Gutenberg (#1004)
ACF
- Fix async qtx loading in ACF (#998)
- Fix qtx and repeaterFieldRemove in ACF JS (#1006)
- Fix visual editor switch with ACF tabs (#1007)
- Refactor ACF js with ES6 const let (#997)
Core
- Fix Javascript init for Classic Editor with WP5.6 (#946, #931)
- Fix async ready/load events with jQuery3
- Anticipate qtx init before TinyMCE init
- Remove ready handler from common.js
- Fix deprecated tinymce.editors
- Refactor TinyMCE hook functions in common.js (#978)
- Redesign admin language list with icons (#945)
- Prefix global functions in modules with qtranxf_ (#959)
- Add permalink info for incompatible pre-path mode (#821)
- Add Bangla localization files (#960)
ACF
- Add CSS for acf-autosize (#955)
Yoast
- Rewrite Yoast module from scratch (#794)
- Move legacy Yoast 13 module to dev (#794)
- Fix wp-seo opengraph title translation (#944)
- Add front filters schema and breadcumbs (#947)
- Generalize front filters (#947)
- Translate org/company name (#947)
WooCommerce
- Add front filter for product_get_name (#957)
- Add support for Paypal Checkout (#949)
Core
- Fix unitialized string offset in urlinfo (#928, #939, #940)
AIOSEO
- Fix AIOSEO PRO config for terms (#845)
Google Site Kit
- Add support for Google Site Kit (#934)
WooCommerce
- Fix config edit attributes (#915)
- Fix disable translations emails (#652)
- Fix additional content not translatable (#943)
Core
- Fix warning in admin language tab (#900, #916)
- Fix display title placeholder for new post (#897)
- Fix language negociation for any path (#875)
- Fix 'disable_client_cookies' option ignored (#886)
- Refactoring
- Disambiguate 'cookie_enabled' internal field -> 'cookie_front_or_admin_found'
- Refactor url_info without base-path-length (#893)
- Truncate front/admin config from debug info
ACF
- Fix deprecated JS code for ACF (#890)
- Uniformize jQuery wrapper in ACF
WooCommerce
- Fix CSS path for products (#894)
Core
- New feature: extend language code to 3-letter (ISO 639-2 and ISO 639-3), lower case (#836, #668)
- Major refactoring with unique regex of language code for future ISO 3166 and 15924 support (#880, #668)
- Fix hreflang default URL when browser detection disabled (#198, #819)
- Cleanup repo, remove experimental dev slugs
WooCommerce
- Fix language column CSS in WC products (#831, #804)
Core
- Fix no language buttons with WP4 (#825)
- Fix built-in i18n config search (#824)
- Fix plugin activation with i18n config (#823)
- Clarify variables, PHPDoc, code cleanup
WooCommerce
- Fix translate product name in WC order admin page (#827)
New feature! Initial support of Gutenberg, with some limitations. Read carefully our Gutenberg FAQ before use.
Core
- Fix plugin, mu-plugin and theme config search (#797)
- Refactor plugin dirname and basename (#796)
- Remove legacy plugin config override (#793)
- Set url for Classic Editor direct install (#799)
- Deprecate functions:
qtranxf_plugin_dirname
qtranxf_plugin_basename
qtranxf_find_plugin_config_files
qtranxf_find_plugin_by_folder
WooCommerce
- Fix translation custom attributes (#612, #752)
- Remove
woocommerce_product_get_attributes
hook to fixcannot_implode
(#612, #707) - Fix translations checkout and account settings (#787)
- Refactor admin page configs
Core
- No front-detect redirect on neutral path (#749)
- Add url info in assert no redirect (#757)
- Improve debug info with plugins
ACF
- Fix missing ACF dependency on qtranslate (#759)
- Check
SCRIPT_DEBUG
properly in ACF
License
- Update license to GPLv2 or later. Meant for harmonization for the WordPress community. More info in related commit.
- Important: if you ever redistribute this work you should also do it under the same license.
Core
- Fix 404 and wrong redirects by disallowing lang query switch with REST (#720)
- Allow cookie read as last fallback with REST (#720)
- Check
HTTP_REFERER
with REST for language & doing front/admin (#744) - Use WP core functions to check globals (#747):
WP_ADMIN
->is_admin()
DOING_AJAX
->wp_doing_ajax()
# from WP 4.7DOING_CRON
->wp_doing_cron()
# from WP 4.8 (new minimum required version)WP_CLI
-> no function but we should check the value properly
- Disambiguate core loading setup
- Disambiguate admin loading sequence in
qtranxf_admin_load
- Remove
qtranxf_add_admin_filters
which should not be called from outside - Move
qtranxf_admin_debug_info
to utils
- Remove
- Update license, authors and links for Composer
- Reformat PHP and JS code with 4 spaces (#737)
- Add debugging asserts for invalid redirects. Disclaimer: only meant for dev with WP_DEBUG, not for production mode!
- Cleanup .gitattributes, clarify text (check-in) and EOL (check-out) conversions for source files
- Remove irrelevant .gitignore # NB: use git global/system config for your IDE or OS crap ;)
Core
- Fix critical overwrite content issues due to duplicate cookies (#741, #711, #724, #739)
- Remove session cookie
qtrans_edit_language
, replaced by sessionStorageqtranslate-xt-admin-edit-language
- Introduce new hidden field
qtranslate-edit-language
in POST form to provide the active language to the server - Enable secure
qtrans_admin_language
cookie (#467) - Restrict
qtrans_admin_language
,qtrans_front_language
cookies with httponly flag (#467) - Restrict legacy
url_info[original_url]
to qtranslate-slug for retro-compatibility only - Add troubleshooting section in admin options
- Refactor settings handlers (options panels)
- Create new class
QTX_Admin_Settings
(fromqtx_admin_configuration.php
) - Create new class
QTX_Admin_Settings_Language_List
(fromQTX_LanguageList
) - Remove session cookie
qtrans_admin_section
, replaced by sessionStorageqtranslate-xt-admin-section
- Create new class
- Remove obsolete admin settings hooks
- filter:
qtranslate_clean_uri
- action:
qtranslate_configuration_pre
- action:
qtranslate_url_mode_choices
- filter:
- Reorder URL mode options, polish domains layout
- Cleanup configuration CSS
ACF
- Raise format priority for ACF PRO custom options (#740)
- Add support for SCRIPT_DEBUG and minified scripts in ACF
- Refactor ACF without
qtrans_edit_language
cookie, with a temporary fix for the initial language selection
Core
- Update minimum requirement to PHP 5.4 (#732)
- Remove unused action
qtranslate_head_add_css
- Remove unused utils functions:
qtranxf_stripSlashesIfNecessary, qtranxf_get_domain_language, qtranxf_isAvailableIn
- Move date/time functions to
qtranslate_date_time.php
- Refactor init url_info path and query
- Remove obsolete admin action
qtranslate_css
- Move admin notice and log functions to admin_utils
- Fix potential bug in
qtranxj_get_cookie
(#724) - Fix invalid admin CSS and remove unused CSS files
- Fix invalid HTML in admin nav menu
- Rename many ambiguous variables
- Remove dead code and unnecessary comments
- Fix dozens of code warnings: unused variables, redundant escape char in RegExp, comparison coercions, ...
- Fix typo in define
QTX_EDITOR_MODE_SINGLE
ACF
- Refactor ACF with native
qtranxf
functions (#736) - Refactor ACF code for better readability, update PHPDoc
- Drop support of obsolete ACF 4
- Remove obsolete
qtranslate_custom_admin_js
in ACF - Fix use of deprecated
acf_esc_attrs_e
in ACF - Fix parameter mismatch in ACF
- Fix missing return in sitemap Yoast SEO and cleanup
- Fix media library broken with ACF 5.8.3 (#718)
- Fix ACF language values not validated (#710)
- Fix ACF image field rendering (#708)
- Fix ACF validation of url field (#703)
Core
- New Wiki pages! Help and doc hyperlinks now point to our internal Wiki.
- Fix translation embedded content (#673), for fields given by oembed_response_data
- Update vendor info in i18n-config.json (#702)
- Update Hungarian localization to 3.6.0 (#692)
Modules
- Fix ACF post object titles not translated (#678)
- Fix CSS for ACF admin field (#697)
- Fix Jetpack: translate related post titles (#699), with a new module for Jetpack
- Fix deprecated WC filters: product attributes (#686), woocommerce_add_cart_hash
- New feature: the built-in modules replace the legacy integration plugins. You have to deactivate/reactivate qTranslate-XT to detect the active modules. See the integration tab and the main modules README for more info.
- New modules ACF, All in One SEO Pack, Events Made Easy, Gravity Forms, WooCommerce. Note: these modules have been converted from the last available versions of the legacy plugins, but they still remain the same. See each module README for more info.
- Fix CSS admin notices (#664)
- Cleanup obsolete admin version notices. The version options become obsolete (
qtranslate_version_previous, qtranslate_versions
).
- Add support for Composer (#659)
- Fix no LSB on categories (#643): this issue occurred with NextGen Gallery but there might be other plugins concerned.
- Code cleanup: fix potential minor bugs with variables overwritten in loops, fix missing returns, undefined variables, unused local variables, reformat json
- Fix potential minor bug with the terms names (get_term_args)
- Revert to legacy suffix for integration config files (searched in "-qtranslate-x" folders instead of "-qtranslate-xt") for consistency with legacy online documentation
- Fix typo in qtranxf_find_plugin_by_folder (deprecate old version with errated name)
- Shorten front-end message for alternative content (#655). The long part "For the sake of convenience... " is removed, for sake of convenience. Only the first part with the available languages is kept, also sent in the 'i18n_content_translation_not_available' filter.
- Disambiguate the admin options for untranslated content: clarify descriptions, reorder by relevance.
- Fix JS loading for early get_ctx (#650) for better admin-side integration. Could lead to LSB not shown (qTranslateConfig.js.get_qtx() not declared).
- Fix no CSPRNG for gettext DB update (#649). Could raise PHP Fatal error : 'no suitable CSPRNG installed' when cryptographic libraries are missing.
- Fix date periods for DST (#653) by using strtime() instead of time() + sec. Could affect some admin checks, notices and cookie expirations (very minor impacts).
- Fix REST API: no redirect allowed (PR #621, issues #609, #575, #528, #489, #427). NOTE: your rewrite rules should be updated by saving the permalink structures from the admin page.
- Fix warning PHP 7.3
- Fix migration DB: skipped options, warning PHP 7.3 (PR #633)
- Disable admin notice for unsupported block editor with plugins disable-gutenberg, no-gutenberg
- Add admin notice for WP 5.0: "Gutenberg" block editor not supported, install Classic Editor plugin.
- Fix unresolved variables and unused PHP syntax error in dev code.
- Fix deprecated jQuery.ready JS handler, refactor jQuery wrapper/closure functions and standard coding style.
- Cleanup: reformat all PHP code with WordPress coding style, remove lots of commented code for better clarity. Breathe again!
- Redesign admin Language Switching Buttons (built-in LSB styles) and 'Copy From' button with new ergonomics.
- Remove admin options
lsb_style_wrap_class
&lsb_style_active_class
. No impact for built-in LSB styles, please make a request if further custom CSS needed. - Remove
qtranxf_loadfiles_js
now replaced withqtranxf_enqueue_scripts
. Neither should be used by other plugins. - Fix: prevent cache issues with non-minified Javascript when using
SCRIPT_DEBUG
(for developers). - Fix: remove unlimited output buffering introduced with pre-release patch 3.4.8.
- Cleanup: rename
qTranslate-X
toqTranslate-XT
as plugin name and for options pages. Replace obsolete links in admin pages, now redirecting to github. - Localization: update
fr_FR
.
First release of qTranslate-XT! Read carefully the new instructions, FAQ and changelog.
- Reorganize project structure for releases through git archives with support of GitHub Updater (see FAQ).
- Fix PHP 7.1+ warnings (expected references)
- Re-package the pending pre-releases (3.4.6.9, 3.4.7, 3.4.8) that were never distributed to wordpress.org (!): new feature "Copy From" and many other changes. Note the last official release of qTranslate-X is 3.4.6.8. Check the changelog for more details.
- Feature: Button "Copy From", which allows to copy multilingual content from other language. Option 'Hide button "Copy From"' on page
/wp-admin/options-general.php?page=qtranslate-x#advanced
to turn this feature off is also provided. - Workaround: added
addContentHooksTinyMCE
back toqTranslateConfig.qtx
namespace in order to recover compatibility with outdated code of plugin ACF qTranslate.
- Improvement: cached values of raw ML fields in WP_Post object, function
qtranxf_translate_object_property
Topic #426. - Language preset 'md': locale 'ro_RO' (Moldovan, Moldovenească).
- Language preset 'cs': locale 'cs_CZ' (Czech, Čeština).
- Fix: "Invalid argument supplied for foreach() ... on line 14": Issue #392.
- Improvement: Consistent term framework. Database operation "Clean Legacy Term Names" (at plugin settings page
/wp-admin/options-general.php?page=qtranslate-x#import
), which cleans up old imperfections of taxonomy framework. - Improvement: editing of categories and tags in Raw Editor Mode WP Topic
- Improvement: using now native code for editing of terms. Script
edit-tag-exec.js
is no longer needed. - Improvement: ML fields are now also highlighted with a color bar in Raw Editor Mode.
- Information: Translators acknowledgement section has been moved from qtranslate.php to /lang/translators-notes.txt to keep all translation-related updates in one folder.
- New Tool: Database operation "Split database file by languages" on page
/wp-admin/options-general.php?page=qtranslate-x#import
. - Language preset 'kk': locale 'kk' (Kazakh, Қазақ тілі).