`Evaluator` must respect the referencing entity's language when evaluating a referenced entity, or fall back to the negotiated content language
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #3583379. -->
Reported by: [julien](https://www.drupal.org/user/177445)
Related to !876
>>>
<h3 id="overview">Overview</h3>
<p>When Canvas evaluates prop expressions that traverse entity references (e.g., a paragraph referencing a media entity, or an entity_reference field pointing to a taxonomy term), the referenced entities are<br>
always returned in their default language — not the current page/content language. On multilingual sites, this means component props populated from referenced entities display untranslated content.<br>
Steps to reproduce:<br>
1. Enable content translation on a referenced entity type (e.g., Media, Taxonomy term)<br>
2. Create a Canvas component with a prop sourced from a reference field (e.g., image → entity reference → media → file URI)<br>
3. Create content in the default language, translate the referenced entity<br>
4. View the page in the translated language<br>
5. The referenced entity's field values appear in the default language, not the translated one</p>
<p> Root cause:<br>
Evaluator::doEvaluate() follows DataReferenceInterface to load referenced entities but never calls getTranslation() on them. The referenced entity is used as-is from the reference property, which returns it<br>
in the default/stored language.</p>
<h3 id="proposed-resolution">Proposed resolution</h3>
<p> - Add a resolveTranslation() helper that checks TranslatableInterface and calls getTranslation($language_code) when a translation exists<br>
- Thread $language_code through the entire evaluate()/doEvaluate() recursion chain<br>
- At the entry point (EntityFieldPropSource::evaluate()), seed $language_code from the host entity's language; fall back to current language via LanguageManager<br>
- Apply resolveTranslation() at every point a referenced entity is resolved (3 locations in doEvaluate())</p>
<h3 id="ui-changes">User interface changes</h3>
> Related issue: [Issue #3552924](https://www.drupal.org/node/3552924)
> Related issue: [Issue #3546597](https://www.drupal.org/node/3546597)
> Related issue: [Issue #3590196](https://www.drupal.org/node/3590196)
issue