This thread is resolved. Here is a description of the problem and solution.
Problem: The client was unable to translate certain custom fields using Advanced Custom Fields (ACF) and WPML's Advanced Translation Editor (ATE), despite setting the fields as translatable. The issue was due to multiple fields having the same name across different field groups, which caused WPML to apply the same translation settings to all similarly named fields. Solution: 1. Verify that the field groups in ACF are set to 'translatable' under ACF -> Fields groups. 2. Ensure that in WPML -> Settings, the field groups for ACF are set to 'untranslatable' if they should not be translated. 3. For fields that need to be translated, ensure each field name is unique across all field groups to avoid conflicts in translation settings. 4. If the issue persists with existing content, make a minor edit in the default language and update the page. Then, access the translation editor where the field should now be available for translation.
Please note that this solution might be outdated or not applicable to your specific case. If the issue persists, we recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If needed, please open a new support ticket at WPML support forum for further assistance.
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Background of the issue:
I am trying to translate my custom blocks field. Whatever Multilingual setup settings I choose or whatever the translation preferences the field has, I still cannot translate it with ATE. Here is my ACF group JSON:
Symptoms:
My block's title, subtitle, and services fields are still untranslatable.
Questions:
Why are my custom block fields untranslatable despite setting the correct Multilingual setup settings and translation preferences?
Is there an issue with the ACF group JSON configuration that is preventing translation?
I have set them translatable, which I actually want to translate. Some fields which I do NOT want to translate, those have set to copy.
It is happening to some of the fields.
In my WPML -> Settings, I have that do not translate 'Field Groups (acf-field-group)'.
For example I have a field name called 'title' and field called 'subtitle'. I have a repeater `services` which contains the fields 'service' - returns custom Post Type object, 'title' - plain text, 'is_checked' - true/false field. I have set the repeater field to be translatable. 'service' field is on copy, 'title' field is set to translatable and 'is_checked' is set to copy. Also see my uploaded images.
I have found a solution. The issue was that I had many fields with the same name. Let's take 'title' as an example. If any ACF field groups where same 'title' field set to don't translate, copy or copy once. Then the rest of fields will also use that setting. Don't know which order it uses. But I assume the last one overwrites it some how. So I had go over all my fields and set title field to translate.
I find it a bit weird that WPML knows for which block each fields are, but when they are not uniquely named globally, then WPML threats same named fields as the same. I would say I find as a bug. Since the block is unique and so it's fields. ACF knows that very well so can WPML. I hope you guys are taking this into a consideration to fix it in the future.
Another question is that how does WPML now know that a field is now translatable even when I have sent to Crowdin for example? What do I have to do that field will appear in ATE and Crowdin?
That is a great catch, thank you for updating us! I will run some tests on our side and update the team regarding these findings.
When you set a field to translatable WPML should know right away that it is set to translatable with new pages/posts, etc, however, you do need to do the following for existing content.
Make a small change in the default language and update
Access the translation, you should see the field now picked up in the editor
After making a small change on your page/post in the default language click on the button 'update' to update the page as you would normally when creating or editing a page.
Then once the page reloads click on the translation and edit it as you would if you were adding a new translation and re save it.