GraphQL Alternate Locales

Addon by Philipp Daun

GraphQL Alternate Locales Main Screenshot

List alternate locales of entries in GraphQL queries.

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.

Screenshot of locale query in Statamic GraphiQL interface

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')

License

MIT