List alternate locales of entries in Statamic GraphQL queries.
This addon provides a simple way of querying alternate languages of entries in GraphQL. Mainly useful for frontend language switches.
Installation
composer require daun/statamic-graphql-alternate-locales
Usage
After installation, you can list all locales of an entry from the new locales
field. It requires
selecting the specific subfields to return. See below for a list of all supported subfields.
{
page: entry(
collection: "pages"
slug: "about"
filter: { locale: "en" }
) {
slug
title
locale
locales {
locale
slug
title
}
}
}
The above query would result in the following data:
{
"slug": "about",
"title": "About",
"locale": "en",
"locales": [
{
"locale": "de",
"slug": "ueber-uns",
"title": "Über uns"
},
{
"locale": "en",
"slug": "about",
"title": "About"
}
]
}
Publish status
By default, the locales
field only returns entries in published locales. To include all locales
regardless of publish status, set the unpublished
arg to true
:
locales (unpublished: true) {
locale
slug
title
}
Available subfields
Subfield | Type | Value |
---|---|---|
id |
string |
$entry->id() |
locale |
string |
$entry->locale() |
current |
boolean |
$entry->locale() === locale filter of query |
slug |
string |
$entry->slug() |
url |
string |
$entry->url() |
uri |
string |
$entry->uri() |
permalink |
string |
$entry->absoluteUrl() |
published |
boolean |
$entry->published() |
private |
boolean |
$entry->private() |
status |
string |
$entry->status() |
title |
string |
$entry->get('title') |