Merge branch 'develop' into fedora-install

This commit is contained in:
Norm 2022-08-05 05:03:00 +00:00
commit 499d8a1056
20 changed files with 696 additions and 343 deletions

24
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1,24 @@
# Akkoma Code of Conduct
The Akkoma project aims to be **enjoyable** for anyone to participate in, regardless of their identity or level of expertise. To achieve this, the community must create an environment which is **safe** and **equitable**; the following guidelines have been created with these goals in mind.
1. **Treat individuals with respect.** Differing experiences and viewpoints deserve to be respected, and bigotry and harassment are not tolerated under any circumstances.
- Individuals should at all times be treated as equals, regardless of their age, gender, sexuality, race, ethnicity, _or any other characteristic_, intrinsic or otherwise.
- Behaviour that is harmful in nature should be addressed and corrected *regardless of intent*.
- Respect personal boundaries and ask for clarification whenever they are unclear.
- (Obviously, hate does not count as merely a "differing viewpoint", because it is harmful in nature.)
2. **Be understanding of differences in communication.** Not everyone is aware of unspoken social cues, and speech that is not intended to be offensive should not be treated as such simply due to an atypical manner of communication.
- Somebody who speaks bluntly is not necessarily rude, and somebody who swears a lot is not necessarily volatile.
- Try to confirm your interpretation of their intent rather than assuming bad faith.
- Someone may not communicate as, or come across as a picture of "professionalism", but this should not be seen as a reason to dismiss them. This is a **casual** space, and communication styles can reflect that.
3. **"Uncomfortable" does not mean "unsafe".** In an ideal world, the community would be safe, equitable, enjoyable, *and* comfortable for all members at all times. Unfortunately, this is not always possible in reality.
- Safety and equity will be prioritized over comfort whenever it is necessary to do so.
- Weaponizing one's own discomfort to deflect accountability or censor an individual (e.g. "white fragility") is a form of discriminatory conduct.
4. **Let people grow from their mistakes.** Nobody is perfect; even the most well-meaning individual can do something hurtful. Everyone should be given a fair opportunity to explain themselves and correct their behaviour. Portraying someone as inherently malicious prevents improvement and shifts focus away from the *action* that was problematic.
- Avoid bringing up past events that do not accurately reflect an individual's current actions or beliefs. (This is, of course, different from providing evidence of a recurring pattern of behaviour.)
---
This document was adapted from one created by ~keith as part of punks default repository template, and is licensed under CC-BY-SA 4.0. The original template is here: <https://bytes.keithhacks.cyou/keith/default-template>

View file

@ -1,7 +1,7 @@
## Required dependencies ## Required dependencies
* PostgreSQL 9.6+ * PostgreSQL 9.6+
* Elixir 1.9+ * Elixir 1.12+ (1.13+ recommended)
* Erlang OTP 22.2+ * Erlang OTP 22.2+
* git * git
* file / libmagic * file / libmagic

View file

@ -14,10 +14,10 @@ def load(config, opts) do
config_path = config_path =
cond do cond do
opts[:config_path] -> opts[:config_path] opts[:config_path] -> opts[:config_path]
System.get_env("PLEROMA_CONFIG_PATH") -> System.get_env("PLEROMA_CONFIG_PATH")
System.get_env("AKKOMA_CONFIG_PATH") -> System.get_env("AKKOMA_CONFIG_PATH") System.get_env("AKKOMA_CONFIG_PATH") -> System.get_env("AKKOMA_CONFIG_PATH")
File.exists?("/etc/akkoma/config.exs") -> "/etc/akkoma/config.exs" System.get_env("PLEROMA_CONFIG_PATH") -> System.get_env("PLEROMA_CONFIG_PATH")
true -> "/etc/pleroma/config.exs" File.exists?("/etc/pleroma/config.exs") -> "/etc/pleroma/config.exs"
true -> "/etc/akkoma/config.exs"
end end
with_runtime_config = with_runtime_config =
@ -31,7 +31,7 @@ def load(config, opts) do
warning = [ warning = [
IO.ANSI.red(), IO.ANSI.red(),
IO.ANSI.bright(), IO.ANSI.bright(),
"!!! Config path is not declared! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file", "!!! Config path is not declared! Please ensure it exists and that AKKOMA_CONFIG_PATH and/or PLEROMA_CONFIG_PATH is unset or points to an existing file",
IO.ANSI.reset() IO.ANSI.reset()
] ]

View file

@ -83,13 +83,4 @@ defp build_request(method, headers, options, url, body, params) do
|> Builder.add_param(:query, :query, params) |> Builder.add_param(:query, :query, params)
|> Builder.convert_to_keyword() |> Builder.convert_to_keyword()
end end
defp adapter_middlewares(_) do
if Pleroma.Config.get(:env) == :test do
# Emulate redirects in test env, which are handled by adapters in other environments
[Tesla.Middleware.FollowRedirects]
else
[]
end
end
end end

View file

@ -32,9 +32,7 @@ defmodule Pleroma.User.Backup do
end end
def create(user, admin_id \\ nil) do def create(user, admin_id \\ nil) do
with :ok <- validate_email_enabled(), with :ok <- validate_limit(user, admin_id),
:ok <- validate_user_email(user),
:ok <- validate_limit(user, admin_id),
{:ok, backup} <- user |> new() |> Repo.insert() do {:ok, backup} <- user |> new() |> Repo.insert() do
BackupWorker.process(backup, admin_id) BackupWorker.process(backup, admin_id)
end end
@ -86,20 +84,6 @@ defp validate_limit(user, nil) do
end end
end end
defp validate_email_enabled do
if Pleroma.Config.get([Pleroma.Emails.Mailer, :enabled]) do
:ok
else
{:error, dgettext("errors", "Backups require enabled email")}
end
end
defp validate_user_email(%User{email: nil}) do
{:error, dgettext("errors", "Email is required")}
end
defp validate_user_email(%User{email: email}) when is_binary(email), do: :ok
def get_last(user_id) do def get_last(user_id) do
__MODULE__ __MODULE__
|> where(user_id: ^user_id) |> where(user_id: ^user_id)

View file

@ -474,7 +474,16 @@ def handle_incoming(
|> fix_in_reply_to(fetch_options) |> fix_in_reply_to(fetch_options)
|> fix_quote_url(fetch_options) |> fix_quote_url(fetch_options)
data = Map.put(data, "object", object) # Only change the Create's context if the object's context has been modified.
data =
if data["object"]["context"] != object["context"] do
data
|> Map.put("object", object)
|> Map.put("context", object["context"])
else
Map.put(data, "object", object)
end
options = Keyword.put(options, :local, false) options = Keyword.put(options, :local, false)
with {:ok, %User{}} <- ObjectValidator.fetch_actor(data), with {:ok, %User{}} <- ObjectValidator.fetch_actor(data),

View file

@ -37,10 +37,7 @@ def perform(%Job{
backup_id |> Backup.get() |> Backup.process(), backup_id |> Backup.get() |> Backup.process(),
{:ok, _job} <- schedule_deletion(backup), {:ok, _job} <- schedule_deletion(backup),
:ok <- Backup.remove_outdated(backup), :ok <- Backup.remove_outdated(backup),
{:ok, _} <- :ok <- maybe_deliver_email(backup, admin_user_id) do
backup
|> Pleroma.Emails.UserEmail.backup_is_ready_email(admin_user_id)
|> Pleroma.Emails.Mailer.deliver() do
{:ok, backup} {:ok, backup}
end end
end end
@ -51,4 +48,23 @@ def perform(%Job{args: %{"op" => "delete", "backup_id" => backup_id}}) do
nil -> :ok nil -> :ok
end end
end end
defp has_email?(user) do
not is_nil(user.email) and user.email != ""
end
defp maybe_deliver_email(backup, admin_user_id) do
has_mailer = Pleroma.Config.get([Pleroma.Emails.Mailer, :enabled])
backup = backup |> Pleroma.Repo.preload(:user)
if has_email?(backup.user) and has_mailer do
backup
|> Pleroma.Emails.UserEmail.backup_is_ready_email(admin_user_id)
|> Pleroma.Emails.Mailer.deliver()
:ok
else
:ok
end
end
end end

View file

@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-28 09:35+0000\n" "POT-Creation-Date: 2022-07-28 09:35+0000\n"
"PO-Revision-Date: 2022-07-28 09:36+0000\n" "PO-Revision-Date: 2022-07-30 21:58+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n" "Last-Translator: sola <spla@mastodont.cat>\n"
"Language-Team: Catalan <http://translate.akkoma.dev/projects/akkoma/" "Language-Team: Catalan <http://translate.akkoma.dev/projects/akkoma/"
"akkoma-backend-config-descriptions/ca/>\n" "akkoma-backend-config-descriptions/ca/>\n"
"Language: ca\n" "Language: ca\n"
@ -33,16 +33,16 @@ msgstr ""
"m PEM -N \"\" -b 2048 -t rsa -f ssh_host_rsa_key" "m PEM -N \"\" -b 2048 -t rsa -f ssh_host_rsa_key"
#: lib/pleroma/docs/translator.ex:5 #: lib/pleroma/docs/translator.ex:5
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format
msgctxt "config description at :logger" msgctxt "config description at :logger"
msgid "Logger-related settings" msgid "Logger-related settings"
msgstr "Logger-related settings" msgstr "Configuració relacionada amb el registrador(Log)"
#: lib/pleroma/docs/translator.ex:5 #: lib/pleroma/docs/translator.ex:5
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format
msgctxt "config description at :mime" msgctxt "config description at :mime"
msgid "Mime Types settings" msgid "Mime Types settings"
msgstr "Mime Types settings" msgstr "Configuració de tipus Mime"
#: lib/pleroma/docs/translator.ex:5 #: lib/pleroma/docs/translator.ex:5
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
@ -55,16 +55,16 @@ msgstr ""
"Auth or OAuth-based authentication if possible)" "Auth or OAuth-based authentication if possible)"
#: lib/pleroma/docs/translator.ex:5 #: lib/pleroma/docs/translator.ex:5
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format
msgctxt "config description at :pleroma" msgctxt "config description at :pleroma"
msgid "Authenticator" msgid "Authenticator"
msgstr "Authenticator" msgstr "Autenticador"
#: lib/pleroma/docs/translator.ex:5 #: lib/pleroma/docs/translator.ex:5
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format
msgctxt "config description at :quack" msgctxt "config description at :quack"
msgid "Quack-related settings" msgid "Quack-related settings"
msgstr "Quack-related settings" msgstr "Configuració relacionada amb Quack"
#: lib/pleroma/docs/translator.ex:5 #: lib/pleroma/docs/translator.ex:5
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy

View file

@ -12,232 +12,204 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 3.7.1\n" "X-Generator: Translate Toolkit 3.7.1\n"
## This file is a PO Template file. # # This file is a PO Template file.
## # #
## `msgid`s here are often extracted from source code. # # `msgid`s here are often extracted from source code.
## Add new translations manually only if they're dynamic # # Add new translations manually only if they're dynamic
## translations that can't be statically extracted. # # translations that can't be statically extracted.
## # #
## Run `mix gettext.extract` to bring this file up to # # Run `mix gettext.extract` to bring this file up to
## date. Leave `msgstr`s empty as changing them here as no # # date. Leave `msgstr`s empty as changing them here as no
## effect: edit them in PO (`.po`) files instead. # # effect: edit them in PO (`.po`) files instead.
## From Ecto.Changeset.cast/4 # # From Ecto.Changeset.cast/4
msgid "can't be blank" msgid "can't be blank"
msgstr "" msgstr "No pot estar en blanc"
## From Ecto.Changeset.unique_constraint/3 # # From Ecto.Changeset.unique_constraint/3
msgid "has already been taken" msgid "has already been taken"
msgstr "" msgstr "ja s'ha agafat"
## From Ecto.Changeset.put_change/3 # # From Ecto.Changeset.put_change/3
msgid "is invalid" msgid "is invalid"
msgstr "" msgstr "és invàlid"
## From Ecto.Changeset.validate_format/3 # # From Ecto.Changeset.validate_format/3
msgid "has invalid format" msgid "has invalid format"
msgstr "" msgstr "té format invàlid"
## From Ecto.Changeset.validate_subset/3 # # From Ecto.Changeset.validate_subset/3
msgid "has an invalid entry" msgid "has an invalid entry"
msgstr "" msgstr "té una entrada no vàlida"
## From Ecto.Changeset.validate_exclusion/3 # # From Ecto.Changeset.validate_exclusion/3
msgid "is reserved" msgid "is reserved"
msgstr "" msgstr "està reservat"
## From Ecto.Changeset.validate_confirmation/3 # # From Ecto.Changeset.validate_confirmation/3
msgid "does not match confirmation" msgid "does not match confirmation"
msgstr "" msgstr "no coincideix amb la confirmació"
## From Ecto.Changeset.no_assoc_constraint/3 # # From Ecto.Changeset.no_assoc_constraint/3
msgid "is still associated with this entry" msgid "is still associated with this entry"
msgstr "" msgstr "està encara associat amb aquesta entrada"
msgid "are still associated with this entry" msgid "are still associated with this entry"
msgstr "" msgstr "estan encara associats amb aquesta entrada"
## From Ecto.Changeset.validate_length/3 # # From Ecto.Changeset.validate_length/3
msgid "should be %{count} character(s)" msgid "should be %{count} character(s)"
msgid_plural "should be %{count} character(s)" msgid_plural "should be %{count} character(s)"
msgstr[0] "" msgstr[0] "hauria de ser %{count} caràcter"
msgstr[1] "" msgstr[1] "hauria de ser %{count} caràcters"
msgid "should have %{count} item(s)" msgid "should have %{count} item(s)"
msgid_plural "should have %{count} item(s)" msgid_plural "should have %{count} item(s)"
msgstr[0] "" msgstr[0] "hauria de tenir %{count} article"
msgstr[1] "" msgstr[1] "hauria de tenir %{count} articles"
msgid "should be at least %{count} character(s)" msgid "should be at least %{count} character(s)"
msgid_plural "should be at least %{count} character(s)" msgid_plural "should be at least %{count} character(s)"
msgstr[0] "" msgstr[0] "hauria de ser al menys %{count} caràcter"
msgstr[1] "" msgstr[1] "hauria de ser al menys %{count} caràcters"
msgid "should have at least %{count} item(s)" msgid "should have at least %{count} item(s)"
msgid_plural "should have at least %{count} item(s)" msgid_plural "should have at least %{count} item(s)"
msgstr[0] "" msgstr[0] "hauria de tenir al menys %{count} article"
msgstr[1] "" msgstr[1] "hauria de tenir al menys %{count} articles"
msgid "should be at most %{count} character(s)" msgid "should be at most %{count} character(s)"
msgid_plural "should be at most %{count} character(s)" msgid_plural "should be at most %{count} character(s)"
msgstr[0] "" msgstr[0] "hauria de ser com a molt %{count} caràcter"
msgstr[1] "" msgstr[1] "hauria de ser com a molt %{count} caràcters"
msgid "should have at most %{count} item(s)" msgid "should have at most %{count} item(s)"
msgid_plural "should have at most %{count} item(s)" msgid_plural "should have at most %{count} item(s)"
msgstr[0] "" msgstr[0] "com a molt hauria de ser %{count} article"
msgstr[1] "" msgstr[1] "com a molt haurien de ser %{count} articles"
## From Ecto.Changeset.validate_number/3 # # From Ecto.Changeset.validate_number/3
msgid "must be less than %{number}" msgid "must be less than %{number}"
msgstr "" msgstr "ha de ser menor que %{number}"
msgid "must be greater than %{number}" msgid "must be greater than %{number}"
msgstr "" msgstr "ha de ser major que %{number}"
msgid "must be less than or equal to %{number}" msgid "must be less than or equal to %{number}"
msgstr "" msgstr "ha de ser menor o igual a %{number}"
msgid "must be greater than or equal to %{number}" msgid "must be greater than or equal to %{number}"
msgstr "" msgstr "ha de ser més gran o igual a %{number}"
msgid "must be equal to %{number}" msgid "must be equal to %{number}"
msgstr "" msgstr "ha de ser igual a %{number}"
#: lib/pleroma/web/common_api.ex:523 #: lib/pleroma/web/common_api.ex:523
#, elixir-autogen, elixir-format
msgid "Account not found" msgid "Account not found"
msgstr "" msgstr "Compte no trobat"
#: lib/pleroma/web/common_api.ex:316 #: lib/pleroma/web/common_api.ex:316
#, elixir-autogen, elixir-format
msgid "Already voted" msgid "Already voted"
msgstr "" msgstr "Ja votada"
#: lib/pleroma/web/o_auth/o_auth_controller.ex:402 #: lib/pleroma/web/o_auth/o_auth_controller.ex:402
#, elixir-autogen, elixir-format
msgid "Bad request" msgid "Bad request"
msgstr "" msgstr "Mala Sol·licitud"
#: 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
#, elixir-autogen, elixir-format
msgid "Can't display this activity" msgid "Can't display this activity"
msgstr "" msgstr "No es pot mostrar aquesta activitat"
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:325 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:325
#, elixir-autogen, elixir-format
msgid "Can't find user" msgid "Can't find user"
msgstr "" msgstr "No es pot trobar l'usuari"
#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:80 #: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:80
#, elixir-autogen, elixir-format
msgid "Can't get favorites" msgid "Can't get favorites"
msgstr "" msgstr "No es poden obtenir els favorits"
#: lib/pleroma/web/common_api/utils.ex:482 #: lib/pleroma/web/common_api/utils.ex:482
#, elixir-autogen, elixir-format
msgid "Cannot post an empty status without attachments" msgid "Cannot post an empty status without attachments"
msgstr "" msgstr "No es pot publicar un apunt buit sense adjunts"
#: lib/pleroma/web/common_api/utils.ex:441 #: lib/pleroma/web/common_api/utils.ex:441
#, elixir-autogen, elixir-format
msgid "Comment must be up to %{max_size} characters" msgid "Comment must be up to %{max_size} characters"
msgstr "" msgstr "El comentari ha de ser fins a %{max_size} caràcters"
#: lib/pleroma/config_db.ex:200 #: lib/pleroma/config_db.ex:200
#, elixir-autogen, elixir-format
msgid "Config with params %{params} not found" msgid "Config with params %{params} not found"
msgstr "" msgstr "Configuració amb paràmetres %{params} no trobada"
#: lib/pleroma/web/common_api.ex:167 #: lib/pleroma/web/common_api.ex:167 lib/pleroma/web/common_api.ex:171
#: lib/pleroma/web/common_api.ex:171
#, elixir-autogen, elixir-format
msgid "Could not delete" msgid "Could not delete"
msgstr "" msgstr "No es pot esborrar"
#: lib/pleroma/web/common_api.ex:217 #: lib/pleroma/web/common_api.ex:217
#, elixir-autogen, elixir-format
msgid "Could not favorite" msgid "Could not favorite"
msgstr "" msgstr "No es pot afavorir"
#: lib/pleroma/web/common_api.ex:254 #: lib/pleroma/web/common_api.ex:254
#, elixir-autogen, elixir-format
msgid "Could not unfavorite" msgid "Could not unfavorite"
msgstr "" msgstr "No es pot desfer el favorit"
#: lib/pleroma/web/common_api.ex:202 #: lib/pleroma/web/common_api.ex:202
#, elixir-autogen, elixir-format
msgid "Could not unrepeat" msgid "Could not unrepeat"
msgstr "" msgstr "No es pot desfer la repetició"
#: lib/pleroma/web/common_api.ex:530 #: lib/pleroma/web/common_api.ex:530 lib/pleroma/web/common_api.ex:539
#: lib/pleroma/web/common_api.ex:539
#, elixir-autogen, elixir-format
msgid "Could not update state" msgid "Could not update state"
msgstr "" msgstr "No es pot actualitzar l'apunt"
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:205 #: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:205
#, elixir-autogen, elixir-format
msgid "Error." msgid "Error."
msgstr "" msgstr "Error."
#: lib/pleroma/web/twitter_api/twitter_api.ex:105 #: lib/pleroma/web/twitter_api/twitter_api.ex:105
#, elixir-autogen, elixir-format
msgid "Invalid CAPTCHA" msgid "Invalid CAPTCHA"
msgstr "" msgstr "CAPTCHA invàlid"
#: 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
#, elixir-autogen, elixir-format
msgid "Invalid credentials" msgid "Invalid credentials"
msgstr "" msgstr "Credencials invàlides"
#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:42 #: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:42
#, elixir-autogen, elixir-format
msgid "Invalid credentials." msgid "Invalid credentials."
msgstr "" msgstr "Credencials invàlides."
#: lib/pleroma/web/common_api.ex:337 #: lib/pleroma/web/common_api.ex:337
#, elixir-autogen, elixir-format
msgid "Invalid indices" msgid "Invalid indices"
msgstr "" msgstr "Index invàlids"
#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29 #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29
#, elixir-autogen, elixir-format
msgid "Invalid parameters" msgid "Invalid parameters"
msgstr "" msgstr "Paràmetres invàlids"
#: lib/pleroma/web/common_api/utils.ex:349 #: lib/pleroma/web/common_api/utils.ex:349
#, elixir-autogen, elixir-format
msgid "Invalid password." msgid "Invalid password."
msgstr "" msgstr "Contrasenya invàlida."
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:255 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:255
#, elixir-autogen, elixir-format
msgid "Invalid request" msgid "Invalid request"
msgstr "" msgstr "Sol·licitud invàlida"
#: lib/pleroma/web/twitter_api/twitter_api.ex:108 #: lib/pleroma/web/twitter_api/twitter_api.ex:108
#, elixir-autogen, elixir-format
msgid "Kocaptcha service unavailable" msgid "Kocaptcha service unavailable"
msgstr "" msgstr "Servei Kocaptcha no disponible"
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:140 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:140
#, elixir-autogen, elixir-format
msgid "Missing parameters" msgid "Missing parameters"
msgstr "" msgstr "Falten paràmetres"
#: lib/pleroma/web/common_api/utils.ex:477 #: lib/pleroma/web/common_api/utils.ex:477
#, elixir-autogen, elixir-format
msgid "No such conversation" msgid "No such conversation"
msgstr "" msgstr "No hi ha tal conversa"
#: 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:197
#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:239 #: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:239
#, elixir-autogen, elixir-format
msgid "No such permission_group" msgid "No such permission_group"
msgstr "" msgstr "No existeix permission_group"
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:515 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:515
#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11
@ -245,14 +217,12 @@ msgstr ""
#: lib/pleroma/web/feed/user_controller.ex:69 #: lib/pleroma/web/feed/user_controller.ex:69
#: lib/pleroma/web/o_status/o_status_controller.ex:132 #: 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
#, elixir-autogen, elixir-format
msgid "Not found" msgid "Not found"
msgstr "" msgstr "No trobat"
#: lib/pleroma/web/common_api.ex:308 #: lib/pleroma/web/common_api.ex:308
#, elixir-autogen, elixir-format
msgid "Poll's author can't vote" msgid "Poll's author can't vote"
msgstr "" msgstr "L'autor de l'enquesta no pot votar-hi"
#: 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:39
@ -260,212 +230,174 @@ msgstr ""
#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:52 #: 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/status_controller.ex:326
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71
#, elixir-autogen, elixir-format
msgid "Record not found" msgid "Record not found"
msgstr "" msgstr "Registre no trobat"
#: 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/feed/user_controller.ex:78
#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:42 #: 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
#, elixir-autogen, elixir-format
msgid "Something went wrong" msgid "Something went wrong"
msgstr "" msgstr "Alguna cosa ha anat malament"
#: lib/pleroma/web/common_api/activity_draft.ex:143 #: lib/pleroma/web/common_api/activity_draft.ex:143
#, elixir-autogen, elixir-format
msgid "The message visibility must be direct" msgid "The message visibility must be direct"
msgstr "" msgstr "La visibilitat del missatge ha de ser directe"
#: lib/pleroma/web/common_api/utils.ex:492 #: lib/pleroma/web/common_api/utils.ex:492
#, elixir-autogen, elixir-format
msgid "The status is over the character limit" msgid "The status is over the character limit"
msgstr "" msgstr "L'apunt està per sobre del limit de caràcters"
#: lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex:36 #: lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex:36
#, elixir-autogen, elixir-format
msgid "This resource requires authentication." msgid "This resource requires authentication."
msgstr "" msgstr "Aquest recurs requereix autenticació."
#: lib/pleroma/web/plugs/rate_limiter.ex:208 #: lib/pleroma/web/plugs/rate_limiter.ex:208
#, elixir-autogen, elixir-format
msgid "Throttled" msgid "Throttled"
msgstr "" msgstr "Estrangulat"
#: lib/pleroma/web/common_api.ex:338 #: lib/pleroma/web/common_api.ex:338
#, elixir-autogen, elixir-format
msgid "Too many choices" msgid "Too many choices"
msgstr "" msgstr "Massa opcions"
#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:268 #: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:268
#, elixir-autogen, elixir-format
msgid "You can't revoke your own admin status." msgid "You can't revoke your own admin status."
msgstr "" msgstr "No pots revocar el teu propi estat d'administrador."
#: 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
#, elixir-autogen, elixir-format
msgid "Your account is currently disabled" msgid "Your account is currently disabled"
msgstr "" msgstr "El teu compte està actualment desactivat"
#: 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
#, elixir-autogen, elixir-format
msgid "Your login is missing a confirmed e-mail address" msgid "Your login is missing a confirmed e-mail address"
msgstr "" msgstr "Al teu inici de sessió li falta una adreça de correu confirmada"
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:403 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:403
#, elixir-autogen, elixir-format
msgid "can't read inbox of %{nickname} as %{as_nickname}" msgid "can't read inbox of %{nickname} as %{as_nickname}"
msgstr "" msgstr "no puc llegir la safata d'entrada de %{nickname} com a %{as_nickname}"
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:502 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:502
#, elixir-autogen, elixir-format
msgid "can't update outbox of %{nickname} as %{as_nickname}" msgid "can't update outbox of %{nickname} as %{as_nickname}"
msgstr "" msgstr ""
"no es pot actualitzar la safata de sortida de %{nickname} com a "
"%{as_nickname}"
#: lib/pleroma/web/common_api.ex:475 #: lib/pleroma/web/common_api.ex:475
#, elixir-autogen, elixir-format
msgid "conversation is already muted" msgid "conversation is already muted"
msgstr "" msgstr "la conversa ja està silenciada"
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:521 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:521
#, elixir-autogen, elixir-format
msgid "error" msgid "error"
msgstr "" msgstr "error"
#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34 #: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34
#, elixir-autogen, elixir-format
msgid "mascots can only be images" msgid "mascots can only be images"
msgstr "" msgstr "les mascotes només poden ser imatges"
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:63 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:63
#, elixir-autogen, elixir-format
msgid "not found" msgid "not found"
msgstr "" msgstr "no trobat"
#: lib/pleroma/web/o_auth/o_auth_controller.ex:437 #: lib/pleroma/web/o_auth/o_auth_controller.ex:437
#, elixir-autogen, elixir-format
msgid "Bad OAuth request." msgid "Bad OAuth request."
msgstr "" msgstr "Sol·licitu OAuth dolenta."
#: lib/pleroma/web/twitter_api/twitter_api.ex:114 #: lib/pleroma/web/twitter_api/twitter_api.ex:114
#, elixir-autogen, elixir-format
msgid "CAPTCHA already used" msgid "CAPTCHA already used"
msgstr "" msgstr "CAPTCHA ja usat"
#: lib/pleroma/web/twitter_api/twitter_api.ex:111 #: lib/pleroma/web/twitter_api/twitter_api.ex:111
#, elixir-autogen, elixir-format
msgid "CAPTCHA expired" msgid "CAPTCHA expired"
msgstr "" msgstr "CAPTCHA expirat"
#: lib/pleroma/web/plugs/uploaded_media.ex:57 #: lib/pleroma/web/plugs/uploaded_media.ex:57
#, elixir-autogen, elixir-format
msgid "Failed" msgid "Failed"
msgstr "" msgstr "Fallat"
#: lib/pleroma/web/o_auth/o_auth_controller.ex:453 #: lib/pleroma/web/o_auth/o_auth_controller.ex:453
#, elixir-autogen, elixir-format
msgid "Failed to authenticate: %{message}." msgid "Failed to authenticate: %{message}."
msgstr "" msgstr "No s'ha pogut autenticar: %{message}."
#: lib/pleroma/web/o_auth/o_auth_controller.ex:484 #: lib/pleroma/web/o_auth/o_auth_controller.ex:484
#, elixir-autogen, elixir-format
msgid "Failed to set up user account." msgid "Failed to set up user account."
msgstr "" msgstr "No s'ha pogut configurar el compte d'usuari."
#: lib/pleroma/web/plugs/o_auth_scopes_plug.ex:37 #: lib/pleroma/web/plugs/o_auth_scopes_plug.ex:37
#, elixir-autogen, elixir-format
msgid "Insufficient permissions: %{permissions}." msgid "Insufficient permissions: %{permissions}."
msgstr "" msgstr "Permisos insuficients: %{permissions}."
#: lib/pleroma/web/plugs/uploaded_media.ex:111 #: lib/pleroma/web/plugs/uploaded_media.ex:111
#, elixir-autogen, elixir-format
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr "Error intern"
#: 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
#, elixir-autogen, elixir-format
msgid "Invalid Username/Password" msgid "Invalid Username/Password"
msgstr "" msgstr "Usuari/Contrasenya invàlids"
#: lib/pleroma/web/twitter_api/twitter_api.ex:117 #: lib/pleroma/web/twitter_api/twitter_api.ex:117
#, elixir-autogen, elixir-format
msgid "Invalid answer data" msgid "Invalid answer data"
msgstr "" msgstr "dada de resposta invàlida"
#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33 #: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33
#, elixir-autogen, elixir-format
msgid "Nodeinfo schema version not handled" msgid "Nodeinfo schema version not handled"
msgstr "" msgstr "Versió no controlada del Esquema Nodeinfo"
#: lib/pleroma/web/o_auth/o_auth_controller.ex:194 #: lib/pleroma/web/o_auth/o_auth_controller.ex:194
#, elixir-autogen, elixir-format
msgid "This action is outside the authorized scopes" msgid "This action is outside the authorized scopes"
msgstr "" msgstr "Aquesta acció és fora dels àmbits autoritzats"
#: lib/pleroma/web/o_auth/fallback_controller.ex:14 #: lib/pleroma/web/o_auth/fallback_controller.ex:14
#, elixir-autogen, elixir-format
msgid "Unknown error, please check the details and try again." msgid "Unknown error, please check the details and try again."
msgstr "" msgstr "Error desconegut, si us plau verifica els detalls i prova-ho de nou."
#: 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
#, elixir-autogen, elixir-format
msgid "Unlisted redirect_uri." msgid "Unlisted redirect_uri."
msgstr "" msgstr "redirect_uri no llistada."
#: lib/pleroma/web/o_auth/o_auth_controller.ex:433 #: lib/pleroma/web/o_auth/o_auth_controller.ex:433
#, elixir-autogen, elixir-format
msgid "Unsupported OAuth provider: %{provider}." msgid "Unsupported OAuth provider: %{provider}."
msgstr "" msgstr "Proveïdor OAuth no compatible: %{provider}."
#: lib/pleroma/uploaders/uploader.ex:74 #: lib/pleroma/uploaders/uploader.ex:74
#, elixir-autogen, elixir-format
msgid "Uploader callback timeout" msgid "Uploader callback timeout"
msgstr "" msgstr "Temps d'espera esgotat del callback del carregador"
#: lib/pleroma/web/uploader_controller.ex:23 #: lib/pleroma/web/uploader_controller.ex:23
#, elixir-autogen, elixir-format
msgid "bad request" msgid "bad request"
msgstr "" msgstr "sol·licitud dolenta"
#: lib/pleroma/web/twitter_api/twitter_api.ex:102 #: lib/pleroma/web/twitter_api/twitter_api.ex:102
#, elixir-autogen, elixir-format
msgid "CAPTCHA Error" msgid "CAPTCHA Error"
msgstr "" msgstr "Error CAPTCHA"
#: lib/pleroma/web/common_api.ex:266 #: lib/pleroma/web/common_api.ex:266
#, elixir-autogen, elixir-format
msgid "Could not add reaction emoji" msgid "Could not add reaction emoji"
msgstr "" msgstr "No es pot afegir la reacció emoji"
#: lib/pleroma/web/common_api.ex:277 #: lib/pleroma/web/common_api.ex:277
#, elixir-autogen, elixir-format
msgid "Could not remove reaction emoji" msgid "Could not remove reaction emoji"
msgstr "" msgstr "No es pot treure la reacció emoji"
#: lib/pleroma/web/twitter_api/twitter_api.ex:128 #: lib/pleroma/web/twitter_api/twitter_api.ex:128
#, elixir-autogen, elixir-format
msgid "Invalid CAPTCHA (Missing parameter: %{name})" msgid "Invalid CAPTCHA (Missing parameter: %{name})"
msgstr "" msgstr "CAPTCHA invàlid (Falta el paràmetre: %{name})"
#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:96 #: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:96
#, elixir-autogen, elixir-format
msgid "List not found" msgid "List not found"
msgstr "" msgstr "Llista no trobada"
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:151 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:151
#, elixir-autogen, elixir-format
msgid "Missing parameter: %{name}" msgid "Missing parameter: %{name}"
msgstr "" msgstr "Falta el paràmetre: %{name}"
#: 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
#, elixir-autogen, elixir-format
msgid "Password reset is required" msgid "Password reset is required"
msgstr "" msgstr "Es requereix restablir la contrasenya"
#: 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/activity_pub/activity_pub_controller.ex:6
@ -484,8 +416,7 @@ msgstr ""
#: lib/pleroma/web/admin_api/controllers/report_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/status_controller.ex:6
#: lib/pleroma/web/admin_api/controllers/user_controller.ex:6 #: lib/pleroma/web/admin_api/controllers/user_controller.ex:6
#: lib/pleroma/web/controller_helper.ex:6 #: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6
#: lib/pleroma/web/embed_controller.ex:6
#: lib/pleroma/web/fallback/redirect_controller.ex:6 #: lib/pleroma/web/fallback/redirect_controller.ex:6
#: lib/pleroma/web/feed/tag_controller.ex:6 #: lib/pleroma/web/feed/tag_controller.ex:6
#: lib/pleroma/web/feed/user_controller.ex:6 #: lib/pleroma/web/feed/user_controller.ex:6
@ -545,80 +476,71 @@ msgstr ""
#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 #: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6
#: lib/pleroma/web/uploader_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
#, elixir-autogen, elixir-format msgid ""
msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." "Security violation: OAuth scopes check was neither handled nor explicitly "
"skipped."
msgstr "" msgstr ""
"Violació de seguretat: la verificació dels àmbits OAuth no ha estat ni "
"controlada ni explícitament omesa."
#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:32 #: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:32
#, elixir-autogen, elixir-format
msgid "Two-factor authentication enabled, you must use a access token." msgid "Two-factor authentication enabled, you must use a access token."
msgstr "" msgstr "Autenticació de dos factor activada, has d'usar un token d'accés."
#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61
#, elixir-autogen, elixir-format
msgid "Web push subscription is disabled on this Pleroma instance" msgid "Web push subscription is disabled on this Pleroma instance"
msgstr "" msgstr "La subscripció Web push està desactivada en aquesta instància Akkoma"
#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:234 #: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:234
#, elixir-autogen, elixir-format
msgid "You can't revoke your own admin/moderator status." msgid "You can't revoke your own admin/moderator status."
msgstr "" msgstr "No pots revocar els teu propi estat de admin/moderador."
#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:129 #: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:129
#, elixir-autogen, elixir-format
msgid "authorization required for timeline view" msgid "authorization required for timeline view"
msgstr "" msgstr "es requereix autorització per a veure la línia de temps"
#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24 #: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24
#, elixir-autogen, elixir-format
msgid "Access denied" msgid "Access denied"
msgstr "" msgstr "Accés denegat"
#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:322 #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:322
#, elixir-autogen, elixir-format
msgid "This API requires an authenticated user" msgid "This API requires an authenticated user"
msgstr "" msgstr "Aquesta API requereix un usuari autenticat"
#: 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
#, elixir-autogen, elixir-format
msgid "User is not an admin." msgid "User is not an admin."
msgstr "" msgstr "L'usuari no és un admin."
#: lib/pleroma/user/backup.ex:75 #: lib/pleroma/user/backup.ex:75
#, elixir-format
msgid "Last export was less than a day ago" msgid "Last export was less than a day ago"
msgid_plural "Last export was less than %{days} days ago" msgid_plural "Last export was less than %{days} days ago"
msgstr[0] "" msgstr[0] "La darrera exportació va ser fa menys d'un dia"
msgstr[1] "" msgstr[1] "La darrera exportació va ser fa menys de %{days} dies"
#: lib/pleroma/user/backup.ex:93 #: lib/pleroma/user/backup.ex:93
#, elixir-autogen, elixir-format
msgid "Backups require enabled email" msgid "Backups require enabled email"
msgstr "" msgstr "Les copies de seguretat requereixen un correu activat"
#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:434 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:434
#, elixir-autogen, elixir-format msgid ""
msgid "Character limit (%{limit} characters) exceeded, contains %{length} characters" "Character limit (%{limit} characters) exceeded, contains %{length} characters"
msgstr "" msgstr ""
"Limit de caràcters (%{limit} characters) excedit, conté %{length} caràcters"
#: lib/pleroma/user/backup.ex:98 #: lib/pleroma/user/backup.ex:98
#, elixir-autogen, elixir-format
msgid "Email is required" msgid "Email is required"
msgstr "" msgstr "Es requereix correu"
#: lib/pleroma/web/common_api/utils.ex:507 #: lib/pleroma/web/common_api/utils.ex:507
#, elixir-autogen, elixir-format
msgid "Too many attachments" msgid "Too many attachments"
msgstr "" msgstr "Massa adjunts"
#: 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
#, elixir-autogen, elixir-format
msgid "User is not a staff member." msgid "User is not a staff member."
msgstr "" msgstr "L'usuari no és un membre del equip."
#: lib/pleroma/web/o_auth/o_auth_controller.ex:366 #: lib/pleroma/web/o_auth/o_auth_controller.ex:366
#, elixir-autogen, elixir-format
msgid "Your account is awaiting approval." msgid "Your account is awaiting approval."
msgstr "" msgstr "El teu compte espera aprovació."

View file

@ -3,14 +3,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-28 09:15+0000\n" "POT-Creation-Date: 2022-07-28 09:15+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2022-07-30 21:58+0000\n"
"Last-Translator: Automatically generated\n" "Last-Translator: sola <spla@mastodont.cat>\n"
"Language-Team: none\n" "Language-Team: Catalan <http://translate.akkoma.dev/projects/akkoma/"
"akkoma-backend-static-pages/ca/>\n"
"Language: ca\n" "Language: ca\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Translate Toolkit 3.7.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.13.1\n"
## This file is a PO Template file. ## This file is a PO Template file.
## ##
@ -21,150 +23,149 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to ## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here as no ## date. Leave "msgstr"s empty as changing them here as no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow authorization button" msgctxt "remote follow authorization button"
msgid "Authorize" msgid "Authorize"
msgstr "" msgstr "Autoritza"
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow error" msgctxt "remote follow error"
msgid "Error fetching user" msgid "Error fetching user"
msgstr "" msgstr "Error obtenint usuari"
#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4 #: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow header" msgctxt "remote follow header"
msgid "Remote follow" msgid "Remote follow"
msgstr "" msgstr "Seguiment remot"
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "placeholder text for auth code entry" msgctxt "placeholder text for auth code entry"
msgid "Authentication code" msgid "Authentication code"
msgstr "" msgstr "Codi d'autenticació"
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "placeholder text for password entry" msgctxt "placeholder text for password entry"
msgid "Password" msgid "Password"
msgstr "" msgstr "Contrasenya"
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "placeholder text for username entry" msgctxt "placeholder text for username entry"
msgid "Username" msgid "Username"
msgstr "" msgstr "Nom d'usuari"
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow authorization button for login" msgctxt "remote follow authorization button for login"
msgid "Authorize" msgid "Authorize"
msgstr "" msgstr "Autoritza"
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow authorization button for mfa" msgctxt "remote follow authorization button for mfa"
msgid "Authorize" msgid "Authorize"
msgstr "" msgstr "Autoritza"
#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2 #: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow error" msgctxt "remote follow error"
msgid "Error following account" msgid "Error following account"
msgstr "" msgstr "Error seguint el compte"
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow header, need login" msgctxt "remote follow header, need login"
msgid "Log in to follow" msgid "Log in to follow"
msgstr "" msgstr "Inicia sessió per a seguir"
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow mfa header" msgctxt "remote follow mfa header"
msgid "Two-factor authentication" msgid "Two-factor authentication"
msgstr "" msgstr "Autenticació de dos factors"
#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4 #: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow success" msgctxt "remote follow success"
msgid "Account followed!" msgid "Account followed!"
msgstr "" msgstr "Compte seguit!"
#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7 #: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 "L'ID del teu compte, p.e. maria@exemple.cat"
#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8 #: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 "Segueix"
#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2 #: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow error" msgctxt "remote follow error"
msgid "Error: %{error}" msgid "Error: %{error}"
msgstr "" msgstr "Error: %{error}"
#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4 #: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "remote follow header" msgctxt "remote follow header"
msgid "Remotely follow %{nickname}" msgid "Remotely follow %{nickname}"
msgstr "" msgstr "Seguir remotament %{nickname}"
#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12 #: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset button" msgctxt "password reset button"
msgid "Reset" msgid "Reset"
msgstr "" msgstr "Reiniciar"
#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4 #: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset failed homepage link" msgctxt "password reset failed homepage link"
msgid "Homepage" msgid "Homepage"
msgstr "" msgstr "Pàgina d'inici"
#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1 #: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset failed message" msgctxt "password reset failed message"
msgid "Password reset failed" msgid "Password reset failed"
msgstr "" msgstr "Error al restablir la contrasenya"
#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8 #: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset form confirm password prompt" msgctxt "password reset form confirm password prompt"
msgid "Confirmation" msgid "Confirmation"
msgstr "" msgstr "Confirmació"
#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4 #: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset form password prompt" msgctxt "password reset form password prompt"
msgid "Password" msgid "Password"
msgstr "" msgstr "Contrasenya"
#: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1 #: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset invalid token message" msgctxt "password reset invalid token message"
msgid "Invalid Token" msgid "Invalid Token"
msgstr "" msgstr "Token Invàlid"
#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2 #: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset successful homepage link" msgctxt "password reset successful homepage link"
msgid "Homepage" msgid "Homepage"
msgstr "" msgstr "Pàgina d'inici"
#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1 #: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset successful message" msgctxt "password reset successful message"
msgid "Password changed!" msgid "Password changed!"
msgstr "" msgstr "Contrasenya canviada!"
#: 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
@ -172,354 +173,395 @@ msgstr ""
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 ""
"Aquests son apunts públics etiquetats amb #%{tag}. Pots interactuar amb ells "
"si tens un compte en qualsevol lloc del fedivers."
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth authorization exists page title" msgctxt "oauth authorization exists page title"
msgid "Authorization exists" msgid "Authorization exists"
msgstr "" msgstr "Existeix autorització"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth authorize approve button" msgctxt "oauth authorize approve button"
msgid "Approve" msgid "Approve"
msgstr "" msgstr "Aprova"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth authorize cancel button" msgctxt "oauth authorize cancel button"
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr "Cancel·la"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"L'aplicació <strong>%{client_name}</strong> sol·licita accés al teu compte."
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth authorized page title" msgctxt "oauth authorized page title"
msgid "Successfully authorized" msgid "Successfully authorized"
msgstr "" msgstr "Autoritzat amb èxit"
#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1 #: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 "Inicia sessió amb proveïdor extern"
#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13 #: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 "Inicia sessió amb %{strategy}"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth login button" msgctxt "oauth login button"
msgid "Log In" msgid "Log In"
msgstr "" msgstr "Inicia sessió"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth login password prompt" msgctxt "oauth login password prompt"
msgid "Password" msgid "Password"
msgstr "" msgstr "Contrasenya"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth login username prompt" msgctxt "oauth login username prompt"
msgid "Username" msgid "Username"
msgstr "" msgstr "Nom d'usuari"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth register nickname prompt" msgctxt "oauth register nickname prompt"
msgid "Pleroma Handle" msgid "Pleroma Handle"
msgstr "" msgstr "Sobrenom Akkoma"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"Tria amb cura! No podràs canviar-ho més tard. En canvi, podràs canviar el "
"teu nom a mostrar."
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth register page email prompt" msgctxt "oauth register page email prompt"
msgid "Email" msgid "Email"
msgstr "" msgstr "Correu"
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"Si desitges registrar un compte nou, si us plau proporciona els detalls a "
"continuació."
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth register page login button" msgctxt "oauth register page login button"
msgid "Proceed as existing user" msgid "Proceed as existing user"
msgstr "" msgstr "Procedir com a usuari existent"
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth register page login password prompt" msgctxt "oauth register page login password prompt"
msgid "Password" msgid "Password"
msgstr "" msgstr "Contrasenya"
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 "Alternativament, inicia sessió per a connectar amb un compte existent."
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth register page login username prompt" msgctxt "oauth register page login username prompt"
msgid "Name or email" msgid "Name or email"
msgstr "" msgstr "Nom o correu"
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth register page nickname prompt" msgctxt "oauth register page nickname prompt"
msgid "Nickname" msgid "Nickname"
msgstr "" msgstr "Sobrenom"
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth register page register button" msgctxt "oauth register page register button"
msgid "Proceed as new user" msgid "Proceed as new user"
msgstr "" msgstr "Procedir com a usuari nou"
#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8 #: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth register page title" msgctxt "oauth register page title"
msgid "Registration Details" msgid "Registration Details"
msgstr "" msgstr "Detalls del registre"
#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36 #: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"Aquesta és la primera vegada que ens visites! Si us plau introdueix el teu "
"sobrenom a Akkoma."
#: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2 #: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth scopes message" msgctxt "oauth scopes message"
msgid "The following permissions will be granted" msgid "The following permissions will be granted"
msgstr "" msgstr "Es concediran els següents permisos"
#: 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
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "oauth token code message" msgctxt "oauth token code message"
msgid "Token code is <br>%{token}" msgid "Token code is <br>%{token}"
msgstr "" msgstr "El codi del Token és <br>%{token}"
#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12 #: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "mfa auth code prompt" msgctxt "mfa auth code prompt"
msgid "Authentication code" msgid "Authentication code"
msgstr "" msgstr "Codi d'autenticació"
#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8 #: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "mfa auth page title" msgctxt "mfa auth page title"
msgid "Two-factor authentication" msgid "Two-factor authentication"
msgstr "" msgstr "Autenticació de dos factors"
#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23 #: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 "Entra el codi de recuperació de dos factors"
#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20 #: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "mfa auth verify code button" msgctxt "mfa auth verify code button"
msgid "Verify" msgid "Verify"
msgstr "" msgstr "Verifica"
#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8 #: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "mfa recover page title" msgctxt "mfa recover page title"
msgid "Two-factor recovery" msgid "Two-factor recovery"
msgstr "" msgstr "Recuperació de dos factors"
#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12 #: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "mfa recover recovery code prompt" msgctxt "mfa recover recovery code prompt"
msgid "Recovery code" msgid "Recovery code"
msgstr "" msgstr "Codi de recuperació"
#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23 #: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 "Entra el codi de dos factors"
#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20 #: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "mfa recover verify recovery code button" msgctxt "mfa recover verify recovery code button"
msgid "Verify" msgid "Verify"
msgstr "" msgstr "Verifica"
#: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8 #: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "static fe profile page remote follow button" msgctxt "static fe profile page remote follow button"
msgid "Remote follow" msgid "Remote follow"
msgstr "" msgstr "Seguiment remot"
#: lib/pleroma/web/templates/email/digest.html.eex:163 #: lib/pleroma/web/templates/email/digest.html.eex:163
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 "Hola %{nickname}, aquí està el que t'has perdut!"
#: lib/pleroma/web/templates/email/digest.html.eex:544 #: lib/pleroma/web/templates/email/digest.html.eex:544
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"L'adreça de correu a la que estàs subscrit és <a href='mailto:%{@user.email}"
"' style='color: %{color};text-decoration: none;'>%{email}</a>. "
#: lib/pleroma/web/templates/email/digest.html.eex:538 #: lib/pleroma/web/templates/email/digest.html.eex:538
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"Has rebut aquest correu perquè t'has registrat per a rebre correus resum des "
"de l'instància Akkoma <b>%{instance}2</b>."
#: lib/pleroma/web/templates/email/digest.html.eex:547 #: lib/pleroma/web/templates/email/digest.html.eex:547
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "digest email unsubscribe action" msgctxt "digest email unsubscribe action"
msgid "To unsubscribe, please go %{here}." msgid "To unsubscribe, please go %{here}."
msgstr "" msgstr "Per a donar-te de baixa, si us plau ves a %{here}."
#: lib/pleroma/web/templates/email/digest.html.eex:547 #: lib/pleroma/web/templates/email/digest.html.eex:547
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "digest email unsubscribe action link text" msgctxt "digest email unsubscribe action link text"
msgid "here" msgid "here"
msgstr "" msgstr "aquí"
#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1 #: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "mailer unsubscribe failed message" msgctxt "mailer unsubscribe failed message"
msgid "UNSUBSCRIBE FAILURE" msgid "UNSUBSCRIBE FAILURE"
msgstr "" msgstr "ERROR DE CANCEL·LACIÓ DE LA SUBSCRIPCIÓ"
#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1 #: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "mailer unsubscribe successful message" msgctxt "mailer unsubscribe successful message"
msgid "UNSUBSCRIBE SUCCESSFUL" msgid "UNSUBSCRIBE SUCCESSFUL"
msgstr "" msgstr "SUBSCRIPCIÓ CANCEL·LADA AMB ÈXIT"
#: lib/pleroma/web/templates/email/digest.html.eex:385 #: lib/pleroma/web/templates/email/digest.html.eex:385
#, elixir-format #, elixir-format
msgctxt "new followers count header" msgctxt "new followers count header"
msgid "%{count} New Follower" msgid "%{count} New Follower"
msgid_plural "%{count} New Followers" msgid_plural "%{count} New Followers"
msgstr[0] "" msgstr[0] "%{count} Nou Seguidor"
msgstr[1] "" msgstr[1] "%{count} Nous Seguidors"
#: lib/pleroma/emails/user_email.ex:356 #: lib/pleroma/emails/user_email.ex:356
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"<p>Has sol·licitat una copia de seguretat completa del teu compte Akkoma. "
"Està llest per a descarrega:</p>\n"
"<p><a href=\"%{download_url}\">%{download_url}</a></p>\n"
#: lib/pleroma/emails/user_email.ex:384 #: lib/pleroma/emails/user_email.ex:384
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "account archive email subject" msgctxt "account archive email subject"
msgid "Your account archive is ready" msgid "Your account archive is ready"
msgstr "" msgstr "L'arxiu del teu compte està preparat"
#: lib/pleroma/emails/user_email.ex:188 #: lib/pleroma/emails/user_email.ex:188
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"<h3>Esperant aprovació</h3>\n"
"<p>El teu compte a %{instance_name} està sent revisat per l'equip. Rebràs un "
"altre correu quan el teu compte estigui aprovat.</p>\n"
#: lib/pleroma/emails/user_email.ex:202 #: lib/pleroma/emails/user_email.ex:202
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "approval pending email subject" msgctxt "approval pending email subject"
msgid "Your account is awaiting approval" msgid "Your account is awaiting approval"
msgstr "" msgstr "El teu compte està esperant aprovació"
#: lib/pleroma/emails/user_email.ex:158 #: lib/pleroma/emails/user_email.ex:158
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"<h3>Gràcies per registrar-te a %{instance_name}</h3>\n"
"<p>Es requereix correu de confirmació per a activar el reu compte.</p>\n"
"<p>Si us plau clica en l'enllaç següent per a <a href=\"%{confirmation_url}\""
">activar el teu compte</a>.</p>\n"
#: lib/pleroma/emails/user_email.ex:174 #: lib/pleroma/emails/user_email.ex:174
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "confirmation email subject" msgctxt "confirmation email subject"
msgid "%{instance_name} account confirmation" msgid "%{instance_name} account confirmation"
msgstr "" msgstr "confirmació del compte a %{instance_name}"
#: lib/pleroma/emails/user_email.ex:310 #: lib/pleroma/emails/user_email.ex:310
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "digest email subject" msgctxt "digest email subject"
msgid "Your digest from %{instance_name}" msgid "Your digest from %{instance_name}"
msgstr "" msgstr "El teu resum des de %{instance_name}"
#: lib/pleroma/emails/user_email.ex:81 #: lib/pleroma/emails/user_email.ex:81
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"<h3>Restableix la teva contrasenya a %{instance_name}</h3>\n"
"<p>Algú ha sol·licitat un canvi de contrasenya per el teu compte a "
"%{instance_name}.</p>\n"
"<p>Si has estat tu, visita el següent enllaç per a procedir: <a href=\""
"%{password_reset_url}\">restablir contrasenya</a>.</p>\n"
"<p>Si ha estat algú altre, no et preocupis: les teves dades estan segures i "
"la teva contrasenya no s'ha canviat.</p>\n"
#: lib/pleroma/emails/user_email.ex:98 #: lib/pleroma/emails/user_email.ex:98
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "password reset email subject" msgctxt "password reset email subject"
msgid "Password reset" msgid "Password reset"
msgstr "" msgstr "Restablir contrasenya"
#: lib/pleroma/emails/user_email.ex:215 #: lib/pleroma/emails/user_email.ex:215
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"<h3>Hola @%{nickname},</h3>\n"
"<p>El teu compte a %{instance_name} ha estat registrar amb èxit.</p>\n"
"<p>No es requereix cap altre acció per a activar el teu compte.</p>\n"
#: lib/pleroma/emails/user_email.ex:231 #: lib/pleroma/emails/user_email.ex:231
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "successful registration email subject" msgctxt "successful registration email subject"
msgid "Account registered on %{instance_name}" msgid "Account registered on %{instance_name}"
msgstr "" msgstr "Compte registrat a %{instance_name}"
#: lib/pleroma/emails/user_email.ex:119 #: lib/pleroma/emails/user_email.ex:119
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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 ""
"<h3>Has estat invitat a %{instance_name}</h3>\n"
"<p>%{inviter_name} t'invita a unir-te a %{instance_name}, una instància de "
"la plataforma de xarxa social federada Akkoma.</p>\n"
"<p>Clica el següent enllaç per a registrar-te: <a href=\"%{registration_url}"
"\">accepta invitació</a>.</p>\n"
#: lib/pleroma/emails/user_email.ex:136 #: lib/pleroma/emails/user_email.ex:136
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "user invitation email subject" msgctxt "user invitation email subject"
msgid "Invitation to %{instance_name}" msgid "Invitation to %{instance_name}"
msgstr "" msgstr "Invitació per %{instance_name}"
#: lib/pleroma/emails/user_email.ex:53 #: lib/pleroma/emails/user_email.ex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "welcome email html body" msgctxt "welcome email html body"
msgid "Welcome to %{instance_name}!" msgid "Welcome to %{instance_name}!"
msgstr "" msgstr "Benvingut a %{instance_name}!"
#: lib/pleroma/emails/user_email.ex:41 #: lib/pleroma/emails/user_email.ex:41
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "welcome email subject" msgctxt "welcome email subject"
msgid "Welcome to %{instance_name}!" msgid "Welcome to %{instance_name}!"
msgstr "" msgstr "Benvingut a %{instance_name}!"
#: lib/pleroma/emails/user_email.ex:65 #: lib/pleroma/emails/user_email.ex:65
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgctxt "welcome email text body" msgctxt "welcome email text body"
msgid "Welcome to %{instance_name}!" msgid "Welcome to %{instance_name}!"
msgstr "" msgstr "Benvingut a %{instance_name}!"
#: lib/pleroma/emails/user_email.ex:368 #: lib/pleroma/emails/user_email.ex:368
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
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"
msgstr "" msgstr ""
"<p>L'Administrador @%{admin_nickname} ha sol·licitat una copia de seguretat "
"completa del teu compte Akkoma. Està preparat per a descarrega:</p>\n"
"<p><a href=\"%{download_url}\">%{download_url}</a></p>\n"

View file

@ -0,0 +1,61 @@
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://p.helene.moe/schemas/litepub-0.1.jsonld",
{
"@language": "und"
}
],
"actor": "https://p.helene.moe/users/helene",
"attachment": [],
"attributedTo": "https://p.helene.moe/users/helene",
"cc": [
"https://p.helene.moe/users/helene/followers"
],
"context": "https://p.helene.moe/contexts/cc324643-5583-4c3f-91d2-c6ed37db159d",
"conversation": "https://p.helene.moe/contexts/cc324643-5583-4c3f-91d2-c6ed37db159d",
"directMessage": false,
"id": "https://p.helene.moe/activities/5f80db86-a9bb-4883-9845-fbdbd1478f3a",
"object": {
"actor": "https://p.helene.moe/users/helene",
"attachment": [],
"attributedTo": "https://p.helene.moe/users/helene",
"cc": [
"https://p.helene.moe/users/helene/followers"
],
"content": "<span class=\"h-card\"><a class=\"u-url mention\" data-user=\"AHntpQ4T3J4OSnpgMC\" href=\"https://mk.absturztau.be/@mametsuko\" rel=\"ugc\">@<span>mametsuko</span></a></span> meow",
"context": "https://p.helene.moe/contexts/cc324643-5583-4c3f-91d2-c6ed37db159d",
"conversation": "https://p.helene.moe/contexts/cc324643-5583-4c3f-91d2-c6ed37db159d",
"id": "https://p.helene.moe/objects/fd5910ac-d9dc-412e-8d1d-914b203296c4",
"inReplyTo": "https://mk.absturztau.be/notes/93e7nm8wqg",
"published": "2022-08-02T13:46:58.403996Z",
"sensitive": null,
"source": "@mametsuko@mk.absturztau.be meow",
"summary": "",
"tag": [
{
"href": "https://mk.absturztau.be/users/8ozbzjs3o8",
"name": "@mametsuko@mk.absturztau.be",
"type": "Mention"
}
],
"to": [
"https://mk.absturztau.be/users/8ozbzjs3o8",
"https://www.w3.org/ns/activitystreams#Public"
],
"type": "Note"
},
"published": "2022-08-02T13:46:58.403883Z",
"tag": [
{
"href": "https://mk.absturztau.be/users/8ozbzjs3o8",
"name": "@mametsuko@mk.absturztau.be",
"type": "Mention"
}
],
"to": [
"https://mk.absturztau.be/users/8ozbzjs3o8",
"https://www.w3.org/ns/activitystreams#Public"
],
"type": "Create"
}

View file

@ -0,0 +1,50 @@
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://p.helene.moe/schemas/litepub-0.1.jsonld",
{
"@language": "und"
}
],
"alsoKnownAs": [],
"attachment": [
{
"name": "Timezone",
"type": "PropertyValue",
"value": "UTC+2 (Paris/Berlin)"
}
],
"capabilities": {
"acceptsChatMessages": true
},
"discoverable": true,
"endpoints": {
"oauthAuthorizationEndpoint": "https://p.helene.moe/oauth/authorize",
"oauthRegistrationEndpoint": "https://p.helene.moe/api/v1/apps",
"oauthTokenEndpoint": "https://p.helene.moe/oauth/token",
"sharedInbox": "https://p.helene.moe/inbox",
"uploadMedia": "https://p.helene.moe/api/ap/upload_media"
},
"featured": "https://p.helene.moe/users/helene/collections/featured",
"followers": "https://p.helene.moe/users/helene/followers",
"following": "https://p.helene.moe/users/helene/following",
"icon": {
"type": "Image",
"url": "https://p.helene.moe/media/9a39209daa5a66b7ebb0547b08bf8360aa9d8d65a4ffba2603c6ffbe6aecb432.jpg"
},
"id": "https://p.helene.moe/users/helene",
"inbox": "https://p.helene.moe/users/helene/inbox",
"manuallyApprovesFollowers": false,
"name": "Hélène",
"outbox": "https://p.helene.moe/users/helene/outbox",
"preferredUsername": "helene",
"publicKey": {
"id": "https://p.helene.moe/users/helene#main-key",
"owner": "https://p.helene.moe/users/helene",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtoSBPU/VS2Kx3f6ap3zv\nZVacJsgUfaoFb3c2ii/FRh9RmRVlarq8sJXcjsQt1e0oxWaWJaIDDwyKZPt6hXae\nrY/AiGGeNu+NA+BtY7l7+9Yu67HUyT62+1qAwYHKBXX3fLOPs/YmQI0Tt0c4wKAG\nKEkiYsRizghgpzUC6jqdKV71DJkUZ8yhckCGb2fLko1ajbWEssdaP51aLsyRMyC2\nuzeWrxtD4O/HG0ea4S6y5X6hnsAHIK4Y3nnyIQ6pn4tOsl3HgqkjXE9MmZSvMCFx\nBq89TfZrVXNa2gSZdZLdbbJstzEScQWNt1p6tA6rM+e4JXYGr+rMdF3G+jV7afI2\nFQIDAQAB\n-----END PUBLIC KEY-----\n\n"
},
"summary": "I can speak: Français, English, Deutsch (nicht sehr gut), 日本語 (not very well)",
"tag": [],
"type": "Person",
"url": "https://p.helene.moe/users/helene"
}

View file

@ -0,0 +1,65 @@
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"sensitive": "as:sensitive",
"Hashtag": "as:Hashtag",
"quoteUrl": "as:quoteUrl",
"toot": "http://joinmastodon.org/ns#",
"Emoji": "toot:Emoji",
"featured": "toot:featured",
"discoverable": "toot:discoverable",
"schema": "http://schema.org#",
"PropertyValue": "schema:PropertyValue",
"value": "schema:value",
"misskey": "https://misskey-hub.net/ns#",
"_misskey_content": "misskey:_misskey_content",
"_misskey_quote": "misskey:_misskey_quote",
"_misskey_reaction": "misskey:_misskey_reaction",
"_misskey_votes": "misskey:_misskey_votes",
"_misskey_talk": "misskey:_misskey_talk",
"isCat": "misskey:isCat",
"vcard": "http://www.w3.org/2006/vcard/ns#"
}
],
"type": "Person",
"id": "https://mk.absturztau.be/users/8ozbzjs3o8",
"inbox": "https://mk.absturztau.be/users/8ozbzjs3o8/inbox",
"outbox": "https://mk.absturztau.be/users/8ozbzjs3o8/outbox",
"followers": "https://mk.absturztau.be/users/8ozbzjs3o8/followers",
"following": "https://mk.absturztau.be/users/8ozbzjs3o8/following",
"featured": "https://mk.absturztau.be/users/8ozbzjs3o8/collections/featured",
"sharedInbox": "https://mk.absturztau.be/inbox",
"endpoints": {
"sharedInbox": "https://mk.absturztau.be/inbox"
},
"url": "https://mk.absturztau.be/@mametsuko",
"preferredUsername": "mametsuko",
"name": "mametschko",
"summary": "<p><span>nya, ich bin eine Brotperson</span></p>",
"icon": {
"type": "Image",
"url": "https://mk.absturztau.be/files/webpublic-3b5594f4-fa52-4548-b4e3-c379ae2143ed",
"sensitive": false,
"name": null
},
"image": {
"type": "Image",
"url": "https://mk.absturztau.be/files/webpublic-0d03b03d-b14b-4916-ac3d-8a137118ec84",
"sensitive": false,
"name": null
},
"tag": [],
"manuallyApprovesFollowers": true,
"discoverable": false,
"publicKey": {
"id": "https://mk.absturztau.be/users/8ozbzjs3o8#main-key",
"type": "Key",
"owner": "https://mk.absturztau.be/users/8ozbzjs3o8",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuN/S1spBGmh8FXI1Bt16\nXB7Cc0QutBp7UPgmDNHjOfsq0zrF4g3L1UBxvrpU0XX77XPMCd9yPvGwAYURH2mv\ntIcYuE+R90VLDmBu5MTVthcG2D874eCZ2rD2YsEYmN5AjTX7QBIqCck+qDhVWkkM\nEZ6S5Ht6IJ5Of74eKffXElQI/C6QB+9uEDOmPk0jCzgI5gw7xvJqFj/DIF4kUUAu\nA89JqaFZzZlkrSrj4cr48bLN/YOmpdaHu0BKHaDSHct4+MqlixqovgdB6RboCEDw\ne4Aeav7+Q0Y9oGIvuggg0Q+nCubnVNnaPyzd817tpPVzyZmTts+DKyDuv90SX3nR\nsPaNa5Ty60eqplUk4b7X1gSvuzBJUFBxTVV84WnjwoeoydaS6rSyjCDPGLBjaByc\nFyWMMEb/zlQyhLZfBlvT7k96wRSsMszh2hDALWmgYIhq/jNwINvALJ1GKLNHHKZ4\nyz2LnxVpRm2rWrZzbvtcnSQOt3LaPSZn8Wgwv4buyHF02iuVuIamZVtKexsE1Ixl\nIi9qa3AKEc5gOzYXhRhvHaruzoCehUbb/UHC5c8Tto8L5G1xYzjLP3qj3PT9w/wM\n+k1Ra/4JhuAnVFROOoOmx9rIELLHH7juY2nhM7plGhyt1M5gysgqEloij8QzyQU2\nZK1YlAERG2XFO6br8omhcmECAwEAAQ==\n-----END PUBLIC KEY-----\n"
},
"isCat": true,
"vcard:Address": "Vienna, Austria"
}

View file

@ -0,0 +1,44 @@
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"sensitive": "as:sensitive",
"Hashtag": "as:Hashtag",
"quoteUrl": "as:quoteUrl",
"toot": "http://joinmastodon.org/ns#",
"Emoji": "toot:Emoji",
"featured": "toot:featured",
"discoverable": "toot:discoverable",
"schema": "http://schema.org#",
"PropertyValue": "schema:PropertyValue",
"value": "schema:value",
"misskey": "https://misskey-hub.net/ns#",
"_misskey_content": "misskey:_misskey_content",
"_misskey_quote": "misskey:_misskey_quote",
"_misskey_reaction": "misskey:_misskey_reaction",
"_misskey_votes": "misskey:_misskey_votes",
"_misskey_talk": "misskey:_misskey_talk",
"isCat": "misskey:isCat",
"vcard": "http://www.w3.org/2006/vcard/ns#"
}
],
"id": "https://mk.absturztau.be/notes/93e7nm8wqg",
"type": "Note",
"attributedTo": "https://mk.absturztau.be/users/8ozbzjs3o8",
"summary": null,
"content": "<p><span>meow</span></p>",
"_misskey_content": "meow",
"published": "2022-08-01T11:06:49.568Z",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mk.absturztau.be/users/8ozbzjs3o8/followers"
],
"inReplyTo": null,
"attachment": [],
"sensitive": false,
"tag": []
}

View file

@ -0,0 +1,36 @@
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://p.helene.moe/schemas/litepub-0.1.jsonld",
{
"@language": "und"
}
],
"actor": "https://p.helene.moe/users/helene",
"attachment": [],
"attributedTo": "https://p.helene.moe/users/helene",
"cc": [
"https://p.helene.moe/users/helene/followers"
],
"content": "<span class=\"h-card\"><a class=\"u-url mention\" data-user=\"AHntpQ4T3J4OSnpgMC\" href=\"https://mk.absturztau.be/@mametsuko\" rel=\"ugc\">@<span>mametsuko</span></a></span> meow",
"context": "https://p.helene.moe/contexts/cc324643-5583-4c3f-91d2-c6ed37db159d",
"conversation": "https://p.helene.moe/contexts/cc324643-5583-4c3f-91d2-c6ed37db159d",
"id": "https://p.helene.moe/objects/fd5910ac-d9dc-412e-8d1d-914b203296c4",
"inReplyTo": "https://mk.absturztau.be/notes/93e7nm8wqg",
"published": "2022-08-02T13:46:58.403996Z",
"sensitive": null,
"source": "@mametsuko@mk.absturztau.be meow",
"summary": "",
"tag": [
{
"href": "https://mk.absturztau.be/users/8ozbzjs3o8",
"name": "@mametsuko@mk.absturztau.be",
"type": "Mention"
}
],
"to": [
"https://mk.absturztau.be/users/8ozbzjs3o8",
"https://www.w3.org/ns/activitystreams#Public"
],
"type": "Note"
}

View file

@ -22,15 +22,15 @@ defmodule Pleroma.User.BackupTest do
clear_config([Pleroma.Emails.Mailer, :enabled], true) clear_config([Pleroma.Emails.Mailer, :enabled], true)
end end
test "it requries enabled email" do test "it does not requrie enabled email" do
clear_config([Pleroma.Emails.Mailer, :enabled], false) clear_config([Pleroma.Emails.Mailer, :enabled], false)
user = insert(:user) user = insert(:user)
assert {:error, "Backups require enabled email"} == Backup.create(user) assert {:ok, _} = Backup.create(user)
end end
test "it requries user's email" do test "it does not require user's email" do
user = insert(:user, %{email: nil}) user = insert(:user, %{email: nil})
assert {:error, "Email is required"} == Backup.create(user) assert {:ok, _} = Backup.create(user)
end end
test "it creates a backup record and an Oban job" do test "it creates a backup record and an Oban job" do
@ -75,6 +75,43 @@ test "it process a backup record" do
) )
end end
test "it does not send an email if the user does not have an email" do
clear_config([Pleroma.Upload, :uploader], Pleroma.Uploaders.Local)
%{id: user_id} = user = insert(:user, %{email: nil})
assert {:ok, %Oban.Job{args: %{"backup_id" => backup_id} = args}} = Backup.create(user)
assert {:ok, backup} = perform_job(BackupWorker, args)
assert backup.file_size > 0
assert %Backup{id: ^backup_id, processed: true, user_id: ^user_id} = backup
assert_no_email_sent()
end
test "it does not send an email if mailer is not on" do
clear_config([Pleroma.Emails.Mailer, :enabled], false)
clear_config([Pleroma.Upload, :uploader], Pleroma.Uploaders.Local)
%{id: user_id} = user = insert(:user)
assert {:ok, %Oban.Job{args: %{"backup_id" => backup_id} = args}} = Backup.create(user)
assert {:ok, backup} = perform_job(BackupWorker, args)
assert backup.file_size > 0
assert %Backup{id: ^backup_id, processed: true, user_id: ^user_id} = backup
assert_no_email_sent()
end
test "it does not send an email if the user has an empty email" do
clear_config([Pleroma.Upload, :uploader], Pleroma.Uploaders.Local)
%{id: user_id} = user = insert(:user, %{email: ""})
assert {:ok, %Oban.Job{args: %{"backup_id" => backup_id} = args}} = Backup.create(user)
assert {:ok, backup} = perform_job(BackupWorker, args)
assert backup.file_size > 0
assert %Backup{id: ^backup_id, processed: true, user_id: ^user_id} = backup
assert_no_email_sent()
end
test "it removes outdated backups after creating a fresh one" do test "it removes outdated backups after creating a fresh one" do
clear_config([Backup, :limit_days], -1) clear_config([Backup, :limit_days], -1)
clear_config([Pleroma.Upload, :uploader], Pleroma.Uploaders.Local) clear_config([Pleroma.Upload, :uploader], Pleroma.Uploaders.Local)

View file

@ -344,7 +344,7 @@ test "publish to url with with different ports" do
assert not called( assert not called(
Pleroma.Web.Federator.Publisher.enqueue_one(Publisher, %{ Pleroma.Web.Federator.Publisher.enqueue_one(Publisher, %{
inbox: "https://rejected.com/users/nick1/inbox", inbox: "https://rejected.com/users/nick2/inbox",
actor_id: actor.id, actor_id: actor.id,
id: public_note_activity.data["id"] id: public_note_activity.data["id"]
}) })

View file

@ -107,6 +107,22 @@ test "it accepts Move activities" do
assert activity.data["target"] == new_user.ap_id assert activity.data["target"] == new_user.ap_id
assert activity.data["type"] == "Move" assert activity.data["type"] == "Move"
end end
test "it fixes both the Create and object contexts in a reply" do
insert(:user, ap_id: "https://mk.absturztau.be/users/8ozbzjs3o8")
insert(:user, ap_id: "https://p.helene.moe/users/helene")
create_activity =
"test/fixtures/create-pleroma-reply-to-misskey-thread.json"
|> File.read!()
|> Jason.decode!()
assert {:ok, %Activity{} = activity} = Transmogrifier.handle_incoming(create_activity)
object = Object.normalize(activity, fetch: false)
assert activity.data["context"] == object.data["context"]
end
end end
describe "prepare outgoing" do describe "prepare outgoing" do

View file

@ -82,4 +82,24 @@ test "POST /api/v1/pleroma/backups", %{user: _user, conn: conn} do
|> post("/api/v1/pleroma/backups") |> post("/api/v1/pleroma/backups")
|> json_response_and_validate_schema(400) |> json_response_and_validate_schema(400)
end end
test "Backup without email address" do
user = Pleroma.Factory.insert(:user, email: nil)
%{conn: conn} = oauth_access(["read:accounts"], user: user)
assert is_nil(user.email)
assert [
%{
"content_type" => "application/zip",
"url" => _url,
"file_size" => 0,
"processed" => false,
"inserted_at" => _
}
] =
conn
|> post("/api/v1/pleroma/backups")
|> json_response_and_validate_schema(:ok)
end
end end

View file

@ -1363,6 +1363,42 @@ def get("https://patch.cx/objects/a399c28e-c821-4820-bc3e-4afeb044c16f", _, _, _
}} }}
end end
def get("https://mk.absturztau.be/users/8ozbzjs3o8", _, _, _) do
{:ok,
%Tesla.Env{
status: 200,
body: File.read!("test/fixtures/tesla_mock/mametsuko@mk.absturztau.be.json"),
headers: activitypub_object_headers()
}}
end
def get("https://p.helene.moe/users/helene", _, _, _) do
{:ok,
%Tesla.Env{
status: 200,
body: File.read!("test/fixtures/tesla_mock/helene@p.helene.moe.json"),
headers: activitypub_object_headers()
}}
end
def get("https://mk.absturztau.be/notes/93e7nm8wqg", _, _, _) do
{:ok,
%Tesla.Env{
status: 200,
body: File.read!("test/fixtures/tesla_mock/mk.absturztau.be-93e7nm8wqg.json"),
headers: activitypub_object_headers()
}}
end
def get("https://p.helene.moe/objects/fd5910ac-d9dc-412e-8d1d-914b203296c4", _, _, _) do
{:ok,
%Tesla.Env{
status: 200,
body: File.read!("test/fixtures/tesla_mock/p.helene.moe-AM7S6vZQmL6pI9TgPY.json"),
headers: activitypub_object_headers()
}}
end
def get(url, query, body, headers) do def get(url, query, body, headers) do
{:error, {:error,
"Mock response not implemented for GET #{inspect(url)}, #{query}, #{inspect(body)}, #{inspect(headers)}"} "Mock response not implemented for GET #{inspect(url)}, #{query}, #{inspect(body)}, #{inspect(headers)}"}