=== GlobalDev Multilingual ===
Contributors: globaldev
Tags: multilingual, translation, languages, elementor
Requires at least: 6.2
Requires PHP: 8.0
Tested up to: 7.1
Stable tag: 0.2.15
License: GPLv2 or later

Lightweight multilingual content management for WordPress.

== Description ==
GlobalDev Multilingual links normal WordPress posts, pages and menus into translation groups and serves secondary languages from directory URLs such as /en/ and /de/.

== Current features ==
* Language administration with configurable default/active languages.
* Professional multilingual dashboard and dedicated admin pages.
* AJAX language add, enable/disable, set-default and remove actions.
* Directory URLs for secondary languages.
* Translation relationships stored in a dedicated table.
* Translation activity/history table.
* Language metabox for public post types.
* Create translated copies while preserving content, taxonomies and most metadata.
* Elementor-safe duplication: copies _elementor_data but does not copy generated Elementor CSS/assets.
* WPML-style language columns in Posts and Pages.
* Admin language filter to avoid duplicate translation rows.
* Translation overview with edit/create controls per language.
* Linked multilingual navigation menus, frontend menu switching and WPML-style structure synchronization.
* Automatic/debounced multilingual rewrite flushing after relevant actions.
* [gdml_language_switcher] shortcode.
* hreflang and x-default tags.
* Public helper functions for integrations.

== Not included yet ==
* AI translation.
* String Translation / gettext registry.
* WooCommerce product synchronization.
* Translated taxonomy terms.
* SEO plugin-specific field adapters.

== Changelog ==

= 0.2.15 =
* WordPress.org / Plugin Check compliance cleanup: plugin/readme headers, translator comments, nonce/input handling and query hardening.
* Removed deprecated manual text-domain loading; WordPress loads the plugin translations automatically.
* Simplified legacy collation repair now that multilingual joins are collation-safe.
* Reduced slow menu-item lookup queries and tightened menu-editor security handling.
* Added a final nav_menu_item_title fallback so automatic translated menu labels always follow the current translated page title on the frontend.

= 0.2.8 =
* Redesigned Appearance > Menus multilingual controls into a professional menu workspace.
* Added one-click synchronization from the default-language menu to a translated menu.
* Added Sync all translations from the default-language source menu.
* Synchronization mirrors menu order, hierarchy, linked posts/pages and compatible menu metadata.
* Existing translated navigation labels and target-only manual items are preserved.
* Older translated menus are automatically mapped to source menu items on first sync.
* New menu translations now always use the default-language menu as their structural source.
* Added sync controls to Multilingual > Menus and translation-history logging.

= 0.2.7 =
* Fixed WordPress language-pack installation verification and cache invalidation.
* Language packs now report Installed only when WordPress itself detects the locale.

= 0.2.6 =
* Switch WordPress runtime locale per frontend GDML language without changing wp-admin or the saved Site Language.
* Automatically install the corresponding WordPress core language pack when a language is added.
* Add language-pack status and retry installation controls to the Languages screen.


= 0.2.5 =
* Fixed frontend HTML language attributes so translated pages emit their own configured locale.
* Added a hard-coded-theme fallback that rewrites only the opening HTML tag when language_attributes() is not used.
* Added automatic RTL/LTR document direction based on the active language.

= 0.2.4 =
* Fixed MySQL illegal-mix-of-collations errors in multilingual post queries.
* Automatically aligns the GDML translation table collation with wp_posts during upgrade when permitted.
* Added binary-safe translation joins as a fallback on restricted hosting.
* Frontend menus now hide post/page items when the current language has no published translation.
* Singular language switchers no longer show languages for missing translations.
* Added a native Appearance > Menus Language Switcher box with Add to menu.
* Language switcher supports Dropdown or Inline display, native-name or code labels, and flags on/off.
* Switcher settings remain editable on the menu item and are preserved when menus are cloned.

= 0.2.3 =
* Added searchable WordPress locale picker with installed/available groups, regional variants and flags.
* Language presets now follow the locales exposed by WordPress.org for the installed WordPress version, with offline ISO fallback.
* Prevent duplicate WordPress locales and support longer regional/formal route codes.

= 0.2.2 =
* Expanded the language preset selector to all 184 ISO 639-1 languages.
* Added flag icons, native names, English names and locale defaults to language presets.
* Existing site languages are disabled in the preset selector to prevent accidental replacement.

= 0.2.1 =
* Fixed WordPress and third-party admin notices being injected inside the GlobalDev Multilingual visual page header.
* Added a dedicated screen-reader H1 outside the visual header so WordPress notice placement stays in the normal admin notice area.
* Added a defensive MutationObserver that relocates late-injected notices above the GDML header.

= 0.2.0 =
* Redesigned professional admin interface with Dashboard, Languages, Translations, Menus, History and Settings pages.
* Added AJAX language management without page reloads.
* Added language presets and active/inactive state controls.
* Added translation history/audit table and recent-activity dashboard.
* Added translation-group overview with per-language edit/create controls.
* Added multilingual menu overview.
* Added one-click rewrite/permalink refresh in Dashboard and Settings.
* Fixed linking newly-created translated menus when WordPress had already registered the target menu as a default-language object.
* Existing 0.1.x installations automatically create the new history table during upgrade.

= 0.1.2 =
* Multilingual menu relationships and menu-language selector.
* Create linked menu translations with hierarchy preserved.
* Remap post/page menu items to translated objects when available.
* Frontend automatically swaps the assigned default menu for its linked language menu.
* Filter menu-editor post/page pickers by the current menu language.
* Preserve plugin-specific menu item and menu term metadata when cloning.
* Fix activation-time rewrite flushing and debounce GDML rewrite flushes after translation/menu actions.

= 0.1.1 =
* WPML-style language flag columns in Posts/Pages.
* Pencil icon opens existing translations.
* Plus icon creates missing translations.
* Admin language filter shows one language at a time by default to avoid duplicate translation rows.

= 0.1.0 =
* Initial release.
