Allow customizing instance languages

This commit is contained in:
tusooa 2023-01-26 20:17:13 -05:00
parent 1b82fd95d4
commit 1c225bfd6e
No known key found for this signature in database
GPG key ID: 7B467EDE43A08224
3 changed files with 24 additions and 1 deletions

View file

@ -1052,6 +1052,15 @@
description:
"Minimum required age (in days) for users to create account. Only used if birthday is required.",
suggestions: [6570]
},
%{
key: :languages,
type: {:list, :string},
description:
"Languages to be exposed in /api/v1/instance. Should be in the format of BCP47 language codes.",
suggestions: [
"en"
]
}
]
},

View file

@ -27,7 +27,7 @@ def render("show.json", _) do
thumbnail:
URI.merge(Pleroma.Web.Endpoint.url(), Keyword.get(instance, :instance_thumbnail))
|> to_string,
languages: ["en"],
languages: Keyword.get(instance, :languages, ["en"]),
registrations: Keyword.get(instance, :registrations_open),
approval_required: Keyword.get(instance, :account_approval_required),
# Extra (not present in Mastodon):

View file

@ -92,4 +92,18 @@ test "get peers", %{conn: conn} do
assert ["peer1.com", "peer2.com"] == Enum.sort(result)
end
test "instance languages", %{conn: conn} do
assert %{"languages" => ["en"]} =
conn
|> get("/api/v1/instance")
|> json_response_and_validate_schema(200)
clear_config([:instance, :languages], ["aa", "bb"])
assert %{"languages" => ["aa", "bb"]} =
conn
|> get("/api/v1/instance")
|> json_response_and_validate_schema(200)
end
end