Supporting multiple languages in questionnaires

Are there any guides to how one should/can support questionnaires with support for multiple languages? This must be very common, and I see traces of this in the SDC here and there, but I am not finding a general outline of how this should be done. I tried looking through various pages from the SDC TOC without much success either.

I am guessing the approaches land in

  1. One Questionnaire resource that has bundled all the translations of that form or some way of fetching it based on some context where the user’s language is exposed.
  2. Multiple Questionnaire resources that are somehow linked together.

On the latter approach

I have tried the Structor form designer from the Norwegian Health Network. This has a very nice and understandable user interface and supports adding translations. When I then export the questionnaire I get Bundle with two Questionnaire resources. These are pretty much the same, apart from being in different languages.

I cannot really see if or how they are linked in any fashion, apart from the fact that they both seem to refer to the title field of the “main” language in some sub-field of useContext.

  "useContext": [
      "code": {
        "system": "",
        "code": "focus",
        "display": "Clinical Focus"
      "valueCodeableConcept": {
        "coding": [
            "system": "urn:oid:2.16.578.",
            "display": "G8 Geriatrisk screening"

Here, “G8 Geriatrisk screening”, refers to the title of the “main” language, as below.

  "language": "nb-NO",
  "title": "G8 Geriatrisk screening",
  "meta": {
    "profile": [
    "tag": [
        "system": "urn:ietf:bcp:47",
        "code": "nb-NO",
        "display": "Norsk Bokmål"

This approach, where you have parallel questionnaires with a very weak link based on title, does not work that well for us, so we would need to add some additional metadata to group related forms. Which is what brought me here: there must be some other approaches to this.

It’s an interesting question. One could argue that both Questionnaires should have the same canonical URL, as they’re both asking the same questions (just in a different language). In the past, we’ve said that if you store multiple instances on the same server of a Questionnaire with the same url, then the .version element should be different. However, it seems reasonable to also allow it if the .language is different. If you submit a change request against Questionnaire, we could make this explicit.

The two approaches are indeed as you’ve described - either one Questionnaire with ‘translation’ extensions on all relevant strings, or two separate Questionnaire instances. We’re exploring defining a standard operation that would allow the generation of those translated representations.

my 2 cents on the matter:

if the questionnaire have images like this example (HL7.FHIR.UV.SDC\SDC-Example with Image Options - JSON Representation - FHIR v4.0.1), I am not sure you can change the images based on language extensions

if there is multiple questionnaire, it would be good to retrieve the list of translation available for a given questionnaire so the form filler could indicate it, therefore having the .language as “part” of the version could make sense

Just wanted to note that there are some docs concerning translations in the standard.

There are also some interesting notes on multi-lingual support in this FHIR DevDays 2021 presentation by Rene Spronk.

This section of the Questionnaire resource talks about SDC and “multi-language questionnaires, and other ‘advanced’ formatting capabilities”, but I was not able to find any mentions of this in the SDC pages.

Translation produces a string, and you could use the image extension within the image extension. (Whether most tools are sophisticated enough to handle that is another matter.) Right now there’s no searchable extension for finding alternate languages - it wouldn’t be a bad idea to submit a change request for that.

The SDC work on translations is not published yet.