Skip to content

LanguageCode Criterion

The LanguageCode Search Criterion searches for content based on whether it's translated into the selected language.

Arguments

  • value - string(s) representing the language codes to search for
  • (optional) matchAlwaysAvailable - bool representing whether content with the alwaysAvailable flag should be returned even if it doesn't contain the selected language (default true)

Limitations

LanguageCode can be used on all search engines.

Example

PHP

1
$query->query = new Criterion\LanguageCode('ger-DE', false);

REST API

1
2
3
4
5
<Query>
    <Filter>
        <LanguageCodeCriterion>eng-GB</LanguageCodeCriterion>
    </Filter>
</Query>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    "ViewInput": {
        "identifier": "LanguageCodeCriterionTest",
        "Query": {
            "Filter": {
                "LanguageCodeCriterion": "eng-GB"
            }
        }
    }
}

Use case

You can use the LanguageCode Criterion to search for articles that are lacking a translation into a specific language:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
$query = new LocationQuery;
$query->query = new Criterion\LogicalAnd([
    new Criterion\ContentTypeIdentifier('article'),
    new Criterion\LogicalNot(
        new Criterion\LanguageCode('ger-DE', false)
    )
    ]
);

$results = $this->searchService->findContent($query);
$articles = [];
foreach ($results->searchHits as $searchHit) {
    $articles[] = $searchHit;
}

return $this->render('list/articles_to_translate.html.twig', [
    'articles' => $articles,
]);