The plugin reads the ACF translations mode on each field and applies behavior from the default language to other languages. If a field has no mode, the plugin treats it as ignore.
These modes follow Polylang field translation behavior as documented for ACF Pro.
Supported modes are translate, translate_once, copy_once, sync, and ignore. When DeepL machine translation is unavailable, translate and translate_once degrade to copy_once at runtime.
Translation modes
- translate — see translate mode
- translate_once — see translate_once mode
- copy_once — see copy_once mode
- sync — see sync mode
- ignore — see ignore mode
Quick rules
- Propagation runs from the default source by default;
sync(and sync-like container propagation) can also run from non-default sources. ignorenever propagates values to other language stores.- Some modes overwrite targets on each save, while others only fill empty targets.
- At save time, machine translation runs synchronously for small workloads and queues background jobs when workload thresholds are exceeded.
- During import,
translateandtranslate_oncequeue machine-translation jobs when DeepL is available.sync,copy_once, andignoreare handled immediately.
Machine translation: sync vs async
Not all machine-translation work runs in the background. PolyFields estimates workload (field count, propagation units, translatable strings, and character count) and compares it against configurable thresholds to decide whether to translate inline during the request or queue jobs through Action Scheduler (with WP-Cron as a fallback).
- Options save: Below thresholds: machine translation runs synchronously during the save request. Above thresholds: translation jobs are queued and run in the background after the source values are saved.
- Import (from first-use assistant): Always queues machine-translation jobs for
translateandtranslate_oncefields when DeepL is available. The import batch itself may still finish in one request for small workloads, but individual translation jobs are always deferred. - Import (WP-CLI, below import thresholds) — Machine translation runs synchronously during the command, without queuing jobs.
- Import (WP-CLI, above import thresholds) — Uses the same queue-based path as first-use assistant import.
Queued jobs skip targets that already have a value. Retry behavior applies only to async jobs. See Workload thresholds for threshold filters and admin presets.
Recommended settings
- Use
copy_oncefor media, relationships, and structural data (for example: hero image, linked CTA page, repeater or flexible layout structure). - Use
translatefor content that should be manually translated and kept language-specific over time (for example: headings, body text, and marketing copy). - Use
translate_oncefor content that needs an initial translation but should not be overwritten afterward (for example: teaser text or intro paragraphs refined by editors). - Use
syncsparingly, only for data that should truly be identical across languages (for example: shared IDs, technical flags, and global configuration values). - Use
ignorefor fields that are language-specific and should not be copied automatically (for example: localized legal notes, market-specific disclaimers, and regional messaging).