Localization

Content available for multiple languages

Suppliers have the ability to store their content in multiple languages. We use the Accept-Language header in the request which ideally should be equal to what the client's browser/user agent sent.

More information about the structure of that header is here: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language‚Äč

We will then attempt to best match with a list of the languages that the supplier have already translated their content into. The response will include Content-Langauge header indicating the language of the content we returned. This follows the HTTP standard.

For example a request that specifies a range of preferred languages:

GET /octo/products/94cdd032-3d32-416d-b0a4-abf8b7495b8b HTTP/1.1
Host: api.ventrata.com
Authorization: Bearer 5bd1629a-323e-4edb-ac9b-327ef51e6136
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5

And the response matching to english, as that's the only language available for that product:

HTTP/1.1 200 OK
Content-Language: en

Some implementations might plan to cache this content locally, for that we also return a Octo-Available-Languages header which will include a list of languages the supplier has translated the content into.

HTTP/1.1 200 OK
Octo-Available-Languages: en, fr, it, de

You can then repeat the request with each of the languages to get the different content.