Check field data falsely reports translation properties as unused when user language is not English
Description
In a multilingual ProcessWire setup, the “Check field data” action may incorrectly report translation-related properties like labelXXXX or descriptionXXXX belonging to languages other than the current admin user language as unused. Properties related to English are never reported as unused.
Steps to reproduce
- Set up a multilingual ProcessWire installation, either by:
- Using the Multi-Language Site Profile, or
- Starting from a minimal setup and enabling the core modules LanguageSupport and LanguageSupportFields.
- Ensure that at least two languages are configured (e.g. English and German).
- Edit any field and define a label or description in one of the secondary languages.
- Set your admin user’s language to something other than English.
- Go to Setup → Fields → [Field] → Actions → “Check field data”.
Actual behavior
The check reports translation properties like labelXXXX or descriptionXXXX belonging to languages other than the current admin user language as unused, even though they are actively in use. Properties related to English are never reported as unused.
Expected behavior
Used translation properties should not be flagged as unused, regardless of which backend language is currently active.
Additional notes
- The issue does not occur when English is the active backend language.
- Reproducible in both fresh minimal setups and with the official multi-language site profile.
- English does not need to be the default language for the issue to appear — it only needs to be inactive as the current user language.
- Translation properties such as labels and descriptions for non-English languages other than the current admin user language are falsely reported as unused.
Tested on
ProcessWire 3.0.246
Thanks @feuerziege I've pushed a fix for this issue.
Thank you @ryancramerdesign, you're the man. I can confirm that the behavior no longer occurs in the current dev branch.
Previously I had been using the master branch and didn't recognize the backend at first. :) However, I noticed another little thing that is present in both branches.
It concerns fields of the type FieldsetPage. There, “repeaterLoading” is always recognized as an unused property when you perform the check. (However, this is not language-dependent).
Should I open a new issue for this?