# CMS Data Resolver - Sprache ermitteln

**URL:** <https://forum.shopware.com/t/cms-data-resolver-sprache-ermitteln/99717>\
**Category:** Shopware 6 (German)\
**Created:** [16. Mai 2023 um 12:52 UTC](https://forum.shopware.com/t/cms-data-resolver-sprache-ermitteln/99717 "2023-05-16T12:52:26Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [16. Mai 2023 um 12:52 UTC](https://forum.shopware.com/t/cms-data-resolver-sprache-ermitteln/99717/1 "2023-05-16T12:52:26Z")

</div>

Hallo,

ich baue gerade ein eigenes CMS-Element und bin gerade am Data Resolver:

```auto
public function enrich(CmsSlotEntity $slot, ResolverContext $resolverContext, ElementDataCollection $result): void
{
    $languageId = $resolverContext->getSalesChannelContext()->getLanguageId();
    
    //$slot->setData();
}

```

Ich kann die Language-Id aus dem SalesChannelContext ermitteln. Wie komme ich aber an die Sprache selbst, also „Deutsch“ oder „Englisch“. Kann man hier irgendwie mit Repository arbeiten, oder gibt es einen schnelleren Weg?

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [16. Mai 2023 um 14:12 UTC](https://forum.shopware.com/t/cms-data-resolver-sprache-ermitteln/99717/2 "2023-05-16T14:12:18Z")

</div>

Okay, habe es selber gefunden. Für alle, die es interessiert:

```auto
public function collect(CmsSlotEntity $slot, ResolverContext $resolverContext): ?CriteriaCollection
{
    $criteriaCollection = new CriteriaCollection();

    $criteria = new Criteria([$resolverContext->getSalesChannelContext()->getLanguageId()]);
    $criteriaCollection->add('language_' . $slot->getUniqueIdentifier(), LanguageDefinition::class, $criteria);

    return $criteriaCollection;
}

```

```auto
public function enrich(CmsSlotEntity $slot, ResolverContext $resolverContext, ElementDataCollection $result): void
{
	$languageSearchResult = $result->get('language_' . $slot->getUniqueIdentifier());
	$language = $languageSearchResult->first()->getName());
        
        ...
}

```

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![chamaw](https://avatars.discourse-cdn.com/v4/letter/c/b487fb/32.png) [@chamaw](https://forum.shopware.com/u/chamaw)\
**Post date:** [16. Mai 2023 um 14:13 UTC](https://forum.shopware.com/t/cms-data-resolver-sprache-ermitteln/99717/3 "2023-05-16T14:13:54Z")

</div>

Nop, da muss Du mit der ID eine DB Abfrage mache.  
Hier ist Shopware6 meiner Meinung „over engineered“, hab immer schon gefragt warum man Werte wie de, en oder EUR, USD, CHF als UUID kodieren muss ?

LG

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [16. Mai 2023 um 14:18 UTC](https://forum.shopware.com/t/cms-data-resolver-sprache-ermitteln/99717/4 "2023-05-16T14:18:48Z")

</div>

Mit einer DB-Abfrage würde es natürlich gehen. Die oben beschriebene Variante funktioniert aber auch 😉.

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![chamaw](https://avatars.discourse-cdn.com/v4/letter/c/b487fb/32.png) [@chamaw](https://forum.shopware.com/u/chamaw)\
**Post date:** [16. Mai 2023 um 14:30 UTC](https://forum.shopware.com/t/cms-data-resolver-sprache-ermitteln/99717/5 "2023-05-16T14:30:46Z")

</div>

das addAssoc() „joined“ ja einfach nur die Language Tabelle in die Abfrage
