feat(acf): ACF deepening, plugin-wide translation features, settings UI (v1.11.0)#14
Merged
Conversation
…UI (v1.11.0)
ACF (acf-vertiefung-plan.md):
- New AcfFieldIntrospector shared by all ACF resolvers (AcfMetaResolver
becomes a thin consumer; slytranslate_acf_translatable_field_types
filter unchanged)
- AcfBlockTranslator translates field data stored in acf/* Gutenberg
block-comment JSON (attrs.data), including repeater/group sub-keys;
client workflow exposes these as acf_block:{path}:{key} units
- AcfOptionsTranslationService + new MCP ability
ai-translate/translate-options for ACF options-page fields
(WPGlobus/WP Multilang inline merge, Polylang via
slytranslate_acf_options_post_id filter, TranslatePress not_required)
- Structured field types: ACF link fields translate only the title
sub-key (slytranslate_meta_value_translation_spec filter)
- Meta Box and Pods resolvers (metabox.io / Pods field registries)
- New slytranslate_meta_keys_exclude option + per-field
"Exclude from AI translation" ACF toggle (slytranslate_exclude)
- MetaTranslationService::describe_effective_meta_keys() reports every
effective meta key with source/type/exclusion state
Plugin-wide features (plugin-features-plan.md, B8-B15):
- Taxonomy-term translation (opt-in translate_terms) + bulk MCP ability
ai-translate/translate-terms
- Image alt texts translated by default, incl. Polylang media
duplication (alt/caption/description)
- Opt-in slug translation (translate_slugs) for newly created
translations
- TranslationQueue: background bulk jobs via Action Scheduler or
WP-Cron, one post per action; translate-content-bulk/get-progress/
cancel-translation gain job_id support
- Auto-translate on publish (consumes the previously unused
slytranslate_new_post option), queues draft translations with a
_slytranslate_generated loop guard
- Glossary / do-not-translate list (slytranslate_glossary) injected
into prompts
- Diff-based retranslation via shared TranslationFingerprint helper
(_slytranslate_unit_hashes / _slytranslate_meta_hashes)
- New readonly MCP ability ai-translate/get-translatable-fields
Settings UI (settings-ui-plan.md, phases 1-4):
- Admin page (Settings -> SlyTranslate): status row, model picker,
prompt add-on, glossary editor, meta-field list with per-key
exclusion checkboxes and per-post preview, automation toggles, and a
collapsed Advanced section (prompt template, context window,
direct-API URL + probe, string-table concurrency probe, transport
diagnostics)
- Saves through the existing ConfigurationService::save() path (same
as MCP configure); new REST route
ai-translate/probe-string-table-concurrency/run
- German (de_DE) translations for the settings page and ACF toggle
Bump plugin version to 1.11.0, regenerate language files, update
CHANGELOG/readme.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements v1.11.0, building on v1.10.0's zero-config ACF support (#10):
ACF deepening (acf-vertiefung-plan.md)
AcfFieldIntrospector(ACF resolvers become thin consumers)AcfBlockTranslatorfor ACF blocks in Gutenberg (acf/*block-comment JSON, incl. repeater/group sub-keys)AcfOptionsTranslationService+ new abilityai-translate/translate-optionslinktranslates onlytitle(slytranslate_meta_value_translation_spec)slytranslate_meta_keys_excludeoption + per-field ACF "Exclude from AI translation" toggleMetaTranslationService::describe_effective_meta_keys()Plugin-wide features (plugin-features-plan.md, B8-B15)
ai-translate/translate-termsTranslationQueue: background bulk jobs (Action Scheduler / WP-Cron),job_idsupport for bulk/progress/cancelslytranslate_new_postoption)TranslationFingerprintai-translate/get-translatable-fieldsSettings UI (settings-ui-plan.md, phases 1-4)
ConfigurationService::save()path; new REST routeai-translate/probe-string-table-concurrency/runVersion bumped to 1.11.0; CHANGELOG/readme/changelog.txt and German (
de_DE) translations updated.Test plan
composer test— 590 tests, 3174 assertions, all passing (8 skipped, 1 deprecation, both pre-existing)