Legacy Knowledge Base
Published Sep. 10, 2025

Fetching the web contents with the "Accept-Language" header returns different languages

Written By

Sivakumar Perumal

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

Legacy Article

You are viewing an article from our legacy "FastTrack" publication program, made available for informational purposes. Articles in this program were published without a requirement for independent editing or verification and are provided"as is" without guarantee.

Before using any information from this article, independently verify its suitability for your situation and project.

Issue

  • Fetching the web contents using the headless API with the "Accept-Language" header returns the selected language variation if there is a translation for it, but otherwise, it returns the default language version.
    curl -X GET "http://localhost:8080/o/headless-delivery/v1.0/content-structures/35030/structured-contents" -H "accept: application/json" -H "Accept-Language: hr-HR"

Environment

  • Liferay DXP 7.2

Resolution

  • For language negotiation, Liferay implemented the "Accept-Language" header. It follows the standard behavior mentioned in the below document
    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language

    Note especially the parts of: “The Accept-Language request HTTP header advertises which languages the client is able to understand, and which locale variant is preferred”, “the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Language response header”

    And “If the server cannot serve any matching language, it can theoretically send back a 406 (Not Acceptable) error code. But, for a better user experience, this is rarely done and more common way is to ignore the Accept-Language header in this case.”

    Therefore, to summarize the above, the current behavior is expected.

Additional Information

  • A Feature Request is already in place LPS-126967. It needs to be considered by developers and if the requested functionality is approved, it may only be implemented in a future release of Liferay.

  • One of the ways our Feature Requests are measured is by votes and watches. In JIRA you will notice "Vote" and "Watch" options in the right-hand column. The more individuals who vote or watch this feature the more likely it will be noticed by our development team. That said, I would encourage to Vote and Watch the feature request.
    Note: JIRA requires a different login than Help Center to Vote and Watch and can be self-created.
Did this article resolve your issue ?

Legacy Knowledge Base