We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Add list of supported languages to the metadata API
Whether or not a SecureDrop is available in one of the [supported languages](https://docs.securedrop.org/en/latest/admin.html#configuring-localization-for-the-source-interface-and-the-journalist-interface) is public information enumerated at the bottom of the source interface, but it's not currently exposed in the metadata API.

Returning the list of supported languages along with the other instance metadata would be useful, including for the envisioned source interface scanner integrated with securedrop.org. 

# User Stories

As a translator, I want to know which languages are currently used by SecureDrop users, so I know if and where my translations have real world impact.

As a SecureDrop support team member, I want to know at a glance whether news organizations have configured supported languages, so I can point out to them if/when translations relevant to them are available.

As a SecureDrop.org visitor, I'd like to know if a SecureDrop instance is available in the language I speak, so that I know if I can navigate it with confidence, and that it is likely to accept submissions in my language.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `securedrop/source_app/api.py`
Content:
```
1 import json
2 import platform
3 
4 from flask import Blueprint, make_response
5 
6 import version
7 
8 
9 def make_blueprint(config):
10     view = Blueprint('api', __name__)
11 
12     @view.route('/metadata')
13     def metadata():
14         meta = {'gpg_fpr': config.JOURNALIST_KEY,
15                 'sd_version': version.__version__,
16                 'server_os': platform.linux_distribution()[1],
17                 }
18         resp = make_response(json.dumps(meta))
19         resp.headers['Content-Type'] = 'application/json'
20         return resp
21 
22     return view
23
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/securedrop/source_app/api.py b/securedrop/source_app/api.py
--- a/securedrop/source_app/api.py
+++ b/securedrop/source_app/api.py
@@ -11,10 +11,12 @@
 
     @view.route('/metadata')
     def metadata():
-        meta = {'gpg_fpr': config.JOURNALIST_KEY,
-                'sd_version': version.__version__,
-                'server_os': platform.linux_distribution()[1],
-                }
+        meta = {
+            'gpg_fpr': config.JOURNALIST_KEY,
+            'sd_version': version.__version__,
+            'server_os': platform.linux_distribution()[1],
+            'supported_languages': config.SUPPORTED_LOCALES
+        }
         resp = make_response(json.dumps(meta))
         resp.headers['Content-Type'] = 'application/json'
         return resp

{"golden_diff": "diff --git a/securedrop/source_app/api.py b/securedrop/source_app/api.py\n--- a/securedrop/source_app/api.py\n+++ b/securedrop/source_app/api.py\n@@ -11,10 +11,12 @@\n \n     @view.route('/metadata')\n     def metadata():\n-        meta = {'gpg_fpr': config.JOURNALIST_KEY,\n-                'sd_version': version.__version__,\n-                'server_os': platform.linux_distribution()[1],\n-                }\n+        meta = {\n+            'gpg_fpr': config.JOURNALIST_KEY,\n+            'sd_version': version.__version__,\n+            'server_os': platform.linux_distribution()[1],\n+            'supported_languages': config.SUPPORTED_LOCALES\n+        }\n         resp = make_response(json.dumps(meta))\n         resp.headers['Content-Type'] = 'application/json'\n         return resp\n", "issue": "Add list of supported languages to the metadata API\nWhether or not a SecureDrop is available in one of the [supported languages](https://docs.securedrop.org/en/latest/admin.html#configuring-localization-for-the-source-interface-and-the-journalist-interface) is public information enumerated at the bottom of the source interface, but it's not currently exposed in the metadata API.\r\n\r\nReturning the list of supported languages along with the other instance metadata would be useful, including for the envisioned source interface scanner integrated with securedrop.org. \r\n\r\n# User Stories\r\n\r\nAs a translator, I want to know which languages are currently used by SecureDrop users, so I know if and where my translations have real world impact.\r\n\r\nAs a SecureDrop support team member, I want to know at a glance whether news organizations have configured supported languages, so I can point out to them if/when translations relevant to them are available.\r\n\r\nAs a SecureDrop.org visitor, I'd like to know if a SecureDrop instance is available in the language I speak, so that I know if I can navigate it with confidence, and that it is likely to accept submissions in my language.\n", "before_files": [{"content": "import json\nimport platform\n\nfrom flask import Blueprint, make_response\n\nimport version\n\n\ndef make_blueprint(config):\n    view = Blueprint('api', __name__)\n\n    @view.route('/metadata')\n    def metadata():\n        meta = {'gpg_fpr': config.JOURNALIST_KEY,\n                'sd_version': version.__version__,\n                'server_os': platform.linux_distribution()[1],\n                }\n        resp = make_response(json.dumps(meta))\n        resp.headers['Content-Type'] = 'application/json'\n        return resp\n\n    return view\n", "path": "securedrop/source_app/api.py"}], "after_files": [{"content": "import json\nimport platform\n\nfrom flask import Blueprint, make_response\n\nimport version\n\n\ndef make_blueprint(config):\n    view = Blueprint('api', __name__)\n\n    @view.route('/metadata')\n    def metadata():\n        meta = {\n            'gpg_fpr': config.JOURNALIST_KEY,\n            'sd_version': version.__version__,\n            'server_os': platform.linux_distribution()[1],\n            'supported_languages': config.SUPPORTED_LOCALES\n        }\n        resp = make_response(json.dumps(meta))\n        resp.headers['Content-Type'] = 'application/json'\n        return resp\n\n    return view\n", "path": "securedrop/source_app/api.py"}]}