Merge branch 'from/upstream-develop/tusooa/config-translatable' into 'develop'

Translatable config descriptions

Closes pleroma-meta#65

See merge request pleroma/pleroma!3695
This commit is contained in:
Haelwenn 2022-07-17 17:34:21 +00:00
commit bb4860e222
8 changed files with 6571 additions and 258 deletions

View file

@ -0,0 +1,10 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Docs.Translator do
require Pleroma.Docs.Translator.Compiler
require Pleroma.Web.Gettext
@before_compile Pleroma.Docs.Translator.Compiler
end

View file

@ -0,0 +1,119 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Docs.Translator.Compiler do
@external_resource "config/description.exs"
@raw_config Pleroma.Config.Loader.read("config/description.exs")
@raw_descriptions @raw_config[:pleroma][:config_description]
defmacro __before_compile__(_env) do
strings =
__MODULE__.descriptions()
|> __MODULE__.extract_strings()
quote do
def placeholder do
unquote do
Enum.map(
strings,
fn {path, type, string} ->
ctxt = msgctxt_for(path, type)
quote do
Pleroma.Web.Gettext.dpgettext_noop(
"config_descriptions",
unquote(ctxt),
unquote(string)
)
end
end
)
end
end
end
end
def descriptions do
Pleroma.Web.ActivityPub.MRF.config_descriptions()
|> Enum.reduce(@raw_descriptions, fn description, acc -> [description | acc] end)
|> Pleroma.Docs.Generator.convert_to_strings()
end
def extract_strings(descriptions) do
descriptions
|> Enum.reduce(%{strings: [], path: []}, &process_item/2)
|> Map.get(:strings)
end
defp process_item(entity, acc) do
current_level =
acc
|> process_desc(entity)
|> process_label(entity)
process_children(entity, current_level)
end
defp process_desc(acc, %{description: desc} = item) do
%{
strings: [{acc.path ++ [key_for(item)], "description", desc} | acc.strings],
path: acc.path
}
end
defp process_desc(acc, _) do
acc
end
defp process_label(acc, %{label: label} = item) do
%{
strings: [{acc.path ++ [key_for(item)], "label", label} | acc.strings],
path: acc.path
}
end
defp process_label(acc, _) do
acc
end
defp process_children(%{children: children} = item, acc) do
current_level = Map.put(acc, :path, acc.path ++ [key_for(item)])
children
|> Enum.reduce(current_level, &process_item/2)
|> Map.put(:path, acc.path)
end
defp process_children(_, acc) do
acc
end
def msgctxt_for(path, type) do
"config #{type} at #{Enum.join(path, " > ")}"
end
defp convert_group({_, group}) do
group
end
defp convert_group(group) do
group
end
def key_for(%{group: group, key: key}) do
"#{convert_group(group)}-#{key}"
end
def key_for(%{group: group}) do
convert_group(group)
end
def key_for(%{key: key}) do
key
end
def key_for(_) do
nil
end
end

View file

@ -22,10 +22,58 @@ defmodule Pleroma.Web.AdminAPI.ConfigController do
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.ConfigOperation defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.ConfigOperation
defp translate_descriptions(descriptions, path \\ []) do
Enum.map(descriptions, fn desc -> translate_item(desc, path) end)
end
defp translate_string(str, path, type) do
Gettext.dpgettext(
Pleroma.Web.Gettext,
"config_descriptions",
Pleroma.Docs.Translator.Compiler.msgctxt_for(path, type),
str
)
end
defp maybe_put_translated(item, key, path) do
if item[key] do
Map.put(
item,
key,
translate_string(
item[key],
path ++ [Pleroma.Docs.Translator.Compiler.key_for(item)],
to_string(key)
)
)
else
item
end
end
defp translate_item(item, path) do
item
|> maybe_put_translated(:label, path)
|> maybe_put_translated(:description, path)
|> translate_children(path)
end
defp translate_children(%{children: children} = item, path) when is_list(children) do
item
|> Map.put(
:children,
translate_descriptions(children, path ++ [Pleroma.Docs.Translator.Compiler.key_for(item)])
)
end
defp translate_children(item, _path) do
item
end
def descriptions(conn, _params) do def descriptions(conn, _params) do
descriptions = Enum.filter(Pleroma.Docs.JSON.compiled_descriptions(), &whitelisted_config?/1) descriptions = Enum.filter(Pleroma.Docs.JSON.compiled_descriptions(), &whitelisted_config?/1)
json(conn, descriptions) json(conn, translate_descriptions(descriptions))
end end
def show(conn, %{only_db: true}) do def show(conn, %{only_db: true}) do

File diff suppressed because it is too large Load diff

View file

@ -10,175 +10,175 @@
msgid "" msgid ""
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:122 #: lib/pleroma/web/api_spec/render_error.ex:122
msgid "%{name} - %{count} is not a multiple of %{multiple}." msgid "%{name} - %{count} is not a multiple of %{multiple}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:131 #: lib/pleroma/web/api_spec/render_error.ex:131
msgid "%{name} - %{value} is larger than exclusive maximum %{max}." msgid "%{name} - %{value} is larger than exclusive maximum %{max}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:140 #: lib/pleroma/web/api_spec/render_error.ex:140
msgid "%{name} - %{value} is larger than inclusive maximum %{max}." msgid "%{name} - %{value} is larger than inclusive maximum %{max}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:149 #: lib/pleroma/web/api_spec/render_error.ex:149
msgid "%{name} - %{value} is smaller than exclusive minimum %{min}." msgid "%{name} - %{value} is smaller than exclusive minimum %{min}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:158 #: lib/pleroma/web/api_spec/render_error.ex:158
msgid "%{name} - %{value} is smaller than inclusive minimum %{min}." msgid "%{name} - %{value} is smaller than inclusive minimum %{min}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:102 #: lib/pleroma/web/api_spec/render_error.ex:102
msgid "%{name} - Array items must be unique." msgid "%{name} - Array items must be unique."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:114 #: lib/pleroma/web/api_spec/render_error.ex:114
msgid "%{name} - Array length %{length} is larger than maxItems: %{}." msgid "%{name} - Array length %{length} is larger than maxItems: %{}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:106 #: lib/pleroma/web/api_spec/render_error.ex:106
msgid "%{name} - Array length %{length} is smaller than minItems: %{min}." msgid "%{name} - Array length %{length} is smaller than minItems: %{min}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:166 #: lib/pleroma/web/api_spec/render_error.ex:166
msgid "%{name} - Invalid %{type}. Got: %{value}." msgid "%{name} - Invalid %{type}. Got: %{value}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:174 #: lib/pleroma/web/api_spec/render_error.ex:174
msgid "%{name} - Invalid format. Expected %{format}." msgid "%{name} - Invalid format. Expected %{format}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:51 #: lib/pleroma/web/api_spec/render_error.ex:51
msgid "%{name} - Invalid schema.type. Got: %{type}." msgid "%{name} - Invalid schema.type. Got: %{type}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:178 #: lib/pleroma/web/api_spec/render_error.ex:178
msgid "%{name} - Invalid value for enum." msgid "%{name} - Invalid value for enum."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:95 #: lib/pleroma/web/api_spec/render_error.ex:95
msgid "%{name} - String length is larger than maxLength: %{length}." msgid "%{name} - String length is larger than maxLength: %{length}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:88 #: lib/pleroma/web/api_spec/render_error.ex:88
msgid "%{name} - String length is smaller than minLength: %{length}." msgid "%{name} - String length is smaller than minLength: %{length}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:63 #: lib/pleroma/web/api_spec/render_error.ex:63
msgid "%{name} - null value where %{type} expected." msgid "%{name} - null value where %{type} expected."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:60 #: lib/pleroma/web/api_spec/render_error.ex:60
msgid "%{name} - null value." msgid "%{name} - null value."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:182 #: lib/pleroma/web/api_spec/render_error.ex:182
msgid "Failed to cast to any schema in %{polymorphic_type}" msgid "Failed to cast to any schema in %{polymorphic_type}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:71 #: lib/pleroma/web/api_spec/render_error.ex:71
msgid "Failed to cast value as %{invalid_schema}. Value must be castable using `allOf` schemas listed." msgid "Failed to cast value as %{invalid_schema}. Value must be castable using `allOf` schemas listed."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:84 #: lib/pleroma/web/api_spec/render_error.ex:84
msgid "Failed to cast value to one of: %{failed_schemas}." msgid "Failed to cast value to one of: %{failed_schemas}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:78 #: lib/pleroma/web/api_spec/render_error.ex:78
msgid "Failed to cast value using any of: %{failed_schemas}." msgid "Failed to cast value using any of: %{failed_schemas}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:212 #: lib/pleroma/web/api_spec/render_error.ex:212
msgid "Invalid value for header: %{name}." msgid "Invalid value for header: %{name}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:204 #: lib/pleroma/web/api_spec/render_error.ex:204
msgid "Missing field: %{name}." msgid "Missing field: %{name}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:208 #: lib/pleroma/web/api_spec/render_error.ex:208
msgid "Missing header: %{name}." msgid "Missing header: %{name}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:196 #: lib/pleroma/web/api_spec/render_error.ex:196
msgid "No value provided for required discriminator `%{field}`." msgid "No value provided for required discriminator `%{field}`."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:216 #: lib/pleroma/web/api_spec/render_error.ex:216
msgid "Object property count %{property_count} is greater than maxProperties: %{max_properties}." msgid "Object property count %{property_count} is greater than maxProperties: %{max_properties}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:224 #: lib/pleroma/web/api_spec/render_error.ex:224
msgid "Object property count %{property_count} is less than minProperties: %{min_properties}" msgid "Object property count %{property_count} is less than minProperties: %{min_properties}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/static_fe/static_fe/error.html.eex:2 #: lib/pleroma/web/templates/static_fe/static_fe/error.html.eex:2
msgid "Oops" msgid "Oops"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:188 #: lib/pleroma/web/api_spec/render_error.ex:188
msgid "Unexpected field: %{name}." msgid "Unexpected field: %{name}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:200 #: lib/pleroma/web/api_spec/render_error.ex:200
msgid "Unknown schema: %{name}." msgid "Unknown schema: %{name}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/api_spec/render_error.ex:192 #: lib/pleroma/web/api_spec/render_error.ex:192
msgid "Value used as discriminator for `%{field}` matches no schemas." msgid "Value used as discriminator for `%{field}` matches no schemas."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/embed/show.html.eex:43 #: lib/pleroma/web/templates/embed/show.html.eex:43
#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:37 #: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:37
msgid "announces" msgid "announces"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/embed/show.html.eex:44 #: lib/pleroma/web/templates/embed/show.html.eex:44
#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:38 #: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:38
msgid "likes" msgid "likes"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/embed/show.html.eex:42 #: lib/pleroma/web/templates/embed/show.html.eex:42
#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:36 #: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:36
msgid "replies" msgid "replies"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/embed/show.html.eex:27 #: lib/pleroma/web/templates/embed/show.html.eex:27
#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:22 #: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:22
msgid "sensitive media" msgid "sensitive media"

View file

@ -89,436 +89,483 @@ msgstr ""
msgid "must be equal to %{number}" msgid "must be equal to %{number}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:523 #: lib/pleroma/web/common_api.ex:523
msgid "Account not found" msgid "Account not found"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:316 #: lib/pleroma/web/common_api.ex:316
msgid "Already voted" msgid "Already voted"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:402 #: lib/pleroma/web/o_auth/o_auth_controller.ex:402
msgid "Bad request" msgid "Bad request"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/controller_helper.ex:97 #: lib/pleroma/web/controller_helper.ex:97
#: lib/pleroma/web/controller_helper.ex:103 #: lib/pleroma/web/controller_helper.ex:103
msgid "Can't display this activity" msgid "Can't display this activity"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:324 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:325
msgid "Can't find user" msgid "Can't find user"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:80 #: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:80
msgid "Can't get favorites" msgid "Can't get favorites"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api/utils.ex:482 #: lib/pleroma/web/common_api/utils.ex:482
msgid "Cannot post an empty status without attachments" msgid "Cannot post an empty status without attachments"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api/utils.ex:441 #: lib/pleroma/web/common_api/utils.ex:441
msgid "Comment must be up to %{max_size} characters" msgid "Comment must be up to %{max_size} characters"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/config_db.ex:200 #: lib/pleroma/config_db.ex:200
msgid "Config with params %{params} not found" msgid "Config with params %{params} not found"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:167 lib/pleroma/web/common_api.ex:171 #: lib/pleroma/web/common_api.ex:167
#: lib/pleroma/web/common_api.ex:171
msgid "Could not delete" msgid "Could not delete"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:217 #: lib/pleroma/web/common_api.ex:217
msgid "Could not favorite" msgid "Could not favorite"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:254 #: lib/pleroma/web/common_api.ex:254
msgid "Could not unfavorite" msgid "Could not unfavorite"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:202 #: lib/pleroma/web/common_api.ex:202
msgid "Could not unrepeat" msgid "Could not unrepeat"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:530 lib/pleroma/web/common_api.ex:539 #: lib/pleroma/web/common_api.ex:530
#: lib/pleroma/web/common_api.ex:539
msgid "Could not update state" msgid "Could not update state"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:205 #: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:205
msgid "Error." msgid "Error."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/twitter_api/twitter_api.ex:99 #: lib/pleroma/web/twitter_api/twitter_api.ex:105
msgid "Invalid CAPTCHA" msgid "Invalid CAPTCHA"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:144 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:144
#: lib/pleroma/web/o_auth/o_auth_controller.ex:631 #: lib/pleroma/web/o_auth/o_auth_controller.ex:631
msgid "Invalid credentials" msgid "Invalid credentials"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:42 #: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:42
msgid "Invalid credentials." msgid "Invalid credentials."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:337 #: lib/pleroma/web/common_api.ex:337
msgid "Invalid indices" msgid "Invalid indices"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29 #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29
msgid "Invalid parameters" msgid "Invalid parameters"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api/utils.ex:349 #: lib/pleroma/web/common_api/utils.ex:349
msgid "Invalid password." msgid "Invalid password."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:254 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:255
msgid "Invalid request" msgid "Invalid request"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/twitter_api/twitter_api.ex:102 #: lib/pleroma/web/twitter_api/twitter_api.ex:108
msgid "Kocaptcha service unavailable" msgid "Kocaptcha service unavailable"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:140 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:140
msgid "Missing parameters" msgid "Missing parameters"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api/utils.ex:477 #: lib/pleroma/web/common_api/utils.ex:477
msgid "No such conversation" msgid "No such conversation"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:171 #: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:171
#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:197 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:239 #: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:197
#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:239
msgid "No such permission_group" msgid "No such permission_group"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:504 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:515
#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 lib/pleroma/web/feed/tag_controller.ex:16 #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11
#: lib/pleroma/web/feed/user_controller.ex:69 lib/pleroma/web/o_status/o_status_controller.ex:132 #: lib/pleroma/web/feed/tag_controller.ex:16
#: lib/pleroma/web/feed/user_controller.ex:69
#: lib/pleroma/web/o_status/o_status_controller.ex:132
#: lib/pleroma/web/plugs/uploaded_media.ex:84 #: lib/pleroma/web/plugs/uploaded_media.ex:84
msgid "Not found" msgid "Not found"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:308 #: lib/pleroma/web/common_api.ex:308
msgid "Poll's author can't vote" msgid "Poll's author can't vote"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 #: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20
#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:39 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:51 #: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:39
#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:52 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:326 #: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:51
#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:52
#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:326
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71
msgid "Record not found" msgid "Record not found"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35 #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35
#: lib/pleroma/web/feed/user_controller.ex:78 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:42 #: lib/pleroma/web/feed/user_controller.ex:78
#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:42
#: lib/pleroma/web/o_status/o_status_controller.ex:138 #: lib/pleroma/web/o_status/o_status_controller.ex:138
msgid "Something went wrong" msgid "Something went wrong"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api/activity_draft.ex:143 #: lib/pleroma/web/common_api/activity_draft.ex:143
msgid "The message visibility must be direct" msgid "The message visibility must be direct"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api/utils.ex:492 #: lib/pleroma/web/common_api/utils.ex:492
msgid "The status is over the character limit" msgid "The status is over the character limit"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex:36 #: lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex:36
msgid "This resource requires authentication." msgid "This resource requires authentication."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/rate_limiter.ex:208 #: lib/pleroma/web/plugs/rate_limiter.ex:208
msgid "Throttled" msgid "Throttled"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:338 #: lib/pleroma/web/common_api.ex:338
msgid "Too many choices" msgid "Too many choices"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:268 #: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:268
msgid "You can't revoke your own admin status." msgid "You can't revoke your own admin status."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:243 #: lib/pleroma/web/o_auth/o_auth_controller.ex:243
#: lib/pleroma/web/o_auth/o_auth_controller.ex:333 #: lib/pleroma/web/o_auth/o_auth_controller.ex:333
msgid "Your account is currently disabled" msgid "Your account is currently disabled"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:205 #: lib/pleroma/web/o_auth/o_auth_controller.ex:205
#: lib/pleroma/web/o_auth/o_auth_controller.ex:356 #: lib/pleroma/web/o_auth/o_auth_controller.ex:356
msgid "Your login is missing a confirmed e-mail address" msgid "Your login is missing a confirmed e-mail address"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:392 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:403
msgid "can't read inbox of %{nickname} as %{as_nickname}" msgid "can't read inbox of %{nickname} as %{as_nickname}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:491 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:502
msgid "can't update outbox of %{nickname} as %{as_nickname}" msgid "can't update outbox of %{nickname} as %{as_nickname}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:475 #: lib/pleroma/web/common_api.ex:475
msgid "conversation is already muted" msgid "conversation is already muted"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:510 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:521
msgid "error" msgid "error"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34 #: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34
msgid "mascots can only be images" msgid "mascots can only be images"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:63 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:63
msgid "not found" msgid "not found"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:437 #: lib/pleroma/web/o_auth/o_auth_controller.ex:437
msgid "Bad OAuth request." msgid "Bad OAuth request."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/twitter_api/twitter_api.ex:108 #: lib/pleroma/web/twitter_api/twitter_api.ex:114
msgid "CAPTCHA already used" msgid "CAPTCHA already used"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/twitter_api/twitter_api.ex:105 #: lib/pleroma/web/twitter_api/twitter_api.ex:111
msgid "CAPTCHA expired" msgid "CAPTCHA expired"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/uploaded_media.ex:57 #: lib/pleroma/web/plugs/uploaded_media.ex:57
msgid "Failed" msgid "Failed"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:453 #: lib/pleroma/web/o_auth/o_auth_controller.ex:453
msgid "Failed to authenticate: %{message}." msgid "Failed to authenticate: %{message}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:484 #: lib/pleroma/web/o_auth/o_auth_controller.ex:484
msgid "Failed to set up user account." msgid "Failed to set up user account."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/o_auth_scopes_plug.ex:37 #: lib/pleroma/web/plugs/o_auth_scopes_plug.ex:37
msgid "Insufficient permissions: %{permissions}." msgid "Insufficient permissions: %{permissions}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/uploaded_media.ex:111 #: lib/pleroma/web/plugs/uploaded_media.ex:111
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/fallback_controller.ex:22 #: lib/pleroma/web/o_auth/fallback_controller.ex:22
#: lib/pleroma/web/o_auth/fallback_controller.ex:29 #: lib/pleroma/web/o_auth/fallback_controller.ex:29
msgid "Invalid Username/Password" msgid "Invalid Username/Password"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/twitter_api/twitter_api.ex:111 #: lib/pleroma/web/twitter_api/twitter_api.ex:117
msgid "Invalid answer data" msgid "Invalid answer data"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33 #: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33
msgid "Nodeinfo schema version not handled" msgid "Nodeinfo schema version not handled"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:194 #: lib/pleroma/web/o_auth/o_auth_controller.ex:194
msgid "This action is outside the authorized scopes" msgid "This action is outside the authorized scopes"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/fallback_controller.ex:14 #: lib/pleroma/web/o_auth/fallback_controller.ex:14
msgid "Unknown error, please check the details and try again." msgid "Unknown error, please check the details and try again."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:136 #: lib/pleroma/web/o_auth/o_auth_controller.ex:136
#: lib/pleroma/web/o_auth/o_auth_controller.ex:180 #: lib/pleroma/web/o_auth/o_auth_controller.ex:180
msgid "Unlisted redirect_uri." msgid "Unlisted redirect_uri."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:433 #: lib/pleroma/web/o_auth/o_auth_controller.ex:433
msgid "Unsupported OAuth provider: %{provider}." msgid "Unsupported OAuth provider: %{provider}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/uploaders/uploader.ex:74 #: lib/pleroma/uploaders/uploader.ex:74
msgid "Uploader callback timeout" msgid "Uploader callback timeout"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/uploader_controller.ex:23 #: lib/pleroma/web/uploader_controller.ex:23
msgid "bad request" msgid "bad request"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/twitter_api/twitter_api.ex:96 #: lib/pleroma/web/twitter_api/twitter_api.ex:102
msgid "CAPTCHA Error" msgid "CAPTCHA Error"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:266 #: lib/pleroma/web/common_api.ex:266
msgid "Could not add reaction emoji" msgid "Could not add reaction emoji"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api.ex:277 #: lib/pleroma/web/common_api.ex:277
msgid "Could not remove reaction emoji" msgid "Could not remove reaction emoji"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/twitter_api/twitter_api.ex:122 #: lib/pleroma/web/twitter_api/twitter_api.ex:128
msgid "Invalid CAPTCHA (Missing parameter: %{name})" msgid "Invalid CAPTCHA (Missing parameter: %{name})"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:96 #: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:96
msgid "List not found" msgid "List not found"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:151 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:151
msgid "Missing parameter: %{name}" msgid "Missing parameter: %{name}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:232 #: lib/pleroma/web/o_auth/o_auth_controller.ex:232
#: lib/pleroma/web/o_auth/o_auth_controller.ex:346 #: lib/pleroma/web/o_auth/o_auth_controller.ex:346
msgid "Password reset is required" msgid "Password reset is required"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/tests/auth_test_controller.ex:9 #: lib/pleroma/tests/auth_test_controller.ex:9
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6
#: lib/pleroma/web/admin_api/controllers/chat_controller.ex:6 lib/pleroma/web/admin_api/controllers/config_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6
#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 lib/pleroma/web/admin_api/controllers/frontend_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/announcement_controller.ex:6
#: lib/pleroma/web/admin_api/controllers/instance_controller.ex:6 lib/pleroma/web/admin_api/controllers/instance_document_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/chat_controller.ex:6
#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/config_controller.ex:6
#: lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex:6 lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6
#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 lib/pleroma/web/admin_api/controllers/status_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/frontend_controller.ex:6
#: lib/pleroma/web/admin_api/controllers/user_controller.ex:6 lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/instance_controller.ex:6
#: lib/pleroma/web/fallback/redirect_controller.ex:6 lib/pleroma/web/feed/tag_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/instance_document_controller.ex:6
#: lib/pleroma/web/feed/user_controller.ex:6 lib/pleroma/web/mailer/subscription_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6
#: lib/pleroma/web/manifest_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:11 lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/relay_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/directory_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/report_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/status_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/user_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 #: lib/pleroma/web/controller_helper.ex:6
#: lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 #: lib/pleroma/web/embed_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 #: lib/pleroma/web/fallback/redirect_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/report_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 #: lib/pleroma/web/feed/tag_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 #: lib/pleroma/web/feed/user_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 #: lib/pleroma/web/mailer/subscription_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 #: lib/pleroma/web/manifest_controller.ex:6
#: lib/pleroma/web/mongoose_im/mongoose_im_controller.ex:6 lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6
#: lib/pleroma/web/o_auth/fallback_controller.ex:6 lib/pleroma/web/o_auth/mfa_controller.ex:10 #: lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex:6
#: lib/pleroma/web/o_auth/o_auth_controller.ex:6 lib/pleroma/web/o_status/o_status_controller.ex:6 #: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:11
#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/app_controller.ex:6 #: lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/backup_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 #: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:6 #: lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 #: lib/pleroma/web/mastodon_api/controllers/directory_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/instances_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 #: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/report_controller.ex:6 #: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14
#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/report_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7
#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6
#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6
#: lib/pleroma/web/mongoose_im/mongoose_im_controller.ex:6
#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6
#: lib/pleroma/web/o_auth/fallback_controller.ex:6
#: lib/pleroma/web/o_auth/mfa_controller.ex:10
#: lib/pleroma/web/o_auth/o_auth_controller.ex:6
#: lib/pleroma/web/o_status/o_status_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/app_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/backup_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5
#: lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/instances_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/report_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 #: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6
#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex:6 #: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7
#: lib/pleroma/web/static_fe/static_fe_controller.ex:6 lib/pleroma/web/twitter_api/controller.ex:6 #: lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex:6
#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 #: lib/pleroma/web/static_fe/static_fe_controller.ex:6
#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/uploader_controller.ex:6 #: lib/pleroma/web/twitter_api/controller.ex:6
#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10
#: lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6
#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6
#: lib/pleroma/web/uploader_controller.ex:6
#: lib/pleroma/web/web_finger/web_finger_controller.ex:6 #: lib/pleroma/web/web_finger/web_finger_controller.ex:6
msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:32 #: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:32
msgid "Two-factor authentication enabled, you must use a access token." msgid "Two-factor authentication enabled, you must use a access token."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61
msgid "Web push subscription is disabled on this Pleroma instance" msgid "Web push subscription is disabled on this Pleroma instance"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:234 #: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:234
msgid "You can't revoke your own admin/moderator status." msgid "You can't revoke your own admin/moderator status."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:129 #: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:129
msgid "authorization required for timeline view" msgid "authorization required for timeline view"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24 #: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24
msgid "Access denied" msgid "Access denied"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:321 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:322
msgid "This API requires an authenticated user" msgid "This API requires an authenticated user"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:26 #: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:26
#: lib/pleroma/web/plugs/user_is_admin_plug.ex:21 #: lib/pleroma/web/plugs/user_is_admin_plug.ex:21
msgid "User is not an admin." msgid "User is not an admin."
@ -531,33 +578,33 @@ msgid_plural "Last export was less than %{days} days ago"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/user/backup.ex:93 #: lib/pleroma/user/backup.ex:93
msgid "Backups require enabled email" msgid "Backups require enabled email"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:423 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:434
msgid "Character limit (%{limit} characters) exceeded, contains %{length} characters" msgid "Character limit (%{limit} characters) exceeded, contains %{length} characters"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/user/backup.ex:98 #: lib/pleroma/user/backup.ex:98
msgid "Email is required" msgid "Email is required"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/common_api/utils.ex:507 #: lib/pleroma/web/common_api/utils.ex:507
msgid "Too many attachments" msgid "Too many attachments"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:33 #: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:33
#: lib/pleroma/web/plugs/user_is_staff_plug.ex:20 #: lib/pleroma/web/plugs/user_is_staff_plug.ex:20
msgid "User is not a staff member." msgid "User is not a staff member."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/o_auth/o_auth_controller.ex:366 #: lib/pleroma/web/o_auth/o_auth_controller.ex:366
msgid "Your account is awaiting approval." msgid "Your account is awaiting approval."
msgstr "" msgstr ""

View file

@ -10,393 +10,393 @@
msgid "" msgid ""
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9
msgctxt "remote follow authorization button" msgctxt "remote follow authorization button"
msgid "Authorize" msgid "Authorize"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2
msgctxt "remote follow error" msgctxt "remote follow error"
msgid "Error fetching user" msgid "Error fetching user"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4
msgctxt "remote follow header" msgctxt "remote follow header"
msgid "Remote follow" msgid "Remote follow"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:8 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:8
msgctxt "placeholder text for auth code entry" msgctxt "placeholder text for auth code entry"
msgid "Authentication code" msgid "Authentication code"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:10 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:10
msgctxt "placeholder text for password entry" msgctxt "placeholder text for password entry"
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:8 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:8
msgctxt "placeholder text for username entry" msgctxt "placeholder text for username entry"
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:13 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:13
msgctxt "remote follow authorization button for login" msgctxt "remote follow authorization button for login"
msgid "Authorize" msgid "Authorize"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:12 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:12
msgctxt "remote follow authorization button for mfa" msgctxt "remote follow authorization button for mfa"
msgid "Authorize" msgid "Authorize"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2 #: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2
msgctxt "remote follow error" msgctxt "remote follow error"
msgid "Error following account" msgid "Error following account"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:4 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:4
msgctxt "remote follow header, need login" msgctxt "remote follow header, need login"
msgid "Log in to follow" msgid "Log in to follow"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:4 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:4
msgctxt "remote follow mfa header" msgctxt "remote follow mfa header"
msgid "Two-factor authentication" msgid "Two-factor authentication"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4 #: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4
msgctxt "remote follow success" msgctxt "remote follow success"
msgid "Account followed!" msgid "Account followed!"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7 #: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7
msgctxt "placeholder text for account id" msgctxt "placeholder text for account id"
msgid "Your account ID, e.g. lain@quitter.se" msgid "Your account ID, e.g. lain@quitter.se"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8 #: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8
msgctxt "remote follow authorization button for following with a remote account" msgctxt "remote follow authorization button for following with a remote account"
msgid "Follow" msgid "Follow"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2 #: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2
msgctxt "remote follow error" msgctxt "remote follow error"
msgid "Error: %{error}" msgid "Error: %{error}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4 #: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4
msgctxt "remote follow header" msgctxt "remote follow header"
msgid "Remotely follow %{nickname}" msgid "Remotely follow %{nickname}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12 #: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12
msgctxt "password reset button" msgctxt "password reset button"
msgid "Reset" msgid "Reset"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4 #: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4
msgctxt "password reset failed homepage link" msgctxt "password reset failed homepage link"
msgid "Homepage" msgid "Homepage"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1 #: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1
msgctxt "password reset failed message" msgctxt "password reset failed message"
msgid "Password reset failed" msgid "Password reset failed"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8 #: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8
msgctxt "password reset form confirm password prompt" msgctxt "password reset form confirm password prompt"
msgid "Confirmation" msgid "Confirmation"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4 #: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4
msgctxt "password reset form password prompt" msgctxt "password reset form password prompt"
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1 #: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1
msgctxt "password reset invalid token message" msgctxt "password reset invalid token message"
msgid "Invalid Token" msgid "Invalid Token"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2 #: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2
msgctxt "password reset successful homepage link" msgctxt "password reset successful homepage link"
msgid "Homepage" msgid "Homepage"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1 #: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1
msgctxt "password reset successful message" msgctxt "password reset successful message"
msgid "Password changed!" msgid "Password changed!"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/feed/feed/tag.atom.eex:15 #: lib/pleroma/web/templates/feed/feed/tag.atom.eex:15
#: lib/pleroma/web/templates/feed/feed/tag.rss.eex:7 #: lib/pleroma/web/templates/feed/feed/tag.rss.eex:7
msgctxt "tag feed description" msgctxt "tag feed description"
msgid "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse." msgid "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:1 #: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:1
msgctxt "oauth authorization exists page title" msgctxt "oauth authorization exists page title"
msgid "Authorization exists" msgid "Authorization exists"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32
msgctxt "oauth authorize approve button" msgctxt "oauth authorize approve button"
msgid "Approve" msgid "Approve"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30
msgctxt "oauth authorize cancel button" msgctxt "oauth authorize cancel button"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23
msgctxt "oauth authorize message" msgctxt "oauth authorize message"
msgid "Application <strong>%{client_name}</strong> is requesting access to your account." msgid "Application <strong>%{client_name}</strong> is requesting access to your account."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:1 #: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:1
msgctxt "oauth authorized page title" msgctxt "oauth authorized page title"
msgid "Successfully authorized" msgid "Successfully authorized"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1 #: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1
msgctxt "oauth external provider page title" msgctxt "oauth external provider page title"
msgid "Sign in with external provider" msgid "Sign in with external provider"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13 #: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13
msgctxt "oauth external provider sign in button" msgctxt "oauth external provider sign in button"
msgid "Sign in with %{strategy}" msgid "Sign in with %{strategy}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54
msgctxt "oauth login button" msgctxt "oauth login button"
msgid "Log In" msgid "Log In"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51
msgctxt "oauth login password prompt" msgctxt "oauth login password prompt"
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47
msgctxt "oauth login username prompt" msgctxt "oauth login username prompt"
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39
msgctxt "oauth register nickname prompt" msgctxt "oauth register nickname prompt"
msgid "Pleroma Handle" msgid "Pleroma Handle"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37
msgctxt "oauth register nickname unchangeable warning" msgctxt "oauth register nickname unchangeable warning"
msgid "Choose carefully! You won't be able to change this later. You will be able to change your display name, though." msgid "Choose carefully! You won't be able to change this later. You will be able to change your display name, though."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18
msgctxt "oauth register page email prompt" msgctxt "oauth register page email prompt"
msgid "Email" msgid "Email"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10
msgctxt "oauth register page fill form prompt" msgctxt "oauth register page fill form prompt"
msgid "If you'd like to register a new account, please provide the details below." msgid "If you'd like to register a new account, please provide the details below."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35
msgctxt "oauth register page login button" msgctxt "oauth register page login button"
msgid "Proceed as existing user" msgid "Proceed as existing user"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31
msgctxt "oauth register page login password prompt" msgctxt "oauth register page login password prompt"
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24
msgctxt "oauth register page login prompt" msgctxt "oauth register page login prompt"
msgid "Alternatively, sign in to connect to existing account." msgid "Alternatively, sign in to connect to existing account."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27
msgctxt "oauth register page login username prompt" msgctxt "oauth register page login username prompt"
msgid "Name or email" msgid "Name or email"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14
msgctxt "oauth register page nickname prompt" msgctxt "oauth register page nickname prompt"
msgid "Nickname" msgid "Nickname"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22
msgctxt "oauth register page register button" msgctxt "oauth register page register button"
msgid "Proceed as new user" msgid "Proceed as new user"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8
msgctxt "oauth register page title" msgctxt "oauth register page title"
msgid "Registration Details" msgid "Registration Details"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36
msgctxt "oauth register page title" msgctxt "oauth register page title"
msgid "This is the first time you visit! Please enter your Pleroma handle." msgid "This is the first time you visit! Please enter your Pleroma handle."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2 #: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2
msgctxt "oauth scopes message" msgctxt "oauth scopes message"
msgid "The following permissions will be granted" msgid "The following permissions will be granted"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:2 #: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:2
#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:2 #: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:2
msgctxt "oauth token code message" msgctxt "oauth token code message"
msgid "Token code is <br>%{token}" msgid "Token code is <br>%{token}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12 #: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12
msgctxt "mfa auth code prompt" msgctxt "mfa auth code prompt"
msgid "Authentication code" msgid "Authentication code"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8 #: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8
msgctxt "mfa auth page title" msgctxt "mfa auth page title"
msgid "Two-factor authentication" msgid "Two-factor authentication"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23 #: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23
msgctxt "mfa auth page use recovery code link" msgctxt "mfa auth page use recovery code link"
msgid "Enter a two-factor recovery code" msgid "Enter a two-factor recovery code"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20 #: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20
msgctxt "mfa auth verify code button" msgctxt "mfa auth verify code button"
msgid "Verify" msgid "Verify"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8 #: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8
msgctxt "mfa recover page title" msgctxt "mfa recover page title"
msgid "Two-factor recovery" msgid "Two-factor recovery"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12 #: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12
msgctxt "mfa recover recovery code prompt" msgctxt "mfa recover recovery code prompt"
msgid "Recovery code" msgid "Recovery code"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23 #: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23
msgctxt "mfa recover use 2fa code link" msgctxt "mfa recover use 2fa code link"
msgid "Enter a two-factor code" msgid "Enter a two-factor code"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20 #: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20
msgctxt "mfa recover verify recovery code button" msgctxt "mfa recover verify recovery code button"
msgid "Verify" msgid "Verify"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8 #: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8
msgctxt "static fe profile page remote follow button" msgctxt "static fe profile page remote follow button"
msgid "Remote follow" msgid "Remote follow"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/email/digest.html.eex:163 #: lib/pleroma/web/templates/email/digest.html.eex:163
msgctxt "digest email header line" msgctxt "digest email header line"
msgid "Hey %{nickname}, here is what you've missed!" msgid "Hey %{nickname}, here is what you've missed!"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/email/digest.html.eex:544 #: lib/pleroma/web/templates/email/digest.html.eex:544
msgctxt "digest email receiver address" msgctxt "digest email receiver address"
msgid "The email address you are subscribed as is <a href='mailto:%{@user.email}' style='color: %{color};text-decoration: none;'>%{email}</a>. " msgid "The email address you are subscribed as is <a href='mailto:%{@user.email}' style='color: %{color};text-decoration: none;'>%{email}</a>. "
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/email/digest.html.eex:538 #: lib/pleroma/web/templates/email/digest.html.eex:538
msgctxt "digest email sending reason" msgctxt "digest email sending reason"
msgid "You have received this email because you have signed up to receive digest emails from <b>%{instance}</b> Pleroma instance." msgid "You have received this email because you have signed up to receive digest emails from <b>%{instance}</b> Pleroma instance."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/email/digest.html.eex:547 #: lib/pleroma/web/templates/email/digest.html.eex:547
msgctxt "digest email unsubscribe action" msgctxt "digest email unsubscribe action"
msgid "To unsubscribe, please go %{here}." msgid "To unsubscribe, please go %{here}."
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/email/digest.html.eex:547 #: lib/pleroma/web/templates/email/digest.html.eex:547
msgctxt "digest email unsubscribe action link text" msgctxt "digest email unsubscribe action link text"
msgid "here" msgid "here"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1 #: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1
msgctxt "mailer unsubscribe failed message" msgctxt "mailer unsubscribe failed message"
msgid "UNSUBSCRIBE FAILURE" msgid "UNSUBSCRIBE FAILURE"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1 #: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1
msgctxt "mailer unsubscribe successful message" msgctxt "mailer unsubscribe successful message"
msgid "UNSUBSCRIBE SUCCESSFUL" msgid "UNSUBSCRIBE SUCCESSFUL"
@ -410,103 +410,103 @@ msgid_plural "%{count} New Followers"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:356 #: lib/pleroma/emails/user_email.ex:356
msgctxt "account archive email body - self-requested" msgctxt "account archive email body - self-requested"
msgid "<p>You requested a full backup of your Pleroma account. It's ready for download:</p>\n<p><a href=\"%{download_url}\">%{download_url}</a></p>\n" msgid "<p>You requested a full backup of your Pleroma account. It's ready for download:</p>\n<p><a href=\"%{download_url}\">%{download_url}</a></p>\n"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:384 #: lib/pleroma/emails/user_email.ex:384
msgctxt "account archive email subject" msgctxt "account archive email subject"
msgid "Your account archive is ready" msgid "Your account archive is ready"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:188 #: lib/pleroma/emails/user_email.ex:188
msgctxt "approval pending email body" msgctxt "approval pending email body"
msgid "<h3>Awaiting Approval</h3>\n<p>Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.</p>\n" msgid "<h3>Awaiting Approval</h3>\n<p>Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.</p>\n"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:202 #: lib/pleroma/emails/user_email.ex:202
msgctxt "approval pending email subject" msgctxt "approval pending email subject"
msgid "Your account is awaiting approval" msgid "Your account is awaiting approval"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:158 #: lib/pleroma/emails/user_email.ex:158
msgctxt "confirmation email body" msgctxt "confirmation email body"
msgid "<h3>Thank you for registering on %{instance_name}</h3>\n<p>Email confirmation is required to activate the account.</p>\n<p>Please click the following link to <a href=\"%{confirmation_url}\">activate your account</a>.</p>\n" msgid "<h3>Thank you for registering on %{instance_name}</h3>\n<p>Email confirmation is required to activate the account.</p>\n<p>Please click the following link to <a href=\"%{confirmation_url}\">activate your account</a>.</p>\n"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:174 #: lib/pleroma/emails/user_email.ex:174
msgctxt "confirmation email subject" msgctxt "confirmation email subject"
msgid "%{instance_name} account confirmation" msgid "%{instance_name} account confirmation"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:310 #: lib/pleroma/emails/user_email.ex:310
msgctxt "digest email subject" msgctxt "digest email subject"
msgid "Your digest from %{instance_name}" msgid "Your digest from %{instance_name}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:81 #: lib/pleroma/emails/user_email.ex:81
msgctxt "password reset email body" msgctxt "password reset email body"
msgid "<h3>Reset your password at %{instance_name}</h3>\n<p>Someone has requested password change for your account at %{instance_name}.</p>\n<p>If it was you, visit the following link to proceed: <a href=\"%{password_reset_url}\">reset password</a>.</p>\n<p>If it was someone else, nothing to worry about: your data is secure and your password has not been changed.</p>\n" msgid "<h3>Reset your password at %{instance_name}</h3>\n<p>Someone has requested password change for your account at %{instance_name}.</p>\n<p>If it was you, visit the following link to proceed: <a href=\"%{password_reset_url}\">reset password</a>.</p>\n<p>If it was someone else, nothing to worry about: your data is secure and your password has not been changed.</p>\n"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:98 #: lib/pleroma/emails/user_email.ex:98
msgctxt "password reset email subject" msgctxt "password reset email subject"
msgid "Password reset" msgid "Password reset"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:215 #: lib/pleroma/emails/user_email.ex:215
msgctxt "successful registration email body" msgctxt "successful registration email body"
msgid "<h3>Hello @%{nickname},</h3>\n<p>Your account at %{instance_name} has been registered successfully.</p>\n<p>No further action is required to activate your account.</p>\n" msgid "<h3>Hello @%{nickname},</h3>\n<p>Your account at %{instance_name} has been registered successfully.</p>\n<p>No further action is required to activate your account.</p>\n"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:231 #: lib/pleroma/emails/user_email.ex:231
msgctxt "successful registration email subject" msgctxt "successful registration email subject"
msgid "Account registered on %{instance_name}" msgid "Account registered on %{instance_name}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:119 #: lib/pleroma/emails/user_email.ex:119
msgctxt "user invitation email body" msgctxt "user invitation email body"
msgid "<h3>You are invited to %{instance_name}</h3>\n<p>%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.</p>\n<p>Click the following link to register: <a href=\"%{registration_url}\">accept invitation</a>.</p>\n" msgid "<h3>You are invited to %{instance_name}</h3>\n<p>%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.</p>\n<p>Click the following link to register: <a href=\"%{registration_url}\">accept invitation</a>.</p>\n"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:136 #: lib/pleroma/emails/user_email.ex:136
msgctxt "user invitation email subject" msgctxt "user invitation email subject"
msgid "Invitation to %{instance_name}" msgid "Invitation to %{instance_name}"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:53 #: lib/pleroma/emails/user_email.ex:53
msgctxt "welcome email html body" msgctxt "welcome email html body"
msgid "Welcome to %{instance_name}!" msgid "Welcome to %{instance_name}!"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:41 #: lib/pleroma/emails/user_email.ex:41
msgctxt "welcome email subject" msgctxt "welcome email subject"
msgid "Welcome to %{instance_name}!" msgid "Welcome to %{instance_name}!"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:65 #: lib/pleroma/emails/user_email.ex:65
msgctxt "welcome email text body" msgctxt "welcome email text body"
msgid "Welcome to %{instance_name}!" msgid "Welcome to %{instance_name}!"
msgstr "" msgstr ""
#, elixir-format #, elixir-autogen, elixir-format
#: lib/pleroma/emails/user_email.ex:368 #: lib/pleroma/emails/user_email.ex:368
msgctxt "account archive email body - admin requested" msgctxt "account archive email body - admin requested"
msgid "<p>Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:</p>\n<p><a href=\"%{download_url}\">%{download_url}</a></p>\n" msgid "<p>Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:</p>\n<p><a href=\"%{download_url}\">%{download_url}</a></p>\n"

View file

@ -0,0 +1,90 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Docs.Translator.CompilerTest do
use ExUnit.Case, async: true
alias Pleroma.Docs.Translator.Compiler
@descriptions [
%{
key: "1",
label: "1",
description: "2",
children: [
%{
key: "3",
label: "3",
description: "4"
},
%{
key: "5",
label: "5",
description: "6"
}
]
},
%{
key: "7",
label: "7",
description: "8",
children: [
%{
key: "9",
description: "9",
children: [
%{
key: "10",
description: "10",
children: [
%{key: "11", description: "11"},
%{description: "12"}
]
}
]
},
%{
label: "13"
}
]
},
%{
group: "14",
label: "14"
},
%{
group: "15",
key: "15",
label: "15"
},
%{
group: {":subgroup", "16"},
label: "16"
}
]
describe "extract_strings/1" do
test "it extracts all labels and descriptions" do
strings = Compiler.extract_strings(@descriptions)
assert length(strings) == 16
assert {["1"], "label", "1"} in strings
assert {["1"], "description", "2"} in strings
assert {["1", "3"], "label", "3"} in strings
assert {["1", "3"], "description", "4"} in strings
assert {["1", "5"], "label", "5"} in strings
assert {["1", "5"], "description", "6"} in strings
assert {["7"], "label", "7"} in strings
assert {["7"], "description", "8"} in strings
assert {["7", "9"], "description", "9"} in strings
assert {["7", "9", "10"], "description", "10"} in strings
assert {["7", "9", "10", "11"], "description", "11"} in strings
assert {["7", "9", "10", nil], "description", "12"} in strings
assert {["7", nil], "label", "13"} in strings
assert {["14"], "label", "14"} in strings
assert {["15-15"], "label", "15"} in strings
assert {["16"], "label", "16"} in strings
end
end
end