Locale
This topic describes the locale parameter, part of the GraphQL API used for the Optimizely querying service, when retrieving content in Optimizely solutions.
How it works
When the locale
parameter has been set in the GraphQL request, then the query will perform the following:
- Filter the content by routing to the specified language content.
- Use linguistic processing of content when using the
contains
operator on a field. For example, the support tokenization of words, decompounding and stemming of these words.
Example
Having values with "pommes, noisettes" will be stemmed to their (algorithmic) base form, so searching for singular forms will now also match contains: "pomme noisette".
The locale
parameter takes a list of 1 or more locale values as input. When locale has not been specified, then an index without any language processing will be used for matching. The locale parameter is directly related to the language_routing parameter.
Locale setting | Indexing | Searching |
---|---|---|
Without language_routing/locale parameter. | Standard index | Standard index |
With language_routing/locale parameter | Index each document to a separate index for each provided language. | Standard index and search in separate index for each provided language. Besides the index filtering, language support for the full-text search operator contains for each provided language is enabled. |
Locale format
- the value must start lowercase, e.g.,
en, sv
- support to query a specific locale, e.g.,
en_GB, en_US
- support to query single or multiple locales by using comma as delimiter.
query MyQuery {
Content(locale: [en, en_GB, en_US, sv, nl]) {
items {
Name
}
}
}
How is it working?
- Query a specific language, it returns the content items for that language and content items that have language empty "" or null (those content items are asset contents)
query MyQuery {
Content(locale: en, limit: 100) {
items {
Name
Language {
Link
DisplayName
Name
}
}
}
}
{
"data": {
"Content": {
"items": [
{
"Name": "Reporting Made Simple",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/events/reporting-made-simple/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Collaboration Made Simple",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/events/collaboration-made-simple/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Risk Management",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/events/risk-management-in-complex-projects/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Saves Bears",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/newworld-wildlife-fund-chooses-alloy/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Enhances Risk Management",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/alloy-plan-enhances-risk-management/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Top Collaboration Technology",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/alloy-meet-acclaimed-for-top-collaboration-technology/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Trek Selects Alloy Plan",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/trek-selects-alloy-plan/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Events",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/events/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Press Releases",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Michelle Hernandez",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/michelle-hernandez/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Todd Slayton",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/todd-slayton/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Robert Carlsson",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/robert-carlsson/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Fiona Miller",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/fiona-miller/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Amar Gupta",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/amar-gupta/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Management",
"Language": {
"Link": "http://localhost:8081/en/about-us/management/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Contact us",
"Language": {
"Link": "http://localhost:8081/en/about-us/contact-us/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Become a reseller",
"Language": {
"Link": "http://localhost:8081/en/about-us/become-a-reseller/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Whitepaper",
"Language": {
"Link": "http://localhost:8081/en/alloy-track/download-whitepaper-alloy-track/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "News & Events",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Find a reseller",
"Language": {
"Link": "http://localhost:8081/en/how-to-buy/find-a-reseller/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Contacts",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Search",
"Language": {
"Link": "http://localhost:8081/en/search/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Meet",
"Language": {
"Link": "http://localhost:8081/en/alloy-meet/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "About us",
"Language": {
"Link": "http://localhost:8081/en/about-us/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Plan",
"Language": {
"Link": "http://localhost:8081/en/alloy-plan/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Track",
"Language": {
"Link": "http://localhost:8081/en/alloy-track/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "How to buy",
"Language": {
"Link": "http://localhost:8081/en/how-to-buy/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Meet jumbotron",
"Language": {
"Link": null,
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Plan teaser",
"Language": {
"Link": null,
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Track teaser",
"Language": {
"Link": null,
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Meet teaser",
"Language": {
"Link": null,
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Customer Zone",
"Language": {
"Link": "/en/customer-zone/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Reseller extranet",
"Language": {
"Link": "/en/customer-zone/reseller-extranet/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Start",
"Language": {
"Link": "http://localhost:8081/en/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Test page",
"Language": {
"Link": "http://localhost:8081/en/test-page/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "logotype.png",
"Language": {
"Link": "http://localhost:8081/contentassets/ed475b914904443795e8c63f91afcb5c/logotype.png",
"DisplayName": "Invariant Language (Invariant Country)",
"Name": ""
}
},
{
"Name": "AlloyPlan.png",
"Language": {
"Link": "http://localhost:8081/contentassets/3b16c17d494344de87c29324395d01bb/alloyplan.png",
"DisplayName": "Invariant Language (Invariant Country)",
"Name": ""
}
},
{
"Name": "AlloyPlanScreen.png",
"Language": {
"Link": "http://localhost:8081/contentassets/3b16c17d494344de87c29324395d01bb/alloyplanscreen.png",
"DisplayName": "Invariant Language (Invariant Country)",
"Name": ""
}
}
]
}
},
"extensions": {
"correlationId": "b37f03b1-7901-4386-a04a-78f55b85ba5c",
"cost": 104,
"costSummary": [
"Content(104) = limit(100) + fields(4)"
]
}
}
- Query multiple languages and locales, it returns the content items for these languages and content items that have language empty "" or null (those content items are asset contents)
query MyQuery {
Content(locale: [en, fr], limit: 100, orderBy: {Language: {Name: DESC}}) {
items {
Name
Language {
Link
DisplayName
Name
}
}
}
}
{
"data": {
"Content": {
"items": [
{
"Name": "Start fr134",
"Language": {
"Link": null,
"DisplayName": "French",
"Name": "fr"
}
},
{
"Name": "Reporting Made Simple",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/events/reporting-made-simple/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Collaboration Made Simple",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/events/collaboration-made-simple/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Risk Management",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/events/risk-management-in-complex-projects/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Saves Bears",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/newworld-wildlife-fund-chooses-alloy/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Enhances Risk Management",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/alloy-plan-enhances-risk-management/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Top Collaboration Technology",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/alloy-meet-acclaimed-for-top-collaboration-technology/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Trek Selects Alloy Plan",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/trek-selects-alloy-plan/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Events",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/events/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Press Releases",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/press-releases/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Michelle Hernandez",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/michelle-hernandez/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Todd Slayton",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/todd-slayton/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Robert Carlsson",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/robert-carlsson/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Fiona Miller",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/fiona-miller/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Amar Gupta",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/amar-gupta/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Management",
"Language": {
"Link": "http://localhost:8081/en/about-us/management/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Contact us",
"Language": {
"Link": "http://localhost:8081/en/about-us/contact-us/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Become a reseller",
"Language": {
"Link": "http://localhost:8081/en/about-us/become-a-reseller/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Whitepaper",
"Language": {
"Link": "http://localhost:8081/en/alloy-track/download-whitepaper-alloy-track/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "News & Events",
"Language": {
"Link": "http://localhost:8081/en/about-us/news-events/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Find a reseller",
"Language": {
"Link": "http://localhost:8081/en/how-to-buy/find-a-reseller/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Contacts",
"Language": {
"Link": "http://localhost:8081/en/about-us/contacts/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Search",
"Language": {
"Link": "http://localhost:8081/en/search/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Meet",
"Language": {
"Link": "http://localhost:8081/en/alloy-meet/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "About us",
"Language": {
"Link": "http://localhost:8081/en/about-us/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Plan",
"Language": {
"Link": "http://localhost:8081/en/alloy-plan/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Track",
"Language": {
"Link": "http://localhost:8081/en/alloy-track/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "How to buy",
"Language": {
"Link": "http://localhost:8081/en/how-to-buy/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Meet jumbotron",
"Language": {
"Link": null,
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Plan teaser",
"Language": {
"Link": null,
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Track teaser",
"Language": {
"Link": null,
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Alloy Meet teaser",
"Language": {
"Link": null,
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Customer Zone",
"Language": {
"Link": "/en/customer-zone/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Reseller extranet",
"Language": {
"Link": "/en/customer-zone/reseller-extranet/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Start",
"Language": {
"Link": "http://localhost:8081/en/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "Test page",
"Language": {
"Link": "http://localhost:8081/en/test-page/",
"DisplayName": "English",
"Name": "en"
}
},
{
"Name": "logotype.png",
"Language": {
"Link": "http://localhost:8081/contentassets/ed475b914904443795e8c63f91afcb5c/logotype.png",
"DisplayName": "Invariant Language (Invariant Country)",
"Name": ""
}
},
{
"Name": "AlloyPlan.png",
"Language": {
"Link": "http://localhost:8081/contentassets/3b16c17d494344de87c29324395d01bb/alloyplan.png",
"DisplayName": "Invariant Language (Invariant Country)",
"Name": ""
}
},
{
"Name": "AlloyPlanScreen.png",
"Language": {
"Link": "http://localhost:8081/contentassets/3b16c17d494344de87c29324395d01bb/alloyplanscreen.png",
"DisplayName": "Invariant Language (Invariant Country)",
"Name": ""
}
}
]
}
},
"extensions": {
"correlationId": "879f2ca9-4022-438c-a970-dc6abeda1fe2",
"cost": 104,
"costSummary": [
"Content(104) = limit(100) + fields(4)"
]
}
}
How to sync languages and locales to the content graph
- On the Admin tab, enable the languages and locales you want to support
- On the Edit tab, choose Start page and
- Click Tools > Language Settings
- Check the languages or the locales you want to support.
- Go to the Sites tab and change to the language or locales you want.
- Return to the Pages tab. Start to translate the previous page, then the content item will be synced immediately and the graphql schema will update.
Note:
- Only Enable the language in the Admin mode, it won't have any effect.
- Translating the Start page is a mandatory step to sync the language to GraphQl schema.
Updated about 1 month ago