@@ -54,7 +54,7 @@ exports[`CommentTree renders an empty comment tree 1`] = `
diff --git a/js/tests/unit/specs/components/Post/PostElementItem.spec.ts b/js/tests/unit/specs/components/Post/PostElementItem.spec.ts
index 1fb4cfa5..0ce89f5a 100644
--- a/js/tests/unit/specs/components/Post/PostElementItem.spec.ts
+++ b/js/tests/unit/specs/components/Post/PostElementItem.spec.ts
@@ -59,7 +59,7 @@ describe("PostElementItem", () => {
postData.title
);
expect(wrapper.find(".metadata").text()).toContain(
- formatDateTimeString(postData.insertedAt, false)
+ formatDateTimeString(postData.insertedAt, undefined, false)
);
expect(wrapper.find(".metadata small").text()).not.toContain("Public");
diff --git a/js/tests/unit/specs/components/__snapshots__/navbar.spec.ts.snap b/js/tests/unit/specs/components/__snapshots__/navbar.spec.ts.snap
index 4a1495db..e863ec22 100644
--- a/js/tests/unit/specs/components/__snapshots__/navbar.spec.ts.snap
+++ b/js/tests/unit/specs/components/__snapshots__/navbar.spec.ts.snap
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`App component renders a Vue component 1`] = `
`;
+exports[`App component renders a Vue component 1`] = `
`;
diff --git a/js/tsconfig.json b/js/tsconfig.json
index 5380762d..cbc948bc 100644
--- a/js/tsconfig.json
+++ b/js/tsconfig.json
@@ -18,7 +18,14 @@
"paths": {
"@/*": ["src/*"]
},
- "lib": ["esnext", "dom", "dom.iterable", "scripthost", "webworker"]
+ "lib": [
+ "esnext",
+ "dom",
+ "es2017.intl",
+ "dom.iterable",
+ "scripthost",
+ "webworker"
+ ]
},
"include": [
"src/**/*.ts",
diff --git a/js/yarn.lock b/js/yarn.lock
index c8c2f541..169d5a78 100644
--- a/js/yarn.lock
+++ b/js/yarn.lock
@@ -2254,6 +2254,16 @@
"@typescript-eslint/types" "4.33.0"
eslint-visitor-keys "^2.0.0"
+"@vue-a11y/announcer@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@vue-a11y/announcer/-/announcer-2.1.0.tgz#ed725e90b91870c76285840e0aaa637cfafbf27f"
+ integrity sha512-7V1osiJQxZPBA+2duF2nZugwgbIba/yvKLsHWvGIBJGY0VZhR4vYyFH3VFyFH2Yi46tHEVBN+X+a0uQaJMhCsQ==
+
+"@vue-a11y/skip-to@^2.1.2":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/@vue-a11y/skip-to/-/skip-to-2.1.2.tgz#a50f5b97605f5054ca7a7e222bdc721405e38f38"
+ integrity sha512-oKx0YE/nfWSBI48RKHoRsUmpY0//rDPBZTGk1LxhkkUsXPwzuMlJBFrWGIswdd+3DiIE5OyiDaM45ZldYjtDIA==
+
"@vue/apollo-option@4.0.0-alpha.11":
version "4.0.0-alpha.11"
resolved "https://registry.yarnpkg.com/@vue/apollo-option/-/apollo-option-4.0.0-alpha.11.tgz#b4ecac2d1ac40271cb7f20683fb8e4c85974329a"
@@ -4211,6 +4221,11 @@ data-urls@^2.0.0:
whatwg-mimetype "^2.3.0"
whatwg-url "^8.0.0"
+date-fns-tz@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.1.6.tgz#93cbf354e2aeb2cd312ffa32e462c1943cf20a8e"
+ integrity sha512-nyy+URfFI3KUY7udEJozcoftju+KduaqkVfwyTIE0traBiVye09QnyWKLZK7drRr5h9B7sPJITmQnS3U6YOdQg==
+
date-fns@^2.16.0:
version "2.25.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.25.0.tgz#8c5c8f1d958be3809a9a03f4b742eba894fc5680"
diff --git a/lib/federation/activity_pub/actor.ex b/lib/federation/activity_pub/actor.ex
index 7509ee7f..552a879f 100644
--- a/lib/federation/activity_pub/actor.ex
+++ b/lib/federation/activity_pub/actor.ex
@@ -49,7 +49,7 @@ defmodule Mobilizon.Federation.ActivityPub.Actor do
Create an actor locally by its URL (AP ID)
"""
@spec make_actor_from_url(url :: String.t(), preload :: boolean()) ::
- {:ok, Actor.t()} | {:error, make_actor_errors}
+ {:ok, Actor.t()} | {:error, make_actor_errors | Ecto.Changeset.t()}
def make_actor_from_url(url, preload \\ false) do
if are_same_origin?(url, Endpoint.url()) do
{:error, :actor_is_local}
@@ -63,7 +63,7 @@ defmodule Mobilizon.Federation.ActivityPub.Actor do
Logger.info("Actor #{url} was deleted")
{:error, :actor_deleted}
- {:error, err} when err in [:http_error, :json_decode_error] ->
+ {:error, err} ->
{:error, err}
end
end
diff --git a/lib/federation/activity_pub/permission.ex b/lib/federation/activity_pub/permission.ex
index 9a14c167..83b910f6 100644
--- a/lib/federation/activity_pub/permission.ex
+++ b/lib/federation/activity_pub/permission.ex
@@ -35,7 +35,7 @@ defmodule Mobilizon.Federation.ActivityPub.Permission do
@doc """
Check that actor can create such an object
"""
- @spec can_create_group_object?(String.t() | integer(), String.t() | integer(), Entity.t()) ::
+ @spec can_create_group_object?(String.t() | integer(), String.t() | integer(), struct()) ::
boolean()
def can_create_group_object?(
actor_id,
diff --git a/lib/federation/activity_pub/types/events.ex b/lib/federation/activity_pub/types/events.ex
index b2a22229..0fdd3f32 100644
--- a/lib/federation/activity_pub/types/events.ex
+++ b/lib/federation/activity_pub/types/events.ex
@@ -156,7 +156,7 @@ defmodule Mobilizon.Federation.ActivityPub.Types.Events do
role
)
- {:error, %Ecto.Changeset{} = err} ->
+ {:error, _, %Ecto.Changeset{} = err, _} ->
{:error, err}
end
else
diff --git a/lib/graphql/api/events.ex b/lib/graphql/api/events.ex
index 92d4b111..80d41282 100644
--- a/lib/graphql/api/events.ex
+++ b/lib/graphql/api/events.ex
@@ -12,7 +12,8 @@ defmodule Mobilizon.GraphQL.API.Events do
@doc """
Create an event
"""
- @spec create_event(map) :: {:ok, Activity.t(), Event.t()} | any
+ @spec create_event(map) ::
+ {:ok, Activity.t(), Event.t()} | {:error, atom() | Ecto.Changeset.t()}
def create_event(args) do
# For now we don't federate drafts but it will be needed if we want to edit them as groups
Actions.Create.create(:event, prepare_args(args), should_federate(args))
@@ -21,7 +22,8 @@ defmodule Mobilizon.GraphQL.API.Events do
@doc """
Update an event
"""
- @spec update_event(map, Event.t()) :: {:ok, Activity.t(), Event.t()} | any
+ @spec update_event(map, Event.t()) ::
+ {:ok, Activity.t(), Event.t()} | {:error, atom | Ecto.Changeset.t()}
def update_event(args, %Event{} = event) do
Actions.Update.update(event, prepare_args(args), should_federate(args))
end
diff --git a/lib/graphql/middleware/current_actor_provider.ex b/lib/graphql/middleware/current_actor_provider.ex
index d34eb2a9..abf7384c 100644
--- a/lib/graphql/middleware/current_actor_provider.ex
+++ b/lib/graphql/middleware/current_actor_provider.ex
@@ -16,7 +16,9 @@ defmodule Mobilizon.GraphQL.Middleware.CurrentActorProvider do
_config
) do
case Cachex.fetch(:default_actors, to_string(user_id), fn -> default(user) end) do
- {status, %Actor{} = current_actor} when status in [:ok, :commit] ->
+ {status, %Actor{preferred_username: preferred_username} = current_actor}
+ when status in [:ok, :commit] ->
+ Sentry.Context.set_user_context(%{name: preferred_username})
context = Map.put(context, :current_actor, current_actor)
%Absinthe.Resolution{resolution | context: context}
diff --git a/lib/graphql/resolvers/address.ex b/lib/graphql/resolvers/address.ex
index a2476a8d..bb17ef95 100644
--- a/lib/graphql/resolvers/address.ex
+++ b/lib/graphql/resolvers/address.ex
@@ -11,7 +11,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Address do
@doc """
Search an address
"""
- @spec search(map, map, map) :: {:ok, [Address.t()]}
+ @spec search(map, map, map) :: {:ok, [map()]}
def search(
_parent,
%{query: query, locale: locale, page: _page, limit: _limit} = args,
diff --git a/lib/graphql/resolvers/event.ex b/lib/graphql/resolvers/event.ex
index 4db49fd1..1138b0bd 100644
--- a/lib/graphql/resolvers/event.ex
+++ b/lib/graphql/resolvers/event.ex
@@ -13,9 +13,11 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
alias Mobilizon.Federation.ActivityPub.Activity
alias Mobilizon.Federation.ActivityPub.Permission
+ alias Mobilizon.Service.TimezoneDetector
import Mobilizon.Users.Guards, only: [is_moderator: 1]
import Mobilizon.Web.Gettext
import Mobilizon.GraphQL.Resolvers.Event.Utils
+ require Logger
# We limit the max number of events that can be retrieved
@event_max_limit 100
@@ -262,36 +264,48 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
def create_event(
_parent,
%{organizer_actor_id: organizer_actor_id} = args,
- %{context: %{current_user: user}} = _resolution
+ %{context: %{current_user: %User{} = user}} = _resolution
) do
- # See https://github.com/absinthe-graphql/absinthe/issues/490
- if Config.only_groups_can_create_events?() and Map.get(args, :attributed_to_id) == nil do
- {:error, "only groups can create events"}
- else
- with {:is_owned, %Actor{} = organizer_actor} <- User.owns_actor(user, organizer_actor_id),
- args <- Map.put(args, :options, args[:options] || %{}),
- {:group_check, true} <- {:group_check, is_organizer_group_member?(args)},
- args_with_organizer <- Map.put(args, :organizer_actor, organizer_actor),
- {:ok, %Activity{data: %{"object" => %{"type" => "Event"}}}, %Event{} = event} <-
- API.Events.create_event(args_with_organizer) do
- {:ok, event}
- else
- {:group_check, false} ->
+ case User.owns_actor(user, organizer_actor_id) do
+ {:is_owned, %Actor{} = organizer_actor} ->
+ if can_create_event?(args) do
+ if is_organizer_group_member?(args) do
+ args_with_organizer =
+ args |> Map.put(:organizer_actor, organizer_actor) |> extract_timezone(user.id)
+
+ case API.Events.create_event(args_with_organizer) do
+ {:ok, %Activity{data: %{"object" => %{"type" => "Event"}}}, %Event{} = event} ->
+ {:ok, event}
+
+ {:error, %Ecto.Changeset{} = error} ->
+ {:error, error}
+
+ {:error, err} ->
+ Logger.warning("Unknown error while creating event: #{inspect(err)}")
+
+ {:error,
+ dgettext(
+ "errors",
+ "Unknown error while creating event"
+ )}
+ end
+ else
+ {:error,
+ dgettext(
+ "errors",
+ "Organizer profile doesn't have permission to create an event on behalf of this group"
+ )}
+ end
+ else
{:error,
dgettext(
"errors",
- "Organizer profile doesn't have permission to create an event on behalf of this group"
+ "Only groups can create events"
)}
+ end
- {:is_owned, nil} ->
- {:error, dgettext("errors", "Organizer profile is not owned by the user")}
-
- {:error, _, %Ecto.Changeset{} = error, _} ->
- {:error, error}
-
- {:error, %Ecto.Changeset{} = error} ->
- {:error, error}
- end
+ {:is_owned, nil} ->
+ {:error, dgettext("errors", "Organizer profile is not owned by the user")}
end
end
@@ -299,6 +313,15 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
{:error, dgettext("errors", "You need to be logged-in to create events")}
end
+ @spec can_create_event?(map()) :: boolean()
+ defp can_create_event?(args) do
+ if Config.only_groups_can_create_events?() do
+ Map.get(args, :attributed_to_id) != nil
+ else
+ true
+ end
+ end
+
@doc """
Update an event
"""
@@ -314,6 +337,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
with {:ok, %Event{} = event} <- Events.get_event_with_preload(event_id),
{:ok, args} <- verify_profile_change(args, event, user, actor),
+ args <- extract_timezone(args, user.id),
{:event_can_be_managed, true} <-
{:event_can_be_managed, can_event_be_updated_by?(event, actor)},
{:ok, %Activity{data: %{"object" => %{"type" => "Event"}}}, %Event{} = event} <-
@@ -442,4 +466,42 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
{:ok, args}
end
end
+
+ @spec extract_timezone(map(), String.t() | integer()) :: map()
+ defp extract_timezone(args, user_id) do
+ event_options = Map.get(args, :options, %{})
+ timezone = Map.get(event_options, :timezone)
+ physical_address = Map.get(args, :physical_address)
+
+ fallback_tz =
+ case Mobilizon.Users.get_setting(user_id) do
+ nil -> nil
+ setting -> setting |> Map.from_struct() |> get_in([:timezone])
+ end
+
+ timezone = determine_timezone(timezone, physical_address, fallback_tz)
+
+ event_options = Map.put(event_options, :timezone, timezone)
+
+ Map.put(args, :options, event_options)
+ end
+
+ @spec determine_timezone(
+ String.t() | nil,
+ any(),
+ String.t() | nil
+ ) :: String.t() | nil
+ defp determine_timezone(timezone, physical_address, fallback_tz) do
+ case physical_address do
+ physical_address when is_map(physical_address) ->
+ TimezoneDetector.detect(
+ timezone,
+ Map.get(physical_address, :geom),
+ fallback_tz
+ )
+
+ _ ->
+ timezone || fallback_tz
+ end
+ end
end
diff --git a/lib/graphql/resolvers/group.ex b/lib/graphql/resolvers/group.ex
index f003dae5..5a4ea22e 100644
--- a/lib/graphql/resolvers/group.ex
+++ b/lib/graphql/resolvers/group.ex
@@ -10,7 +10,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Group do
alias Mobilizon.Federation.ActivityPub.Actions
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
alias Mobilizon.GraphQL.API
- alias Mobilizon.Users.User
+ alias Mobilizon.Users.{User, UserRole}
alias Mobilizon.Web.Upload
import Mobilizon.Web.Gettext
@@ -143,14 +143,14 @@ defmodule Mobilizon.GraphQL.Resolvers.Group do
}
}
) do
- if Config.only_admin_can_create_groups?() and not is_admin(role) do
- {:error, "only admins can create groups"}
- else
- with args when is_map(args) <-
- Map.update(args, :preferred_username, "", &String.downcase/1),
- args when is_map(args) <- Map.put(args, :creator_actor, creator_actor),
- args when is_map(args) <- Map.put(args, :creator_actor_id, creator_actor_id),
- {:picture, args} when is_map(args) <- {:picture, save_attached_pictures(args)},
+ if can_create_group?(role) do
+ args =
+ args
+ |> Map.update(:preferred_username, "", &String.downcase/1)
+ |> Map.put(:creator_actor, creator_actor)
+ |> Map.put(:creator_actor_id, creator_actor_id)
+
+ with {:picture, args} when is_map(args) <- {:picture, save_attached_pictures(args)},
{:ok, _activity, %Actor{type: :Group} = group} <-
API.Groups.create_group(args) do
{:ok, group}
@@ -161,6 +161,8 @@ defmodule Mobilizon.GraphQL.Resolvers.Group do
{:error, err} when is_binary(err) ->
{:error, err}
end
+ else
+ {:error, dgettext("errors", "Only admins can create groups")}
end
end
@@ -168,6 +170,15 @@ defmodule Mobilizon.GraphQL.Resolvers.Group do
{:error, "You need to be logged-in to create a group"}
end
+ @spec can_create_group?(UserRole.t()) :: boolean()
+ defp can_create_group?(role) do
+ if Config.only_admin_can_create_groups?() do
+ is_admin(role)
+ else
+ true
+ end
+ end
+
@doc """
Update a group. The creator is automatically added as admin
"""
diff --git a/lib/graphql/schema/address.ex b/lib/graphql/schema/address.ex
index bb1c1f62..bee6ac9c 100644
--- a/lib/graphql/schema/address.ex
+++ b/lib/graphql/schema/address.ex
@@ -21,6 +21,7 @@ defmodule Mobilizon.GraphQL.Schema.AddressType do
field(:url, :string, description: "The address's URL")
field(:id, :id, description: "The address's ID")
field(:origin_id, :string, description: "The address's original ID from the provider")
+ field(:timezone, :string, description: "The (estimated) timezone of the location")
end
@desc """
@@ -54,6 +55,7 @@ defmodule Mobilizon.GraphQL.Schema.AddressType do
field(:url, :string, description: "The address's URL")
field(:id, :id, description: "The address's ID")
field(:origin_id, :string, description: "The address's original ID from the provider")
+ field(:timezone, :string, description: "The (estimated) timezone of the location")
end
@desc """
diff --git a/lib/graphql/schema/event.ex b/lib/graphql/schema/event.ex
index 2bfe5993..ba515906 100644
--- a/lib/graphql/schema/event.ex
+++ b/lib/graphql/schema/event.ex
@@ -237,6 +237,8 @@ defmodule Mobilizon.GraphQL.Schema.EventType do
field(:show_start_time, :boolean, description: "Show event start time")
field(:show_end_time, :boolean, description: "Show event end time")
+ field(:timezone, :string, description: "The event's timezone")
+
field(:hide_organizer_when_group_event, :boolean,
description:
"Whether to show or hide the person organizer when event is organized by a group"
@@ -286,6 +288,8 @@ defmodule Mobilizon.GraphQL.Schema.EventType do
field(:show_start_time, :boolean, description: "Show event start time")
field(:show_end_time, :boolean, description: "Show event end time")
+ field(:timezone, :string, description: "The event's timezone")
+
field(:hide_organizer_when_group_event, :boolean,
description:
"Whether to show or hide the person organizer when event is organized by a group"
@@ -393,7 +397,7 @@ defmodule Mobilizon.GraphQL.Schema.EventType do
arg(:category, :string, default_value: "meeting", description: "The event's category")
arg(:physical_address, :address_input, description: "The event's physical address")
- arg(:options, :event_options_input, description: "The event options")
+ arg(:options, :event_options_input, default_value: %{}, description: "The event options")
arg(:metadata, list_of(:event_metadata_input), description: "The event metadata")
arg(:draft, :boolean,
diff --git a/lib/mobilizon.ex b/lib/mobilizon.ex
index 1b9816cc..a6f9e640 100644
--- a/lib/mobilizon.ex
+++ b/lib/mobilizon.ex
@@ -48,6 +48,7 @@ defmodule Mobilizon do
Guardian.DB.Token.SweeperServer,
ActivityPub.Federator,
Mobilizon.PythonWorker,
+ TzWorld.Backend.DetsWithIndexCache,
cachex_spec(:feed, 2500, 60, 60, &Feed.create_cache/1),
cachex_spec(:ics, 2500, 60, 60, &ICalendar.create_cache/1),
cachex_spec(
diff --git a/lib/mobilizon/addresses/address.ex b/lib/mobilizon/addresses/address.ex
index edd02ac8..89845102 100644
--- a/lib/mobilizon/addresses/address.ex
+++ b/lib/mobilizon/addresses/address.ex
@@ -12,17 +12,18 @@ defmodule Mobilizon.Addresses.Address do
alias Mobilizon.Web.Endpoint
@type t :: %__MODULE__{
- country: String.t(),
- locality: String.t(),
- region: String.t(),
- description: String.t(),
- geom: Geo.PostGIS.Geometry.t(),
- postal_code: String.t(),
- street: String.t(),
- type: String.t(),
+ country: String.t() | nil,
+ locality: String.t() | nil,
+ region: String.t() | nil,
+ description: String.t() | nil,
+ geom: Geo.PostGIS.Geometry.t() | nil,
+ postal_code: String.t() | nil,
+ street: String.t() | nil,
+ type: String.t() | nil,
url: String.t(),
- origin_id: String.t(),
- events: [Event.t()]
+ origin_id: String.t() | nil,
+ events: [Event.t()],
+ timezone: String.t() | nil
}
@required_attrs [:url]
@@ -35,7 +36,8 @@ defmodule Mobilizon.Addresses.Address do
:postal_code,
:street,
:origin_id,
- :type
+ :type,
+ :timezone
]
@attrs @required_attrs ++ @optional_attrs
@@ -50,6 +52,7 @@ defmodule Mobilizon.Addresses.Address do
field(:type, :string)
field(:url, :string)
field(:origin_id, :string)
+ field(:timezone, :string)
has_many(:events, Event, foreign_key: :physical_address_id)
@@ -61,6 +64,7 @@ defmodule Mobilizon.Addresses.Address do
def changeset(%__MODULE__{} = address, attrs) do
address
|> cast(attrs, @attrs)
+ |> maybe_set_timezone()
|> set_url()
|> validate_required(@required_attrs)
|> unique_constraint(:url, name: :addresses_url_index)
@@ -90,4 +94,29 @@ defmodule Mobilizon.Addresses.Address do
"#{address.street} #{address.postal_code} #{address.locality} #{address.region} #{address.country}"
)
end
+
+ @spec maybe_set_timezone(Ecto.Changeset.t()) :: Ecto.Changeset.t()
+ defp maybe_set_timezone(%Ecto.Changeset{} = changeset) do
+ case get_change(changeset, :geom) do
+ nil ->
+ changeset
+
+ geom ->
+ case get_field(changeset, :timezone) do
+ # Only update the timezone if the geom has change and we don't already have a set timezone
+ nil -> put_change(changeset, :timezone, timezone(geom))
+ _ -> changeset
+ end
+ end
+ end
+
+ @spec timezone(Geo.PostGIS.Geometry.t() | nil) :: String.t() | nil
+ defp timezone(nil), do: nil
+
+ defp timezone(geom) do
+ case TzWorld.timezone_at(geom) do
+ {:ok, tz} -> tz
+ {:error, _err} -> nil
+ end
+ end
end
diff --git a/lib/mobilizon/events/event_options.ex b/lib/mobilizon/events/event_options.ex
index 30336975..b641b201 100644
--- a/lib/mobilizon/events/event_options.ex
+++ b/lib/mobilizon/events/event_options.ex
@@ -27,6 +27,7 @@ defmodule Mobilizon.Events.EventOptions do
participation_condition: [EventParticipationCondition.t()],
show_start_time: boolean,
show_end_time: boolean,
+ timezone: String.t() | nil,
hide_organizer_when_group_event: boolean
}
@@ -41,6 +42,7 @@ defmodule Mobilizon.Events.EventOptions do
:show_participation_price,
:show_start_time,
:show_end_time,
+ :timezone,
:hide_organizer_when_group_event
]
@@ -57,6 +59,7 @@ defmodule Mobilizon.Events.EventOptions do
field(:show_participation_price, :boolean)
field(:show_start_time, :boolean, default: true)
field(:show_end_time, :boolean, default: true)
+ field(:timezone, :string)
field(:hide_organizer_when_group_event, :boolean, default: false)
embeds_many(:offers, EventOffer)
diff --git a/lib/mobilizon/events/events.ex b/lib/mobilizon/events/events.ex
index a1f9aeef..83001cb1 100644
--- a/lib/mobilizon/events/events.ex
+++ b/lib/mobilizon/events/events.ex
@@ -401,7 +401,8 @@ defmodule Mobilizon.Events do
|> Page.build_page(page, limit)
end
- @spec list_organized_events_for_actor(Actor.t(), integer | nil, integer | nil) :: Page.t()
+ @spec list_organized_events_for_actor(Actor.t(), integer | nil, integer | nil) ::
+ Page.t(Event.t())
def list_organized_events_for_actor(%Actor{id: actor_id}, page \\ nil, limit \\ nil) do
actor_id
|> event_for_actor_query(desc: :begins_on)
@@ -409,13 +410,15 @@ defmodule Mobilizon.Events do
|> Page.build_page(page, limit)
end
+ @spec list_simple_organized_events_for_group(Actor.t(), integer | nil, integer | nil) ::
+ Page.t(Event.t())
def list_simple_organized_events_for_group(%Actor{} = actor, page \\ nil, limit \\ nil) do
list_organized_events_for_group(actor, :all, nil, nil, page, limit)
end
@spec list_organized_events_for_group(
Actor.t(),
- EventVisibility.t(),
+ EventVisibility.t() | :all,
DateTime.t() | nil,
DateTime.t() | nil,
integer | nil,
@@ -885,7 +888,9 @@ defmodule Mobilizon.Events do
@doc """
Creates a participant.
"""
- @spec create_participant(map) :: {:ok, Participant.t()} | {:error, Changeset.t()}
+ @spec create_participant(map) ::
+ {:ok, Participant.t()}
+ | {:error, :participant | :update_event_participation_stats, Changeset.t(), map()}
def create_participant(attrs \\ %{}, update_event_participation_stats \\ true) do
with {:ok, %{participant: %Participant{} = participant}} <-
Multi.new()
@@ -912,7 +917,8 @@ defmodule Mobilizon.Events do
Updates a participant.
"""
@spec update_participant(Participant.t(), map) ::
- {:ok, Participant.t()} | {:error, Changeset.t()}
+ {:ok, Participant.t()}
+ | {:error, :participant | :update_event_participation_stats, Changeset.t(), map()}
def update_participant(%Participant{role: old_role} = participant, attrs) do
with {:ok, %{participant: %Participant{} = participant}} <-
Multi.new()
@@ -1625,11 +1631,12 @@ defmodule Mobilizon.Events do
from(p in query, where: p.role == ^role)
end
+ @spec event_filter_visibility(Ecto.Queryable.t(), :public | :all) ::
+ Ecto.Queryable.t() | Ecto.Query.t()
defp event_filter_visibility(query, :all), do: query
defp event_filter_visibility(query, :public) do
- query
- |> where(visibility: ^:public, draft: false)
+ where(query, visibility: ^:public, draft: false)
end
defp event_filter_begins_on(query, nil, nil),
diff --git a/lib/service/geospatial/addok.ex b/lib/service/geospatial/addok.ex
index d9c196db..faecdb20 100644
--- a/lib/service/geospatial/addok.ex
+++ b/lib/service/geospatial/addok.ex
@@ -66,12 +66,15 @@ defmodule Mobilizon.Service.Geospatial.Addok do
defp process_data(features) do
features
|> Enum.map(fn %{"geometry" => geometry, "properties" => properties} ->
+ coordinates = geometry |> Map.get("coordinates") |> Provider.coordinates()
+
%Address{
country: Map.get(properties, "country", default_country()),
locality: Map.get(properties, "city"),
region: Map.get(properties, "context"),
description: Map.get(properties, "name") || street_address(properties),
- geom: geometry |> Map.get("coordinates") |> Provider.coordinates(),
+ geom: coordinates,
+ timezone: Provider.timezone(coordinates),
postal_code: Map.get(properties, "postcode"),
street: properties |> street_address()
}
diff --git a/lib/service/geospatial/google_maps.ex b/lib/service/geospatial/google_maps.ex
index 936e000f..47dc9179 100644
--- a/lib/service/geospatial/google_maps.ex
+++ b/lib/service/geospatial/google_maps.ex
@@ -124,12 +124,15 @@ defmodule Mobilizon.Service.Geospatial.GoogleMaps do
description
end
+ coordinates = Provider.coordinates([lon, lat])
+
%Address{
country: Map.get(components, "country"),
locality: Map.get(components, "locality"),
region: Map.get(components, "administrative_area_level_1"),
description: description,
- geom: [lon, lat] |> Provider.coordinates(),
+ geom: coordinates,
+ timezone: Provider.timezone(coordinates),
postal_code: Map.get(components, "postal_code"),
street: street_address(components),
origin_id: "gm:" <> to_string(place_id)
diff --git a/lib/service/geospatial/map_quest.ex b/lib/service/geospatial/map_quest.ex
index 155a53df..4d27e57b 100644
--- a/lib/service/geospatial/map_quest.ex
+++ b/lib/service/geospatial/map_quest.ex
@@ -98,12 +98,15 @@ defmodule Mobilizon.Service.Geospatial.MapQuest do
end
defp produce_address(address, lat, lng) do
+ coordinates = Provider.coordinates([lng, lat])
+
%Address{
country: Map.get(address, "adminArea1"),
locality: Map.get(address, "adminArea5"),
region: Map.get(address, "adminArea3"),
description: Map.get(address, "street"),
- geom: [lng, lat] |> Provider.coordinates(),
+ geom: coordinates,
+ timezone: Provider.timezone(coordinates),
postal_code: Map.get(address, "postalCode"),
street: Map.get(address, "street")
}
diff --git a/lib/service/geospatial/mimirsbrunn.ex b/lib/service/geospatial/mimirsbrunn.ex
index d718f9d9..3dafed63 100644
--- a/lib/service/geospatial/mimirsbrunn.ex
+++ b/lib/service/geospatial/mimirsbrunn.ex
@@ -75,7 +75,8 @@ defmodule Mobilizon.Service.Geospatial.Mimirsbrunn do
"properties" => %{"geocoding" => geocoding}
} ->
address = process_address(geocoding)
- %Address{address | geom: Provider.coordinates(coordinates)}
+ coordinates = Provider.coordinates(coordinates)
+ %Address{address | geom: coordinates, timezone: Provider.timezone(coordinates)}
end)
end
diff --git a/lib/service/geospatial/nominatim.ex b/lib/service/geospatial/nominatim.ex
index c32e7ebc..85754df9 100644
--- a/lib/service/geospatial/nominatim.ex
+++ b/lib/service/geospatial/nominatim.ex
@@ -75,7 +75,8 @@ defmodule Mobilizon.Service.Geospatial.Nominatim do
"properties" => %{"geocoding" => geocoding}
} ->
address = process_address(geocoding)
- %Address{address | geom: Provider.coordinates(coordinates)}
+ coordinates = Provider.coordinates(coordinates)
+ %Address{address | geom: coordinates, timezone: Provider.timezone(coordinates)}
end)
end
diff --git a/lib/service/geospatial/pelias.ex b/lib/service/geospatial/pelias.ex
index 6622124b..72ed452a 100644
--- a/lib/service/geospatial/pelias.ex
+++ b/lib/service/geospatial/pelias.ex
@@ -76,7 +76,8 @@ defmodule Mobilizon.Service.Geospatial.Pelias do
"properties" => properties
} ->
address = process_address(properties)
- %Address{address | geom: Provider.coordinates(coordinates)}
+ coordinates = Provider.coordinates(coordinates)
+ %Address{address | geom: coordinates, timezone: Provider.timezone(coordinates)}
end)
end
diff --git a/lib/service/geospatial/photon.ex b/lib/service/geospatial/photon.ex
index ef47bb7f..83891450 100644
--- a/lib/service/geospatial/photon.ex
+++ b/lib/service/geospatial/photon.ex
@@ -69,12 +69,15 @@ defmodule Mobilizon.Service.Geospatial.Photon do
defp process_data(features) do
features
|> Enum.map(fn %{"geometry" => geometry, "properties" => properties} ->
+ coordinates = geometry |> Map.get("coordinates") |> Provider.coordinates()
+
%Address{
country: Map.get(properties, "country"),
locality: Map.get(properties, "city"),
region: Map.get(properties, "state"),
description: Map.get(properties, "name") || street_address(properties),
- geom: geometry |> Map.get("coordinates") |> Provider.coordinates(),
+ geom: coordinates,
+ timezone: Provider.timezone(coordinates),
postal_code: Map.get(properties, "postcode"),
street: properties |> street_address()
}
diff --git a/lib/service/geospatial/provider.ex b/lib/service/geospatial/provider.ex
index 8c20712c..3f08bb16 100644
--- a/lib/service/geospatial/provider.ex
+++ b/lib/service/geospatial/provider.ex
@@ -79,6 +79,19 @@ defmodule Mobilizon.Service.Geospatial.Provider do
def coordinates(_), do: nil
+ @doc """
+ Returns the timezone for a Geo.Point
+ """
+ @spec timezone(nil | Geo.Point.t()) :: nil | String.t()
+ def timezone(nil), do: nil
+
+ def timezone(%Geo.Point{} = point) do
+ case TzWorld.timezone_at(point) do
+ {:ok, tz} -> tz
+ {:error, _err} -> nil
+ end
+ end
+
@spec endpoint(atom()) :: String.t()
def endpoint(provider) do
Application.get_env(:mobilizon, provider) |> get_in([:endpoint])
diff --git a/lib/service/metadata/event.ex b/lib/service/metadata/event.ex
index e88c2bc9..6dede3f2 100644
--- a/lib/service/metadata/event.ex
+++ b/lib/service/metadata/event.ex
@@ -2,7 +2,7 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Events.Event do
alias Phoenix.HTML
alias Phoenix.HTML.Tag
alias Mobilizon.Addresses.Address
- alias Mobilizon.Events.Event
+ alias Mobilizon.Events.{Event, EventOptions}
alias Mobilizon.Web.JsonLD.ObjectView
import Mobilizon.Service.Metadata.Utils,
@@ -53,20 +53,52 @@ defimpl Mobilizon.Service.Metadata, for: Mobilizon.Events.Event do
%Event{
description: description,
begins_on: begins_on,
- physical_address: %Address{} = address
+ physical_address: address,
+ options: %EventOptions{timezone: timezone},
+ language: language
},
locale
) do
- "#{datetime_to_string(begins_on, locale)} - #{render_address(address)} - #{process_description(description, locale)}"
+ language = build_language(language, locale)
+ begins_on = build_begins_on(begins_on, timezone)
+
+ begins_on
+ |> datetime_to_string(language)
+ |> (&[&1]).()
+ |> add_timezone(begins_on)
+ |> maybe_build_address(address)
+ |> build_description(description, language)
+ |> Enum.join(" - ")
end
- defp description(
- %Event{
- description: description,
- begins_on: begins_on
- },
- locale
- ) do
- "#{datetime_to_string(begins_on, locale)} - #{process_description(description, locale)}"
+ @spec build_language(String.t() | nil, String.t()) :: String.t()
+ defp build_language(language, locale), do: language || locale
+
+ @spec build_begins_on(DateTime.t(), String.t() | nil) :: DateTime.t()
+ defp build_begins_on(begins_on, timezone) do
+ if timezone do
+ case DateTime.shift_zone(begins_on, timezone) do
+ {:ok, begins_on} -> begins_on
+ {:error, _err} -> begins_on
+ end
+ else
+ begins_on
+ end
+ end
+
+ defp add_timezone(elements, %DateTime{} = begins_on) do
+ elements ++ [Cldr.DateTime.Formatter.zone_gmt(begins_on)]
+ end
+
+ @spec maybe_build_address(list(String.t()), Address.t() | nil) :: list(String.t())
+ defp maybe_build_address(elements, %Address{} = address) do
+ elements ++ [render_address(address)]
+ end
+
+ defp maybe_build_address(elements, _address), do: elements
+
+ @spec build_description(list(String.t()), String.t(), String.t()) :: list(String.t())
+ defp build_description(elements, description, language) do
+ elements ++ [process_description(description, language)]
end
end
diff --git a/lib/service/timezone_detector.ex b/lib/service/timezone_detector.ex
new file mode 100644
index 00000000..91d002b9
--- /dev/null
+++ b/lib/service/timezone_detector.ex
@@ -0,0 +1,42 @@
+defmodule Mobilizon.Service.TimezoneDetector do
+ @moduledoc """
+ Detect the timezone from a point
+ """
+
+ @type detectable :: Geo.Point.t() | Geo.PointZ.t() | {float() | float()}
+
+ @doc """
+ Detect the most appropriate timezone from a value, a geographic set of coordinates and a fallback
+ """
+ @spec detect(String.t() | nil, detectable() | nil, String.t()) :: String.t()
+ def detect(tz, nil, fallback), do: detect(tz, fallback)
+
+ def detect(nil, geo, fallback) do
+ case TzWorld.timezone_at(geo) do
+ {:ok, timezone} ->
+ timezone
+
+ {:error, :time_zone_not_found} ->
+ fallback
+ end
+ end
+
+ def detect(timezone, geo, fallback) do
+ if Tzdata.zone_exists?(timezone) do
+ timezone
+ else
+ detect(nil, geo, fallback)
+ end
+ end
+
+ @spec detect(String.t() | nil, String.t()) :: String.t()
+ def detect(nil, fallback), do: fallback
+
+ def detect(timezone, fallback) do
+ if Tzdata.zone_exists?(timezone) do
+ timezone
+ else
+ fallback
+ end
+ end
+end
diff --git a/lib/web/auth/context.ex b/lib/web/auth/context.ex
index dbf216c9..4e3eaaae 100644
--- a/lib/web/auth/context.ex
+++ b/lib/web/auth/context.ex
@@ -27,23 +27,30 @@ defmodule Mobilizon.Web.Auth.Context do
user_agent = conn |> Plug.Conn.get_req_header("user-agent") |> List.first()
+ if SentryAdapter.enabled?() do
+ Sentry.Context.set_request_context(%{
+ url: Plug.Conn.request_url(conn),
+ method: conn.method,
+ headers: %{
+ "User-Agent": user_agent,
+ Referer: conn |> Plug.Conn.get_req_header("referer") |> List.first()
+ },
+ query_string: conn.query_string,
+ env: %{
+ REQUEST_ID: conn |> Plug.Conn.get_resp_header("x-request-id") |> List.first(),
+ SERVER_NAME: conn.host
+ }
+ })
+ end
+
{conn, context} =
case Guardian.Plug.current_resource(conn) do
%User{id: user_id, email: user_email} = user ->
if SentryAdapter.enabled?() do
- Sentry.Context.set_user_context(%{id: user_id, name: user_email})
-
- Sentry.Context.set_request_context(%{
- url: Plug.Conn.request_url(conn),
- method: conn.method,
- headers: %{
- "User-Agent": user_agent
- },
- query_string: conn.query_string,
- env: %{
- REQUEST_ID: conn |> Plug.Conn.get_resp_header("x-request-id") |> List.first(),
- SERVER_NAME: conn.host
- }
+ Sentry.Context.set_user_context(%{
+ id: user_id,
+ email: user_email,
+ ip_address: context.ip
})
end
diff --git a/mix.exs b/mix.exs
index 127b768d..555f0b98 100644
--- a/mix.exs
+++ b/mix.exs
@@ -7,7 +7,7 @@ defmodule Mobilizon.Mixfile do
[
app: :mobilizon,
version: @version,
- elixir: "~> 1.11",
+ elixir: "~> 1.12",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:gettext] ++ Mix.compilers(),
xref: [exclude: [:eldap]],
@@ -206,6 +206,7 @@ defmodule Mobilizon.Mixfile do
{:paasaa, "~> 0.5.0"},
{:nimble_csv, "~> 1.1"},
{:export, "~> 0.1.0"},
+ {:tz_world, "~> 0.5.0"},
# Dev and test dependencies
{:phoenix_live_reload, "~> 1.2", only: [:dev, :e2e]},
{:ex_machina, "~> 2.3", only: [:dev, :test]},
diff --git a/mix.lock b/mix.lock
index e0792c07..af28ed58 100644
--- a/mix.lock
+++ b/mix.lock
@@ -131,6 +131,7 @@
"telemetry": {:hex, :telemetry, "1.0.0", "0f453a102cdf13d506b7c0ab158324c337c41f1cc7548f0bc0e130bbf0ae9452", [:rebar3], [], "hexpm", "73bc09fa59b4a0284efb4624335583c528e07ec9ae76aca96ea0673850aec57a"},
"tesla": {:hex, :tesla, "1.4.3", "f5a494e08fb1abe4fd9c28abb17f3d9b62b8f6fc492860baa91efb1aab61c8a0", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.3", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, "~> 1.3", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "e0755bb664bf4d664af72931f320c97adbf89da4586670f4864bf259b5750386"},
"timex": {:hex, :timex, "3.7.6", "502d2347ec550e77fdf419bc12d15bdccd31266bb7d925b30bf478268098282f", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 1.0", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "a296327f79cb1ec795b896698c56e662ed7210cc9eb31f0ab365eb3a62e2c589"},
+ "tz_world": {:hex, :tz_world, "0.5.0", "fb93adb6ec9a32bbf1664d84083bb426b5273a31d4051a93654feaf9feb96b33", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:geo, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "df236849eff87a36c436b557803fb72b57f10dbc3f5d44cd1c06324e0c8447bb"},
"tzdata": {:hex, :tzdata, "1.1.0", "72f5babaa9390d0f131465c8702fa76da0919e37ba32baa90d93c583301a8359", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "18f453739b48d3dc5bcf0e8906d2dc112bb40baafe2c707596d89f3c8dd14034"},
"ueberauth": {:hex, :ueberauth, "0.6.3", "d42ace28b870e8072cf30e32e385579c57b9cc96ec74fa1f30f30da9c14f3cc0", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "afc293d8a1140d6591b53e3eaf415ca92842cb1d32fad3c450c6f045f7f91b60"},
"ueberauth_discord": {:hex, :ueberauth_discord, "0.6.0", "d6ec040e4195c4138b9a959c79024ab4c213ba1aed9fc08099ecff141a6486da", [:mix], [{:oauth2, "~> 1.0 or ~> 2.0", [hex: :oauth2, repo: "hexpm", optional: false]}, {:ueberauth, "~> 0.6.3", [hex: :ueberauth, repo: "hexpm", optional: false]}], "hexpm", "c5ea960191c1d6c3a974947cae4d57efa565a9a0796b8e82bee45fac7ae2fabc"},
diff --git a/priv/gettext/ar/LC_MESSAGES/default.po b/priv/gettext/ar/LC_MESSAGES/default.po
index 94f77285..35d9f957 100644
--- a/priv/gettext/ar/LC_MESSAGES/default.po
+++ b/priv/gettext/ar/LC_MESSAGES/default.po
@@ -313,12 +313,12 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
@@ -384,7 +384,7 @@ msgid "View the event on: %{link}"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1077,7 +1077,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1120,7 +1120,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1380,17 +1380,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1415,7 +1415,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/ar/LC_MESSAGES/errors.po b/priv/gettext/ar/LC_MESSAGES/errors.po
index ad784a10..f75cda0f 100644
--- a/priv/gettext/ar/LC_MESSAGES/errors.po
+++ b/priv/gettext/ar/LC_MESSAGES/errors.po
@@ -125,28 +125,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -156,7 +156,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -193,12 +193,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -208,8 +208,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -234,37 +234,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -274,27 +274,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -370,7 +370,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -395,15 +395,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -471,8 +471,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -489,7 +489,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -499,7 +499,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -560,7 +560,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -586,12 +586,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -651,7 +651,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -666,12 +666,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -681,7 +681,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -696,7 +696,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -706,27 +706,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -796,17 +796,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -836,7 +836,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -846,7 +846,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -857,33 +857,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -893,7 +893,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -903,7 +903,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -918,17 +918,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -938,7 +938,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -953,17 +953,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -971,3 +971,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/be/LC_MESSAGES/default.po b/priv/gettext/be/LC_MESSAGES/default.po
index 5e6ab8d0..61d86aee 100644
--- a/priv/gettext/be/LC_MESSAGES/default.po
+++ b/priv/gettext/be/LC_MESSAGES/default.po
@@ -310,12 +310,12 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
@@ -375,7 +375,7 @@ msgid "View the event on: %{link}"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1053,7 +1053,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1096,7 +1096,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1356,17 +1356,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1391,7 +1391,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/be/LC_MESSAGES/errors.po b/priv/gettext/be/LC_MESSAGES/errors.po
index c5fbbfe5..2a4d64f3 100644
--- a/priv/gettext/be/LC_MESSAGES/errors.po
+++ b/priv/gettext/be/LC_MESSAGES/errors.po
@@ -99,28 +99,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -130,7 +130,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -167,12 +167,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -182,8 +182,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -208,37 +208,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -248,27 +248,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -344,7 +344,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -369,15 +369,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -445,8 +445,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -463,7 +463,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -473,7 +473,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -534,7 +534,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -560,12 +560,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -625,7 +625,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -640,12 +640,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -655,7 +655,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -670,7 +670,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -680,27 +680,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -770,17 +770,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -810,7 +810,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -820,7 +820,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -831,33 +831,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -867,7 +867,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -877,7 +877,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -892,17 +892,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -912,7 +912,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -927,17 +927,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -945,3 +945,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/ca/LC_MESSAGES/default.po b/priv/gettext/ca/LC_MESSAGES/default.po
index c1b45e1c..24d35992 100644
--- a/priv/gettext/ca/LC_MESSAGES/default.po
+++ b/priv/gettext/ca/LC_MESSAGES/default.po
@@ -354,12 +354,12 @@ msgid "What information do we collect?"
msgstr "Quina informació recollim?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon a %{instance}: confirma la teva adreça de correu"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon a %{instance}: s'ha canviat l'adreça de correu"
@@ -417,7 +417,7 @@ msgid "View the event on: %{link}"
msgstr "Vés a l'activitat actualitzada a %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} t'ha convidat al grup %{group}"
@@ -1251,7 +1251,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Salut i canya al forçut!"
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "T'han tret del grup %{group}"
@@ -1305,7 +1305,7 @@ msgstr ""
"%{group_name} (%{group_address}). Ja no formes part del grup."
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "El grup %{group} ha estat suspès a %{instance}"
@@ -1608,17 +1608,17 @@ msgid "%{name}'s feed"
msgstr "El flux de %{name}"
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "El flux d'activitats privades de %{actor} a %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "El flux d'activitats públiques de %{actor} a %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "Flux de %{email} a %{instance}"
@@ -1643,7 +1643,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Sembla ser que el servidor de Mobilizon està temporalment inaccessible."
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/ca/LC_MESSAGES/errors.po b/priv/gettext/ca/LC_MESSAGES/errors.po
index e70377c9..e8b0cec8 100644
--- a/priv/gettext/ca/LC_MESSAGES/errors.po
+++ b/priv/gettext/ca/LC_MESSAGES/errors.po
@@ -100,28 +100,28 @@ msgid "Cannot refresh the token"
msgstr "No s'ha pogut actualitzar el codi d'accés"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "El perfil actual no pertany a aquest grup"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "El perfil actual no administra el grup seleccionat"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "No s'han pogut desar les preferències"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "No s'ha trobat el grup"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "No s'ha trobat el grup amb identificador %{id}"
@@ -131,7 +131,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "No t'hem pogut autenticar. El teu correu o contrasenya són incorrectes."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "No s'ha trobat el/la membre"
@@ -168,12 +168,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -183,8 +183,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -209,37 +209,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -249,27 +249,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -345,7 +345,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -370,15 +370,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -446,8 +446,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -464,7 +464,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -474,7 +474,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -535,7 +535,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -561,12 +561,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -626,7 +626,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -641,12 +641,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -656,7 +656,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -671,7 +671,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -681,27 +681,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -771,17 +771,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -811,7 +811,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -821,7 +821,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -832,33 +832,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -868,7 +868,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -878,7 +878,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -893,17 +893,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -913,7 +913,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -928,17 +928,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -946,3 +946,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/cs/LC_MESSAGES/default.po b/priv/gettext/cs/LC_MESSAGES/default.po
index 58380bee..1fc98756 100644
--- a/priv/gettext/cs/LC_MESSAGES/default.po
+++ b/priv/gettext/cs/LC_MESSAGES/default.po
@@ -310,12 +310,12 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
@@ -375,7 +375,7 @@ msgid "View the event on: %{link}"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1053,7 +1053,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1096,7 +1096,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1356,17 +1356,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1391,7 +1391,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/cs/LC_MESSAGES/errors.po b/priv/gettext/cs/LC_MESSAGES/errors.po
index 7fd736d6..ed013829 100644
--- a/priv/gettext/cs/LC_MESSAGES/errors.po
+++ b/priv/gettext/cs/LC_MESSAGES/errors.po
@@ -99,28 +99,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -130,7 +130,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -167,12 +167,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -182,8 +182,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -208,37 +208,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -248,27 +248,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -344,7 +344,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -369,15 +369,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -445,8 +445,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -463,7 +463,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -473,7 +473,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -534,7 +534,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -560,12 +560,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -625,7 +625,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -640,12 +640,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -655,7 +655,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -670,7 +670,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -680,27 +680,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -770,17 +770,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -810,7 +810,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -820,7 +820,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -831,33 +831,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -867,7 +867,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -877,7 +877,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -892,17 +892,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -912,7 +912,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -927,17 +927,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -945,3 +945,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po
index aef3b59e..4248898f 100644
--- a/priv/gettext/de/LC_MESSAGES/default.po
+++ b/priv/gettext/de/LC_MESSAGES/default.po
@@ -360,12 +360,12 @@ msgid "What information do we collect?"
msgstr "Welche Informationen sammeln wir ?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon auf %{instance}: Bestätige deine E-Mail Adresse"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon auf %{instance}: E-Mail geändert"
@@ -423,7 +423,7 @@ msgid "View the event on: %{link}"
msgstr "Zeige die aktualisierte Veranstaltung unter: %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "Du wurdest von %{inviter} eingeladen, der Gruppe %{group} beizutreten"
@@ -1293,7 +1293,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Macht's gut und danke für den Fisch!"
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Sie wurden aus der Gruppe %{group} entfernt"
@@ -1349,7 +1349,7 @@ msgstr ""
"dieser Gruppe."
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Die Gruppe %{group} wurde auf %{instance} ausgesetzt"
@@ -1712,17 +1712,17 @@ msgid "%{name}'s feed"
msgstr "Feed von %{name}"
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "Privater Veranstaltungsfeed von %{actor} auf %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "Öffentlicher Veranstaltungsfeed von %{actor} auf %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "Feed für %{email} auf %{instance}"
@@ -1753,7 +1753,7 @@ msgstr ""
"sein."
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/de/LC_MESSAGES/errors.po b/priv/gettext/de/LC_MESSAGES/errors.po
index bcad969e..de87da76 100644
--- a/priv/gettext/de/LC_MESSAGES/errors.po
+++ b/priv/gettext/de/LC_MESSAGES/errors.po
@@ -100,28 +100,28 @@ msgid "Cannot refresh the token"
msgstr "Der Token konnte nicht aktualisiert werden"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Aktuelles Profil ist nicht Mitglied dieser Gruppe"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Aktuelles Profil ist kein Administrator der ausgewählten Gruppe"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Fehler beim Speichern von Benutzereinstellungen"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Gruppe nicht gefunden"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Gruppe mit der ID %{id} nicht gefunden"
@@ -133,7 +133,7 @@ msgstr ""
"Passwort sind ungültig."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Mitglied wurde nicht gefunden"
@@ -171,12 +171,12 @@ msgid "The current password is invalid"
msgstr "Das aktuelle Passwort ist ungültig"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "Die neue E-Mail scheint nicht gültig zu sein"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "Die neue E-Mail muss anders lauten"
@@ -186,8 +186,8 @@ msgid "The new password must be different"
msgstr "Das neue Passwort muss anders lauten"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "Das angegebene Passwort ist ungültig"
@@ -214,39 +214,39 @@ msgid "Unable to validate user"
msgstr "Benutzer kann nicht validiert werden"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "Benutzer bereits deaktiviert"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "Angeforderter Benutzer ist nicht eingeloggt"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Sie sind bereits Mitglied in dieser Gruppe"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
"Sie können diese Gruppe nicht verlassen, da Sie der einzige Administrator "
"sind"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Sie können dieser Gruppe nicht beitreten"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Sie dürfen keine Gruppen auflisten, es sei denn, Sie sind Moderator."
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Sie müssen eingeloggt sein, um Ihre E-Mail zu ändern"
@@ -256,27 +256,27 @@ msgid "You need to be logged-in to change your password"
msgstr "Sie müssen eingeloggt sein, um Ihr Passwort zu ändern"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Sie müssen eingeloggt sein, um eine Gruppe zu löschen"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Sie müssen eingeloggt sein, um Ihr Konto zu löschen"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Sie müssen eingeloggt sein, um einer Gruppe beizutreten"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Sie müssen eingeloggt sein, um eine Gruppe zu verlassen"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Sie müssen eingeloggt sein, um eine Gruppe zu aktualisieren"
@@ -353,7 +353,7 @@ msgid "Cannot remove the last identity of a user"
msgstr "Kann die letzte Identität eines Benutzers nicht entfernen"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Kommentar ist bereits gelöscht"
@@ -378,15 +378,15 @@ msgid "Event id not found"
msgstr "Veranstaltungs-ID nicht gefunden"
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Veranstaltung nicht gefunden"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "Veranstaltung mit dieser ID %{id} existiert nicht"
@@ -456,8 +456,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -474,7 +474,7 @@ msgid "Report not found"
msgstr "Meldung nicht gefunden"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "Ressource ist nicht vorhanden"
@@ -484,7 +484,7 @@ msgid "The event has already reached its maximum capacity"
msgstr "Die Veranstaltung hat bereits ihre maximale Kapazität erreicht"
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Dieses Token ist ungültig"
@@ -545,7 +545,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr "Sie dürfen kein Feed-Token erstellen, wenn Sie nicht verbunden sind"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Sie dürfen einen Kommentar nicht löschen, wenn Sie nicht verbunden sind"
@@ -576,12 +576,12 @@ msgstr ""
"einstellen, da Sie der einzige Administrator sind"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Sie können diesen Kommentar nicht löschen"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Sie können diese Veranstaltung nicht löschen"
@@ -651,7 +651,7 @@ msgid "You need to be logged-in to access resources"
msgstr "Sie müssen eingeloggt sein, um auf Ressourcen zugreifen zu können"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Sie müssen eingeloggt sein, um Ereignisse zu erstellen"
@@ -666,12 +666,12 @@ msgid "You need to be logged-in to create reports"
msgstr "Sie müssen eingeloggt sein, um Berichte zu erstellen"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Sie müssen eingeloggt sein, um Ressourcen zu erstellen"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Sie müssen eingeloggt sein, um ein Ereignis zu löschen"
@@ -681,7 +681,7 @@ msgid "You need to be logged-in to delete posts"
msgstr "Sie müssen eingeloggt sein, um Beiträge zu löschen"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Sie müssen eingeloggt sein, um Ressourcen zu löschen"
@@ -696,7 +696,7 @@ msgid "You need to be logged-in to leave an event"
msgstr "Sie müssen eingeloggt sein, um eine Veranstaltung zu verlassen"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Sie müssen eingeloggt sein, um ein Ereignis zu aktualisieren"
@@ -706,27 +706,27 @@ msgid "You need to be logged-in to update posts"
msgstr "Sie müssen eingeloggt sein, um Beiträge zu aktualisieren"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Sie müssen eingeloggt sein, um Ressourcen zu aktualisieren"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Sie müssen eingeloggt sein, um eine Ressourcenvorschau zu sehen"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "Die übergeordnete Ressource gehört nicht zu dieser Gruppe"
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "Das gewählte Passwort ist zu kurz."
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"Das Registrierungs-Token ist bereits in Gebrauch, dies sieht nach einem "
@@ -798,17 +798,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr "Die Datei hat keinen zulässigen MIME-Typ."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "Profil ist nicht Administrator für die Gruppe"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Sie können dieses Ereignis nicht bearbeiten."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Sie können dieses Ereignis nicht diesem Profil zuordnen."
@@ -840,7 +840,7 @@ msgstr ""
"zuzugreifen"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "Organizer-Profil ist nicht im Besitz des Benutzers"
@@ -850,7 +850,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr "Die angegebene Profil-ID ist nicht die des anonymen Profils"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "Das Bild ist zu groß"
@@ -861,33 +861,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Fehler beim Speichern des Reports"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Dieses Moderatorenprofil hat keine Berechtigung für diese Veranstaltung"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -897,7 +897,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Veranstaltung nicht gefunden"
@@ -907,7 +907,7 @@ msgid "Error while creating a discussion"
msgstr "Fehler beim Speichern des Reports"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Fehler beim Aktualisieren des Reports"
@@ -922,17 +922,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Benutzer kann nicht validiert werden"
@@ -942,7 +942,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -957,17 +957,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -975,3 +975,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index ffc63ed8..78bdd8d4 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -296,12 +296,12 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
@@ -359,7 +359,7 @@ msgid "View the event on: %{link}"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1032,7 +1032,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1075,7 +1075,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1335,17 +1335,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1370,7 +1370,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index abd9c4c6..41b18213 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -349,12 +349,12 @@ msgid "What information do we collect?"
msgstr "What information do we collect?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
@@ -412,7 +412,7 @@ msgid "View the event on: %{link}"
msgstr "View the updated event on: %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1085,7 +1085,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1128,7 +1128,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1388,17 +1388,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1423,7 +1423,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/errors.po b/priv/gettext/en/LC_MESSAGES/errors.po
index d60c4c9f..0ec638e9 100644
--- a/priv/gettext/en/LC_MESSAGES/errors.po
+++ b/priv/gettext/en/LC_MESSAGES/errors.po
@@ -103,28 +103,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -134,7 +134,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -171,12 +171,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -186,8 +186,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -212,37 +212,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -252,27 +252,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -348,7 +348,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -373,15 +373,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -449,8 +449,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -467,7 +467,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -477,7 +477,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -538,7 +538,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -564,12 +564,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -629,7 +629,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -644,12 +644,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -659,7 +659,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -674,7 +674,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -684,27 +684,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -774,17 +774,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -814,7 +814,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -824,7 +824,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -835,33 +835,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -871,7 +871,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -881,7 +881,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -896,17 +896,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -916,7 +916,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -931,17 +931,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -949,3 +949,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot
index d97b8465..f58a08d6 100644
--- a/priv/gettext/errors.pot
+++ b/priv/gettext/errors.pot
@@ -100,28 +100,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -131,7 +131,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -168,12 +168,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -183,8 +183,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -209,37 +209,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -249,27 +249,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -345,7 +345,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -370,15 +370,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -446,8 +446,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -464,7 +464,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -474,7 +474,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -535,7 +535,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -561,12 +561,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -626,7 +626,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -641,12 +641,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -656,7 +656,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -671,7 +671,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -681,27 +681,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -771,17 +771,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -811,7 +811,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -821,7 +821,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -832,33 +832,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -868,7 +868,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -878,7 +878,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -893,17 +893,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -913,7 +913,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -928,17 +928,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -946,3 +946,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/default.po b/priv/gettext/es/LC_MESSAGES/default.po
index bf7674dd..a2838263 100644
--- a/priv/gettext/es/LC_MESSAGES/default.po
+++ b/priv/gettext/es/LC_MESSAGES/default.po
@@ -14,267 +14,267 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.6.2\n"
-#: lib/web/templates/email/password_reset.html.heex:48
#, elixir-format
+#: lib/web/templates/email/password_reset.html.heex:48
msgid "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one."
msgstr ""
"Si no solicitaste este correo, simplemente ignóralo. Su contraseña no "
"cambiará al menos que use el siguiente enlace para crear una nueva."
-#: lib/web/templates/email/report.html.heex:74
#, elixir-format
+#: lib/web/templates/email/report.html.heex:74
msgid "%{title} by %{creator}"
msgstr "%{title} por %{creator}"
-#: lib/web/templates/email/registration_confirmation.html.heex:58
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.html.heex:58
msgid "Activate my account"
msgstr "Activar mi cuenta"
+#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.text.eex:9
-#, elixir-format
msgid "Ask the community on Framacolibri"
msgstr "Preguntar a la comunidad en framacolibri"
-#: lib/web/templates/email/report.text.eex:15
#, elixir-format
+#: lib/web/templates/email/report.text.eex:15
msgid "Comments"
msgstr "Comentarios"
+#, elixir-format
#: lib/web/templates/email/report.html.heex:72
#: lib/web/templates/email/report.text.eex:11
-#, elixir-format
msgid "Event"
msgstr "Evento"
-#: lib/web/email/user.ex:48
#, elixir-format
+#: lib/web/email/user.ex:48
msgid "Instructions to reset your password on %{instance}"
msgstr "Instrucciones para restablecer su contraseña en %{instance}"
-#: lib/web/templates/email/report.text.eex:21
#, elixir-format
+#: lib/web/templates/email/report.text.eex:21
msgid "Reason"
msgstr "Razón"
-#: lib/web/templates/email/password_reset.html.heex:61
#, elixir-format
+#: lib/web/templates/email/password_reset.html.heex:61
msgid "Reset Password"
msgstr "Restablecer la contraseña"
-#: lib/web/templates/email/password_reset.html.heex:41
#, elixir-format
+#: lib/web/templates/email/password_reset.html.heex:41
msgid "Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time."
msgstr ""
"Restablecer tu contraseña es fácil. Simplemente presione el botón y siga las "
"instrucciones. Te tendremos en funcionamiento en poco tiempo."
-#: lib/web/email/user.ex:28
#, elixir-format
+#: lib/web/email/user.ex:28
msgid "Instructions to confirm your Mobilizon account on %{instance}"
msgstr "Instrucciones para confirmar su cuenta Mobilizon en %{instance}"
-#: lib/web/email/admin.ex:24
#, elixir-format
+#: lib/web/email/admin.ex:24
msgid "New report on Mobilizon instance %{instance}"
msgstr "Nuevo informe sobre la instancia Mobilizon %{instance}"
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:51
#: lib/web/templates/email/before_event_notification.text.eex:4
-#, elixir-format
msgid "Go to event page"
msgstr "Ir a la página del evento"
-#: lib/web/templates/email/report.text.eex:1
#, elixir-format
+#: lib/web/templates/email/report.text.eex:1
msgid "New report from %{reporter} on %{instance}"
msgstr "Nuevo informe de %{reporter} en %{instance}"
-#: lib/web/templates/email/event_participation_approved.text.eex:1
#, elixir-format
+#: lib/web/templates/email/event_participation_approved.text.eex:1
msgid "Participation approved"
msgstr "Participación aprobada"
+#, elixir-format
#: lib/web/templates/email/password_reset.html.heex:13
#: lib/web/templates/email/password_reset.text.eex:1
-#, elixir-format
msgid "Password reset"
msgstr "Restablecer la contraseña"
-#: lib/web/templates/email/password_reset.text.eex:7
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:7
msgid "Resetting your password is easy. Just click the link below and follow the instructions. We'll have you up and running in no time."
msgstr ""
"Restablecer tu contraseña es fácil. Simplemente haga clic en el enlace a "
"continuación y siga las instrucciones. Estarás operacional en muy poco "
"tiempo."
-#: lib/web/templates/email/registration_confirmation.text.eex:5
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.text.eex:5
msgid "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email."
msgstr ""
"Has creado una cuenta en %{host} con esta dirección de correo electrónico. "
"Estás a un clic de activarlo. Si no eras tú, ignora este correo electrónico."
-#: lib/web/email/participation.ex:108
#, elixir-format
+#: lib/web/email/participation.ex:108
msgid "Your participation to event %{title} has been approved"
msgstr "Su participación en el evento %{title} ha sido aprobada"
-#: lib/web/email/participation.ex:68
#, elixir-format
+#: lib/web/email/participation.ex:68
msgid "Your participation to event %{title} has been rejected"
msgstr "Su participación en el evento %{title} ha sido rechazada"
-#: lib/web/email/event.ex:36
#, elixir-format
+#: lib/web/email/event.ex:36
msgid "Event %{title} has been updated"
msgstr "El evento %{title} ha sido actualizado"
-#: lib/web/templates/email/event_updated.text.eex:15
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:15
msgid "New title: %{title}"
msgstr "Nuevo título: %{title}"
-#: lib/web/templates/email/password_reset.text.eex:5
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:5
msgid "You requested a new password for your account on %{instance}."
msgstr "Solicitó una nueva contraseña para su cuenta en %{instancia}."
-#: lib/web/templates/email/email.html.heex:86
#, elixir-format
+#: lib/web/templates/email/email.html.heex:86
msgid "Warning"
msgstr "Advertencia"
-#: lib/web/email/participation.ex:131
#, elixir-format
+#: lib/web/email/participation.ex:131
msgid "Confirm your participation to event %{title}"
msgstr "Confirme su participación en el evento %{title}"
-#: lib/web/templates/api/privacy.html.heex:75
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:75
msgctxt "terms"
msgid "An internal ID for your current selected identity"
msgstr "Un ID interno para su identidad seleccionada actualmente"
-#: lib/web/templates/api/privacy.html.heex:74
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:74
msgctxt "terms"
msgid "An internal user ID"
msgstr "Un ID de usuario interna"
-#: lib/web/templates/api/privacy.html.heex:37
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:37
msgctxt "terms"
msgid "Any of the information we collect from you may be used in the following ways:"
msgstr ""
"Cualquier información que recopilemos sobre usted puede usarse de las "
"siguientes maneras:"
-#: lib/web/templates/api/privacy.html.heex:9
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:9
msgctxt "terms"
msgid "Basic account information"
msgstr "Información básica de la cuenta"
-#: lib/web/templates/api/privacy.html.heex:25
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:25
msgctxt "terms"
msgid "Do not share any dangerous information over Mobilizon."
msgstr "No comparta ninguna información peligrosa a través de Mobilizon."
-#: lib/web/templates/api/privacy.html.heex:90
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:90
msgctxt "terms"
msgid "Do we disclose any information to outside parties?"
msgstr "¿Divulgamos alguna información a terceros?"
-#: lib/web/templates/api/privacy.html.heex:68
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:68
msgctxt "terms"
msgid "Do we use cookies?"
msgstr "¿Usamos cookies?"
-#: lib/web/templates/api/privacy.html.heex:51
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:51
msgctxt "terms"
msgid "How do we protect your information?"
msgstr "¿Cómo protegemos tu información?"
-#: lib/web/templates/api/privacy.html.heex:29
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:29
msgctxt "terms"
msgid "IPs and other metadata"
msgstr "dirección IP y otros metadatos"
-#: lib/web/templates/api/privacy.html.heex:17
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:17
msgctxt "terms"
msgid "Published events and comments"
msgstr "Eventos publicados y comentarios"
-#: lib/web/templates/api/privacy.html.heex:64
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:64
msgctxt "terms"
msgid "Retain the IP addresses associated with registered users no more than 12 months."
msgstr ""
"Conserva las direcciones IP asociadas con usuarios registrados no más de 12 "
"meses."
-#: lib/web/templates/api/privacy.html.heex:76
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:76
msgctxt "terms"
msgid "Tokens to authenticate you"
msgstr "Fichas para \"autenticarte\""
-#: lib/web/templates/api/privacy.html.heex:31
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:31
msgctxt "terms"
msgid "We also may retain server logs which include the IP address of every request to our server."
msgstr ""
"También podemos conservar los registros del servidor que incluyen la "
"dirección IP de cada solicitud a nuestro servidor."
-#: lib/web/templates/api/privacy.html.heex:70
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:70
msgctxt "terms"
msgid "We store the following information on your device when you connect:"
msgstr ""
"Almacenamos la siguiente información en tu dispositivo cuando te conectas:"
-#: lib/web/templates/api/privacy.html.heex:58
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:58
msgctxt "terms"
msgid "We will make a good faith effort to:"
msgstr "Haremos un esfuerzo de buena fe para:"
-#: lib/web/templates/api/privacy.html.heex:35
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:35
msgctxt "terms"
msgid "What do we use your information for?"
msgstr "¿Para qué utilizamos tu información?"
-#: lib/web/templates/api/privacy.html.heex:57
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:57
msgctxt "terms"
msgid "What is our data retention policy?"
msgstr "¿Cuál es nuestra política de retención de datos?"
-#: lib/web/templates/api/privacy.html.heex:67
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:67
msgctxt "terms"
msgid "You may irreversibly delete your account at any time."
msgstr "Puede eliminar irreversiblemente su cuenta en cualquier momento."
-#: lib/web/templates/api/privacy.html.heex:115
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:115
msgctxt "terms"
msgid "Changes to our Privacy Policy"
msgstr "Cambios a nuestra política de privacidad"
-#: lib/web/templates/api/privacy.html.heex:106
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:106
msgctxt "terms"
msgid "If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (
General Data Protection Regulation) do not use this site."
msgstr ""
@@ -284,8 +284,8 @@ msgstr ""
"https://en.wikipedia.org/wiki/General_Data_Protection_Regulation\"> "
"Reglamento general de protección de datos ) no utilice este sitio ."
-#: lib/web/templates/api/privacy.html.heex:109
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:109
msgctxt "terms"
msgid "If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (
Children's Online Privacy Protection Act) do not use this site."
msgstr ""
@@ -296,30 +296,30 @@ msgstr ""
"Ley de protección de la privacidad en línea para niños ) no utilice este "
"sitio."
-#: lib/web/templates/api/privacy.html.heex:117
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:117
msgctxt "terms"
msgid "If we decide to change our privacy policy, we will post those changes on this page."
msgstr ""
"Si decidimos cambiar nuestra política de privacidad, publicaremos esos "
"cambios en esta página."
-#: lib/web/templates/api/privacy.html.heex:112
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:112
msgctxt "terms"
msgid "Law requirements can be different if this server is in another jurisdiction."
msgstr ""
"Los requisitos legales pueden ser diferentes si este servidor se encuentra "
"en otra jurisdicción."
-#: lib/web/templates/api/privacy.html.heex:103
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:103
msgctxt "terms"
msgid "Site usage by children"
msgstr "Uso del sitio por niños"
-#: lib/web/templates/api/privacy.html.heex:47
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:47
msgctxt "terms"
msgid "The email address you provide may be used to send you information, updates and notifications about other people\n interacting with your content or sending you messages and to respond to inquiries, and/or other requests or\n questions."
msgstr ""
@@ -330,8 +330,8 @@ msgstr ""
"consultas y / u otras solicitudes o\n"
" preguntas."
-#: lib/web/templates/api/privacy.html.heex:45
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:45
msgctxt "terms"
msgid "To aid moderation of the community, for example comparing your IP address with other known ones to determine ban\n evasion or other violations."
msgstr ""
@@ -339,8 +339,8 @@ msgstr ""
"dirección IP con otras conocidas para determinar la prohibición,\n"
" evasión u otras violaciones."
-#: lib/web/templates/api/privacy.html.heex:43
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:43
msgctxt "terms"
msgid "To provide the core functionality of Mobilizon. Depending on this instance's policy you may only be able to\n interact with other people's content and post your own content if you are logged in."
msgstr ""
@@ -349,89 +349,89 @@ msgstr ""
" interactuar con el contenido de otras personas y publicar tu propio "
"contenido si ha iniciado sesión."
-#: lib/web/templates/api/privacy.html.heex:6
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:6
msgctxt "terms"
msgid "What information do we collect?"
msgstr "¿Qué información recopilamos?"
-#: lib/web/email/user.ex:177
#, elixir-format
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon en %{instance}: confirma tu dirección de correo electrónico"
-#: lib/web/email/user.ex:154
#, elixir-format
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon en %{instance}: correo electrónico modificado"
-#: lib/web/email/notification.ex:49
#, elixir-format
+#: lib/web/email/notification.ex:49
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Un evento programado para hoy"
msgstr[1] "%{nb_events} eventos planeados hoy"
+#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
-#, elixir-format
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Tienes un evento hoy:"
msgstr[1] "Tienes %{total} eventos hoy:"
-#: lib/web/templates/email/group_invite.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_invite.text.eex:3
msgid "%{inviter} just invited you to join their group %{group}"
msgstr "%{inviter} te acaba de invitar a unirte a su grupo %{group}"
+#, elixir-format
#: lib/web/templates/email/group_invite.html.heex:13
#: lib/web/templates/email/group_invite.text.eex:1
-#, elixir-format
msgid "Come along!"
msgstr "¡ Únete a nosotros !"
-#: lib/web/email/notification.ex:24
#, elixir-format
+#: lib/web/email/notification.ex:24
msgid "Don't forget to go to %{title}"
msgstr "No olvides ir a %{title}"
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:38
#: lib/web/templates/email/before_event_notification.text.eex:3
-#, elixir-format
msgid "Get ready for %{title}"
msgstr "Prepárate para %{title}"
-#: lib/web/templates/email/group_invite.html.heex:59
#, elixir-format
+#: lib/web/templates/email/group_invite.html.heex:59
msgid "See my groups"
msgstr "Ver mis grupos"
+#, elixir-format
#: lib/web/templates/email/group_invite.html.heex:45
#: lib/web/templates/email/group_invite.text.eex:5
-#, elixir-format
msgid "To accept this invitation, head over to your groups."
msgstr "Para aceptar esta invitación, dirígete a tus grupos."
-#: lib/web/templates/email/before_event_notification.text.eex:5
#, elixir-format
+#: lib/web/templates/email/before_event_notification.text.eex:5
msgid "View the event on: %{link}"
msgstr "Ver el evento actualizado en: %{link}"
-#: lib/web/email/group.ex:33
#, elixir-format
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{Inviter} te ha invitado a unirte al grupo %{group}"
-#: lib/web/email/notification.ex:75
#, elixir-format
+#: lib/web/email/notification.ex:75
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Un evento programado para hoy"
msgstr[1] "%{nb_events} eventos planeados hoy"
-#: lib/web/email/notification.ex:98
#, elixir-format
+#: lib/web/email/notification.ex:98
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Una solicitud para participar en el evento %{title} a procesar"
@@ -439,21 +439,21 @@ msgstr[1] ""
"%{number_participation_requests} solicitudes para participar en el evento "
"%{title} a procesar"
+#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:38
#: lib/web/templates/email/notification_each_week.text.eex:3
-#, elixir-format
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Tienes un evento hoy:"
msgstr[1] "Tienes %{total} eventos hoy:"
-#: lib/service/metadata/utils.ex:53
#, elixir-format
+#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "El organizador del evento no agregó ninguna descripción."
-#: lib/web/templates/api/privacy.html.heex:54
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:54
msgctxt "terms"
msgid "We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL/TLS, and your password is hashed using a strong one-way algorithm."
msgstr ""
@@ -463,8 +463,8 @@ msgstr ""
"el tráfico entre tus aplicaciones y la API, están protegidas con SSL /TLS, y "
"su contraseña se codifica con un fuerte algoritmo unidireccional."
-#: lib/web/templates/api/privacy.html.heex:94
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:94
msgctxt "terms"
msgid "No. We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety."
msgstr ""
@@ -477,20 +477,20 @@ msgstr ""
"de nuestro sitio o proteger los derechos, nuestros o de otros, propiedades o "
"seguridad."
-#: lib/web/templates/api/terms.html.heex:23
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:23
msgctxt "terms"
msgid "Accepting these Terms"
msgstr "Aceptar estos Términos"
-#: lib/web/templates/api/terms.html.heex:27
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:27
msgctxt "terms"
msgid "Changes to these Terms"
msgstr "Cambios a estos Términos de uso"
-#: lib/web/templates/api/terms.html.heex:85
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:85
msgctxt "terms"
msgid "A lot of the content on the Service is from you and others, and we don't review, verify or authenticate it, and it may include inaccuracies or false information. We make no representations, warranties, or guarantees relating to the quality, suitability, truth, accuracy or completeness of any content contained in the Service. You acknowledge sole responsibility for and assume all risk arising from your use of or reliance on any content."
msgstr ""
@@ -502,16 +502,16 @@ msgstr ""
"responsable y asume todos los riesgos derivados de su uso o su confianza en "
"cualquier contenido."
-#: lib/web/templates/api/terms.html.heex:60
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:60
msgctxt "terms"
msgid "Also, you agree that you will not do any of the following in connection with the Service or other users:"
msgstr ""
"Además, acepta que no hará nada de lo siguiente en relación con el Servicio "
"u otros usuarios:"
-#: lib/web/templates/api/terms.html.heex:65
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:65
msgctxt "terms"
msgid "Circumvent or attempt to circumvent any filtering, security measures, rate limits or other features designed to protect the Service, users of the Service, or third parties."
msgstr ""
@@ -519,23 +519,23 @@ msgstr ""
"velocidad u otras características diseñadas para proteger el Servicio, los "
"usuarios del Servicio o terceros."
-#: lib/web/templates/api/terms.html.heex:64
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:64
msgctxt "terms"
msgid "Collect any personal information about other users, or intimidate, threaten, stalk or otherwise harass other users of the Service;"
msgstr ""
"Recopilar información personal sobre otros usuarios, o intimidar, amenazar, "
"acosar o acosar a otros usuarios del Servicio;"
-#: lib/web/templates/api/terms.html.heex:55
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:55
msgctxt "terms"
msgid "Content that is illegal or unlawful, that would otherwise create liability;"
msgstr ""
"Contenido que es ilegal o ilegal, que de otro modo crearía responsabilidad;"
-#: lib/web/templates/api/terms.html.heex:56
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:56
msgctxt "terms"
msgid "Content that may infringe or violate any patent, trademark, trade secret, copyright, right of privacy, right of publicity or other intellectual or other right of any party;"
msgstr ""
@@ -543,48 +543,48 @@ msgstr ""
"secreto comercial, derecho de autor, derecho de privacidad, derecho de "
"publicidad u otro derecho intelectual u otro derecho de cualquier parte;"
-#: lib/web/templates/api/terms.html.heex:42
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:42
msgctxt "terms"
msgid "Creating Accounts"
msgstr "Crear cuentas"
-#: lib/web/templates/api/terms.html.heex:89
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:89
msgctxt "terms"
msgid "Entire Agreement"
msgstr "Acuerdo completo"
-#: lib/web/templates/api/terms.html.heex:92
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:92
msgctxt "terms"
msgid "Feedback"
msgstr "Comentarios"
-#: lib/web/templates/api/terms.html.heex:83
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:83
msgctxt "terms"
msgid "Hyperlinks and Third Party Content"
msgstr "Hipervínculos y contenido de terceros"
-#: lib/web/templates/api/terms.html.heex:88
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:88
msgctxt "terms"
msgid "If you breach any of these Terms, we have the right to suspend or disable your access to or use of the Service."
msgstr ""
"Si incumple alguno de estos Términos, tenemos el derecho de suspender o "
"deshabilitar su acceso o uso del Servicio."
-#: lib/web/templates/api/terms.html.heex:63
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:63
msgctxt "terms"
msgid "Impersonate or post on behalf of any person or entity or otherwise misrepresent your affiliation with a person or entity;"
msgstr ""
"Suplantar o publicar en nombre de cualquier persona o entidad o tergiversar "
"su afiliación con una persona o entidad;"
-#: lib/web/templates/api/terms.html.heex:48
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:48
msgctxt "terms"
msgid "Our Service allows you and other users to post, link and otherwise make available content. You are responsible for the content that you make available to the Service, including its legality, reliability, and appropriateness."
msgstr ""
@@ -592,26 +592,26 @@ msgstr ""
"poner a disposición contenido. Usted es responsable del contenido que pone a "
"disposición del Servicio, incluida su legalidad, confiabilidad y adecuación."
-#: lib/web/templates/api/terms.html.heex:39
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:39
msgctxt "terms"
msgid "Privacy Policy"
msgstr "Política de privacidad"
-#: lib/web/templates/api/terms.html.heex:95
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:95
msgctxt "terms"
msgid "Questions & Contact Information"
msgstr "Preguntas e información de contacto"
-#: lib/web/templates/api/terms.html.heex:87
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:87
msgctxt "terms"
msgid "Termination"
msgstr "Terminación"
-#: lib/web/templates/api/terms.html.heex:62
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:62
msgctxt "terms"
msgid "Use the Service in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying the Service or that could damage, disable, overburden or impair the functioning of the Service;"
msgstr ""
@@ -620,14 +620,14 @@ msgstr ""
"Servicio o que pueda dañar, deshabilitar, sobrecargar o perjudicar el "
"funcionamiento del Servicio;"
-#: lib/web/templates/api/terms.html.heex:47
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:47
msgctxt "terms"
msgid "Your Content & Conduct"
msgstr "Su contenido y conducta"
-#: lib/web/templates/api/terms.html.heex:84
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:84
msgctxt "terms"
msgid "
%{instance_name} makes no claim or representation regarding, and accepts no responsibility for third party websites accessible by hyperlink from the Service or websites linking to the Service. When you leave the Service, you should be aware that these Terms and our policies no longer govern. The inclusion of any link does not imply endorsement by
%{instance_name} of the site. Use of any such linked website is at the user's own risk."
msgstr ""
@@ -639,8 +639,8 @@ msgstr ""
"no implica la aprobación por
% {instance_name} del sitio. El uso de "
"cualquier sitio web vinculado es bajo el propio riesgo del usuario."
-#: lib/web/templates/api/terms.html.heex:68
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:68
msgctxt "terms"
msgid "Finally, your use of the Service is also subject to acceptance of
the instance's own specific rules regarding the code of conduct and moderation rules. Breaking those rules may also result in your account being disabled or suspended."
msgstr ""
@@ -649,16 +649,16 @@ msgstr ""
"código de conducta y las reglas de moderación. Romper esas reglas también "
"puede resultar en que su cuenta sea deshabilitada o suspendida."
-#: lib/web/templates/api/terms.html.heex:81
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:81
msgctxt "terms"
msgid "For full details about the Mobilizon software
see here."
msgstr ""
"Para obtener detalles completos sobre el software Mobilizon
ver aquí ."
-#: lib/web/templates/api/terms.html.heex:18
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:18
msgctxt "terms"
msgid "Here are the important things you need to know about accessing and using the
%{instance_name} (
%{instance_url}) website and service (collectively, \"Service\"). These are our terms of service (\"Terms\"). Please read them carefully."
msgstr ""
@@ -668,8 +668,8 @@ msgstr ""
"Estos son nuestros términos de servicio (\"Términos\"). Por favor, léalos "
"atentamente."
-#: lib/web/templates/api/terms.html.heex:33
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:33
msgctxt "terms"
msgid "If we make major changes, we will notify our users in a clear and prominent manner. Minor changes may only be highlighted in the footer of our website. It is your responsibility to check the website regularly for changes to these Terms."
msgstr ""
@@ -678,8 +678,8 @@ msgstr ""
"página de nuestro sitio web. Es su responsabilidad revisar el sitio web "
"regularmente para ver los cambios a estos Términos."
-#: lib/web/templates/api/terms.html.heex:53
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:53
msgctxt "terms"
msgid "In order to make
%{instance_name} a great place for all of us, please do not post, link and otherwise make available on or through the Service any of the following:"
msgstr ""
@@ -687,8 +687,8 @@ msgstr ""
"publique, enlace ni ponga a disposición en el Servicio ni a través de él "
"ninguno de los siguientes:"
-#: lib/web/templates/api/terms.html.heex:57
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:57
msgctxt "terms"
msgid "Private information of any third party (e.g., addresses, phone numbers, email addresses, Social Security numbers and credit card numbers); and"
msgstr ""
@@ -696,8 +696,8 @@ msgstr ""
"de teléfono, direcciones de correo electrónico, números de Seguro Social y "
"números de tarjetas de crédito); y"
-#: lib/web/templates/api/terms.html.heex:52
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:52
msgctxt "terms"
msgid "Since Mobilizon is a distributed network, it is possible, depending on the visibility rules set to your content, that your content has been distributed to other Mobilizon instances. When you delete your content, we will request those other instances to also delete the content. Our responsibility on the content being deleted from those other instances ends here. If for some reason, some other instance does not delete the content, we cannot be held responsible."
msgstr ""
@@ -709,8 +709,8 @@ msgstr ""
"instancias termina aquí. Si por alguna razón, alguna otra instancia no "
"elimina el contenido, no podemos ser responsables."
-#: lib/web/templates/api/terms.html.heex:90
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:90
msgctxt "terms"
msgid "These Terms constitute the entire agreement between you and
%{instance_name} regarding the use of the Service, superseding any prior agreements between you and
%{instance_name} relating to your use of the Service."
msgstr ""
@@ -719,8 +719,8 @@ msgstr ""
"cualquier acuerdo previo entre usted y
%{instance_name} relacionado "
"con su uso de el servicio."
-#: lib/web/templates/api/terms.html.heex:80
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:80
msgctxt "terms"
msgid "This Service runs on a Mobilizon instance. This source code is licensed under an
AGPLv3 license which means you are allowed to and even encouraged to take the source code, modify it and use it."
msgstr ""
@@ -730,16 +730,16 @@ msgstr ""
"significa que están autorizados e incluso alentados a tomar el código "
"fuente, modificarlo y usarlo."
-#: lib/web/templates/api/terms.html.heex:58
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:58
msgctxt "terms"
msgid "Viruses, corrupted data or other harmful, disruptive or destructive files or code."
msgstr ""
"Virus, datos corruptos u otros archivos o códigos dañinos, perjudiciales o "
"destructivos."
-#: lib/web/templates/api/terms.html.heex:51
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:51
msgctxt "terms"
msgid "You can remove the content that you posted by deleting it. Once you delete your content, it will not appear on the Service, but copies of your deleted content may remain in our system or backups for some period of time. Web server access logs might also be stored for some time in the system."
msgstr ""
@@ -749,29 +749,29 @@ msgstr ""
"un período de tiempo. Los registros de acceso al servidor web también pueden "
"almacenarse durante algún tiempo en el sistema."
-#: lib/web/templates/api/terms.html.heex:96
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:96
msgctxt "terms"
msgid "Questions or comments about the Service may be directed to us at %{contact}"
msgstr ""
"Las preguntas o comentarios sobre el Servicio pueden dirigirse a% {contact}"
-#: lib/web/templates/api/terms.html.heex:79
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:79
msgctxt "terms"
msgid "Source code"
msgstr "Código fuente"
-#: lib/web/templates/api/terms.html.heex:93
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:93
msgctxt "terms"
msgid "We love feedback. Please let us know what you think of the Service, these Terms and, in general,
%{instance_name}."
msgstr ""
"Nos encantan los comentarios. Háganos saber lo que piensa del Servicio, "
"estos Términos y, en general,
%{instance_name} ."
-#: lib/web/templates/api/terms.html.heex:74
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:74
msgctxt "terms"
msgid "Instance administrators (and community moderators, given the relevant access) are responsible for monitoring and acting on flagged content and other user reports, and have the right and responsibility to remove or edit content that is not aligned to this Instance set of rules, or to suspend, block or ban (temporarily or permanently) any account, community, or instance for breaking these terms, or for other behaviours that they deem inappropriate, threatening, offensive, or harmful."
msgstr ""
@@ -784,16 +784,16 @@ msgstr ""
"incumplir estos términos o por otros comportamientos que consideren "
"inapropiados, amenazantes, ofensivos o dañinos."
-#: lib/web/templates/api/terms.html.heex:6
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:6
msgctxt "terms"
msgid "
%{instance_name} will not use or transmit or resell your personal data"
msgstr ""
"
%{instance_name} no usará ni transmitirá ni revenderá sus datos "
"personales"
-#: lib/web/templates/api/terms.html.heex:44
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:44
msgctxt "terms"
msgid "If you discover or suspect any Service security breaches, please let us know as soon as possible. For security holes in the Mobilizon software itself, please contact
its contributors directly."
msgstr ""
@@ -802,8 +802,8 @@ msgstr ""
"de Mobilizon, comuníquese directamente con
sus colaboradores ."
-#: lib/web/templates/api/terms.html.heex:77
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:77
msgctxt "terms"
msgid "Instance administrators should ensure that every community hosted on the instance is properly moderated according to the defined rules."
msgstr ""
@@ -811,8 +811,8 @@ msgstr ""
"alojada en la instancia esté moderada adecuadamente de acuerdo con las "
"reglas definidas."
-#: lib/web/templates/api/terms.html.heex:98
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:98
msgctxt "terms"
msgid "Originally adapted from the
Diaspora* and
App.net privacy policies, also licensed under
CC BY-SA."
msgstr ""
@@ -821,8 +821,8 @@ msgstr ""
">App.net privacy policies, also licensed under
CC BY-SA."
-#: lib/web/templates/api/privacy.html.heex:119
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:119
msgctxt "terms"
msgid "Originally adapted from the
Mastodon and
Discourse privacy policies, also licensed under
CC BY-SA."
msgstr ""
@@ -831,22 +831,22 @@ msgstr ""
"políticas de privacidad, también bajo licencia
CC BY-SA."
-#: lib/web/templates/api/terms.html.heex:3
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:3
msgctxt "terms"
msgid "Short version"
msgstr "Version corta"
-#: lib/web/templates/api/terms.html.heex:9
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:9
msgctxt "terms"
msgid "The service is provided without warranties and these terms may change in the future"
msgstr ""
"El servicio se brinda sin garantías y estos términos pueden cambiar en el "
"futuro"
-#: lib/web/templates/api/privacy.html.heex:118
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:118
msgctxt "terms"
msgid "This document is licensed under
CC BY-SA. It was last updated June 18, 2020."
msgstr ""
@@ -854,8 +854,8 @@ msgstr ""
"licenses/by-sa/4.0/\"> CC BY-SA . Se actualizó por última vez el 18 de "
"junio de 2020."
-#: lib/web/templates/api/terms.html.heex:97
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:97
msgctxt "terms"
msgid "This document is licensed under
CC BY-SA. It was last updated June 22, 2020."
msgstr ""
@@ -863,85 +863,85 @@ msgstr ""
"licenses/by-sa/4.0/\"> CC BY-SA . Se actualizó por última vez el 22 de "
"junio de 2020."
-#: lib/web/templates/api/terms.html.heex:8
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:8
msgctxt "terms"
msgid "You must respect other people and
%{instance_name}'s rules when using the service"
msgstr ""
"Debe respetar las reglas de otras personas y
%{instance_name} al "
"usar el servicio"
-#: lib/web/templates/api/terms.html.heex:7
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:7
msgctxt "terms"
msgid "You must respect the law when using
%{instance_name}"
msgstr "Debe respetar la ley cuando use
%{instance_name} "
-#: lib/web/templates/api/terms.html.heex:5
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:5
msgctxt "terms"
msgid "Your content is yours"
msgstr "Tu contenido es tuyo"
-#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:51
#, elixir-format
+#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:51
msgid "Confirm my e-mail address"
msgstr "Confirmar mi dirección de correo electrónico"
+#, elixir-format
#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:13
#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:1
-#, elixir-format
msgid "Confirm your e-mail"
msgstr "Confirme su email"
-#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:3
#, elixir-format
+#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:3
msgid "Hi there! You just registered to join this event: « %{title} ». Please confirm the e-mail address you provided:"
msgstr ""
"¡Hola! Te acabas de registrar para unirte a este evento: «%{title}». "
"Confirme la dirección de correo electrónico que proporcionó:"
+#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.text.eex:8
-#, elixir-format
msgid "Need help? Is something not working as expected?"
msgstr "¿Necesita ayuda? ¿Algo no está funcionando correctamente?"
-#: lib/web/templates/email/registration_confirmation.html.heex:38
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.html.heex:38
msgid "You created an account on
%{host} with this email address. You are one click away from activating it."
msgstr ""
"Creó una cuenta en
%{host} con esta dirección de correo electrónico. "
"Estás a un clic de activarlo."
-#: lib/web/templates/email/report.html.heex:13
#, elixir-format
+#: lib/web/templates/email/report.html.heex:13
msgid "New report on
%{instance}"
msgstr "Nuevo informe sobre
%{instance} "
-#: lib/web/templates/email/email_changed_old.html.heex:38
#, elixir-format
+#: lib/web/templates/email/email_changed_old.html.heex:38
msgid "The email address for your account on
%{host} is being changed to:"
msgstr ""
"La dirección de correo electrónico de su cuenta en
%{host} se "
"cambiará a:"
-#: lib/web/templates/email/password_reset.html.heex:38
#, elixir-format
+#: lib/web/templates/email/password_reset.html.heex:38
msgid "You requested a new password for your account on
%{instance}."
msgstr "Solicitó una nueva contraseña para su cuenta en
%{instance} ."
-#: lib/web/templates/email/email.text.eex:5
#, elixir-format
+#: lib/web/templates/email/email.text.eex:5
msgid "Please do not use it for real purposes."
msgstr "Por favor no lo use de ninguna manera real."
+#, elixir-format
#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:63
#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:6 lib/web/templates/email/event_updated.html.heex:133
#: lib/web/templates/email/event_updated.text.eex:24 lib/web/templates/email/notification_each_week.html.heex:70
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:70
#: lib/web/templates/email/on_day_notification.text.eex:14
-#, elixir-format
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@@ -951,9 +951,9 @@ msgstr[1] ""
"Si desea cancelar su participación en uno o varios eventos, visite las "
"páginas de los eventos a través de los enlaces de arriba y presiona el botón."
+#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
-#, elixir-format
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] "Tiene una solicitud de participación pendiente de procesar:"
@@ -961,66 +961,66 @@ msgstr[1] ""
"Tienes %{number_participation_requests} solicitudes de participación "
"pendientes de procesar:"
-#: lib/web/templates/email/email.text.eex:11
#, elixir-format
+#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} es un servidor de Mobilizon."
-#: lib/web/templates/email/email.html.heex:143
#, elixir-format
+#: lib/web/templates/email/email.html.heex:143
msgid "
%{instance} is powered by Mobilizon."
msgstr "
%{instance} es una instancia de Mobilizon."
+#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:13
#: lib/web/templates/email/pending_participation_notification.text.eex:1
-#, elixir-format
msgid "A request is pending!"
msgstr "¡Hay una solicitud pendiente!"
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:13
#: lib/web/templates/email/before_event_notification.text.eex:1
-#, elixir-format
msgid "An event is upcoming!"
msgstr "¡Se acerca un evento!"
+#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:13
#: lib/web/templates/email/email_changed_new.text.eex:1
-#, elixir-format
msgid "Confirm new email"
msgstr "Confirme su email"
-#: lib/web/templates/email/event_updated.html.heex:84
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:84
msgid "End"
msgstr "Final"
-#: lib/web/templates/email/event_updated.text.eex:21
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Final %{ends_on}"
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
-#, elixir-format
msgid "Event update!"
msgstr "¡Evento actualizado!"
-#: lib/web/templates/email/report.html.heex:88
#, elixir-format
+#: lib/web/templates/email/report.html.heex:88
msgid "Flagged comments"
msgstr "Comentarios marcados"
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:45
#: lib/web/templates/email/event_participation_approved.text.eex:7
-#, elixir-format
msgid "Good news: one of the event organizers just approved your request. Update your calendar, because you're on the guest list now!"
msgstr ""
"Buenas noticias: uno de los organizadores del evento acaba de aprobar su "
"solicitud. Actualice su calendario, ¡porque ya está en la lista de invitados!"
+#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:38
#: lib/web/templates/email/email_changed_new.text.eex:3
-#, elixir-format
msgid "Hi there! It seems like you wanted to change the email address linked to your account on
%{instance}. If you still wish to do so, please click the button below to confirm the change. You will then be able to log in to %{instance} with this new email address."
msgstr ""
"¡Hola! Parece que desea cambiar la dirección de correo electrónico vinculada "
@@ -1028,16 +1028,16 @@ msgstr ""
"botón de abajo para confirmar el cambio. Luego podrá iniciar sesión en% "
"{instance} con esta nueva dirección de correo electrónico."
-#: lib/web/templates/email/email_changed_old.text.eex:3
#, elixir-format
+#: lib/web/templates/email/email_changed_old.text.eex:3
msgid "Hi there! Just a quick note to confirm that the email address linked to your account on %{host} has been changed from this one to:"
msgstr ""
"¡Hola! Solo una nota rápida para confirmar que la dirección de correo "
"electrónico vinculada a su cuenta en %{host} se ha cambiado de esta a:"
+#, elixir-format
#: lib/web/templates/email/email_changed_old.html.heex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
-#, elixir-format
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
"Si no activó este cambio usted mismo, es probable que alguien haya obtenido "
@@ -1045,175 +1045,175 @@ msgstr ""
"inmediatamente. Si no puede iniciar sesión, comuníquese con el administrador "
"en %{host}."
-#: lib/web/templates/email/password_reset.text.eex:12
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:12
msgid "If you didn't trigger the change yourself, please ignore this message. Your password won't be changed until you click the link above."
msgstr ""
"Si no activó el cambio usted mismo, ignore este mensaje. Su contraseña no se "
"cambiará hasta que haga clic en el enlace de arriba."
+#, elixir-format
#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:70
#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:4 lib/web/templates/email/registration_confirmation.html.heex:45
-#, elixir-format
msgid "If you didn't trigger this email, you may safely ignore it."
msgstr "Si no activó esta alerta, puede ignorarla con seguridad."
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:63
#: lib/web/templates/email/before_event_notification.text.eex:6
-#, elixir-format
msgid "If you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgstr ""
"Si necesitas cancelar su participación, sólo accede a la página del evento "
"mediante el enlace debajo y presiona el botón."
+#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.text.eex:11
-#, elixir-format
msgid "Learn more about Mobilizon here!"
msgstr "¡Aprenda más sobre Mobilizon aquí!"
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:94
#: lib/web/templates/export/event_participants.html.heex:129
-#, elixir-format
msgid "Location"
msgstr "Ubicación"
-#: lib/web/templates/email/event_updated.html.heex:104
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:104
msgid "Location address was removed"
msgstr "Dirección física fue eliminada"
+#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
-#, elixir-format
msgid "Manage pending requests"
msgstr "Gestionar solicitudes de participación pendientes"
+#, elixir-format
#: lib/web/templates/email/registration_confirmation.html.heex:13
#: lib/web/templates/email/registration_confirmation.text.eex:1
-#, elixir-format
msgid "Nearly there!"
msgstr "¡Ya casi estas!"
+#, elixir-format
#: lib/web/templates/email/email_changed_old.html.heex:13
#: lib/web/templates/email/email_changed_old.text.eex:1
-#, elixir-format
msgid "New email confirmation"
msgstr "Nueva confirmación de correo electrónico"
-#: lib/web/templates/email/report.html.heex:106
#, elixir-format
+#: lib/web/templates/email/report.html.heex:106
msgid "Reasons for report"
msgstr "Razones para informar"
-#: lib/web/templates/email/report.html.heex:39
#, elixir-format
+#: lib/web/templates/email/report.html.heex:39
msgid "Someone on
%{instance} reported the following content for you to analyze:"
msgstr "Alguien en
%{instance} informó el siguiente contenido:"
+#, elixir-format
#: lib/web/templates/email/event_participation_rejected.html.heex:13
#: lib/web/templates/email/event_participation_rejected.text.eex:1
-#, elixir-format
msgid "Sorry! You're not going."
msgstr "¡Lo siento! No vas."
-#: lib/web/templates/email/event_updated.html.heex:74
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:74
msgid "Start"
msgstr "Inicio"
-#: lib/web/templates/email/event_updated.text.eex:18
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Inicio %{begins_on}"
-#: lib/web/templates/email/event_updated.text.eex:3
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:3
msgid "There have been changes for %{title} so we'd thought we'd let you know."
msgstr "Ha habido cambios para %{title}, así que pensamos en avisarle."
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:55
#: lib/web/templates/email/event_updated.text.eex:11
-#, elixir-format
msgid "This event has been cancelled by its organizers. Sorry!"
msgstr "Este evento ha sido cancelado por sus organizadores. ¡Lo siento!"
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:51
#: lib/web/templates/email/event_updated.text.eex:7
-#, elixir-format
msgid "This event has been confirmed"
msgstr "El evento ha sido confirmado"
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:53
#: lib/web/templates/email/event_updated.text.eex:9
-#, elixir-format
msgid "This event has yet to be confirmed: organizers will let you know if they do confirm it."
msgstr ""
"Este evento aún no se ha confirmado: los organizadores te avisarán si lo "
"confirman."
+#, elixir-format
#: lib/web/templates/email/event_participation_rejected.html.heex:45
#: lib/web/templates/email/event_participation_rejected.text.eex:7
-#, elixir-format
msgid "Unfortunately, the organizers rejected your request."
msgstr ""
"Lamentablemente, los organizadores rechazaron tu solicitud de participación."
-#: lib/web/templates/email/email_changed_new.html.heex:51
#, elixir-format
+#: lib/web/templates/email/email_changed_new.html.heex:51
msgid "Verify your email address"
msgstr "Verifica tu dirección de correo electrónico"
-#: lib/web/templates/email/report.html.heex:126
#, elixir-format
+#: lib/web/templates/email/report.html.heex:126
msgid "View report"
msgstr "Ver el informe"
-#: lib/web/templates/email/report.text.eex:24
#, elixir-format
+#: lib/web/templates/email/report.text.eex:24
msgid "View report:"
msgstr "Ver el informe:"
+#, elixir-format
#: lib/web/templates/email/email_anonymous_activity.html.heex:67
#: lib/web/templates/email/event_participation_approved.html.heex:58 lib/web/templates/email/event_participation_confirmed.html.heex:58
-#, elixir-format
msgid "Visit event page"
msgstr "Visita la página del evento"
-#: lib/web/templates/email/event_updated.html.heex:121
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:121
msgid "Visit the updated event page"
msgstr "Visita la página del evento actualizada"
-#: lib/web/templates/email/event_updated.text.eex:23
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:23
msgid "Visit the updated event page: %{link}"
msgstr "Ver el evento actualizado en: %{link}"
+#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
-#, elixir-format
msgid "What's up this week?"
msgstr "¿Qué pasa esta semana?"
+#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
-#, elixir-format
msgid "What's up today?"
msgstr "Qué pasa hoy?"
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:70
#: lib/web/templates/email/event_participation_approved.text.eex:11 lib/web/templates/email/event_participation_confirmed.html.heex:70
#: lib/web/templates/email/event_participation_confirmed.text.eex:6
-#, elixir-format
msgid "Would you wish to update or cancel your attendance, simply access the event page through the link above and click on the Attending button."
msgstr ""
"Si desea actualizar o cancelar su asistencia, simplemente acceda a la página "
"del evento a través del enlace de arriba y haga clic en el botón Asistir."
+#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
-#, elixir-format
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
"Recibió este correo electrónico porque eligió recibir notificaciones de "
@@ -1221,110 +1221,110 @@ msgstr ""
"cambiar la configuración de notificaciones en la configuración de su cuenta "
"de usuario en «Notificaciones»."
-#: lib/web/templates/email/event_participation_rejected.text.eex:5
#, elixir-format
+#: lib/web/templates/email/event_participation_rejected.text.eex:5
msgid "You issued a request to attend %{title}."
msgstr "Envió una solicitud para asistir a %{title}."
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.text.eex:5
#: lib/web/templates/email/event_participation_confirmed.text.eex:3
-#, elixir-format
msgid "You recently requested to attend %{title}."
msgstr "Solicitaste participar en el evento %{title}."
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:13
#: lib/web/templates/email/event_participation_confirmed.html.heex:13 lib/web/templates/email/event_participation_confirmed.text.eex:1
-#, elixir-format
msgid "You're going!"
msgstr "¡Vas!"
+#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:64
#: lib/web/templates/email/email_changed_new.text.eex:5
-#, elixir-format
msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr "Si no activó el cambio usted mismo, ignore este mensaje."
-#: lib/web/templates/email/email.html.heex:90
#, elixir-format
+#: lib/web/templates/email/email.html.heex:90
msgid "
Please do not use it for real purposes."
msgstr "
Por favor no lo use de ninguna manera real."
+#, elixir-format
#: lib/web/templates/email/group_member_removal.html.heex:45
#: lib/web/templates/email/group_member_removal.text.eex:5
-#, elixir-format
msgid "If you feel this is an error, you may contact the group's administrators so that they can add you back."
msgstr ""
"Si cree que esto es un error, puede comunicarse con los administradores del "
"grupo para que lo puedan integrar de nuevo."
+#, elixir-format
#: lib/web/templates/email/group_member_removal.html.heex:13
#: lib/web/templates/email/group_member_removal.text.eex:1
-#, elixir-format
msgid "So long, and thanks for the fish!"
msgstr "¡Hasta luego y gracias por el pescado!"
-#: lib/web/email/group.ex:63
#, elixir-format
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Ha sido eliminado del grupo %{group}"
-#: lib/web/templates/email/group_member_removal.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_member_removal.text.eex:3
msgid "You have been removed from group %{group}. You will not be able to access this group's private content anymore."
msgstr ""
"Se le ha eliminado del grupo %{group}. Ya no podrá acceder al contenido "
"privado de este grupo."
-#: lib/web/templates/email/group_invite.html.heex:38
#, elixir-format
+#: lib/web/templates/email/group_invite.html.heex:38
msgid "
%{inviter} just invited you to join their group %{link_start}
%{group}%{link_end}"
msgstr ""
"
%{inviter} le acaba de invitar a unirse a su grupo% {link_start} "
"
%{group %{link_end}"
-#: lib/web/templates/email/group_member_removal.html.heex:38
#, elixir-format
+#: lib/web/templates/email/group_member_removal.html.heex:38
msgid "You have been removed from group %{link_start}
%{group}%{link_end}. You will not be able to access this group's private content anymore."
msgstr ""
"Ha sido eliminado del grupo% {link_start}
%{group} % {link_end}. Ya "
"no podrá acceder al contenido privado de este grupo."
+#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:54
#: lib/web/templates/email/group_suspension.text.eex:7
-#, elixir-format
msgid "As this group was located on another instance, it will continue to work for other instances than this one."
msgstr ""
"Como este grupo estaba ubicado en otra instancia, seguirá funcionando para "
"otras instancias además de esta."
+#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:46
#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-format
msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
msgstr ""
"Como este grupo estaba ubicado en esta instancia, todos sus datos se han "
"eliminado de forma irremediable."
+#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:13
#: lib/web/templates/email/group_suspension.text.eex:1
-#, elixir-format
msgid "The group %{group} has been suspended on %{instance}!"
msgstr "¡El grupo %{group} ha sido suspendido en %{instance}!"
-#: lib/web/templates/email/group_suspension.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_suspension.text.eex:3
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
"El equipo de moderación de su instancia ha decidido suspender a %{group_name}"
" (%{group_address}). Ya no eres miembro de este grupo."
-#: lib/web/email/group.ex:97
#, elixir-format
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "El grupo %{group} ha sido suspendido en %{instance}"
-#: lib/web/templates/api/terms.html.heex:24
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:24
msgctxt "terms"
msgid "By accessing or using the Service, this means you agree to be bound by all the terms below. If these terms are in any way unclear, please let us know by contacting %{contact}."
msgstr ""
@@ -1332,8 +1332,8 @@ msgstr ""
"todos los términos a continuación. Si estos términos no son claros de alguna "
"manera, háganoslo saber poniéndose en contacto con %{contact}."
-#: lib/web/templates/api/terms.html.heex:40
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:40
msgctxt "terms"
msgid "For information about how we collect and use information about users of the Service, please check our
privacy policy."
msgstr ""
@@ -1341,22 +1341,22 @@ msgstr ""
"sobre los usuarios del Servicio, consulte nuestra
"
"política de privacidad ."
-#: lib/web/templates/api/terms.html.heex:36
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:36
msgctxt "terms"
msgid "If you continue to use the Service after the revised Terms go into effect, you accept the revised Terms."
msgstr ""
"Si continúa utilizando el Servicio después de que los Términos revisados "
"entren en vigencia, entonces ha aceptado los Términos revisados."
-#: lib/web/templates/api/privacy.html.heex:78
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:78
msgctxt "terms"
msgid "If you delete this information, you need to login again."
msgstr "Si eliminas esta información, deberás iniciar sesión nuevamente."
-#: lib/web/templates/api/privacy.html.heex:80
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:80
msgctxt "terms"
msgid "If you're not connected, we don't store any information on your device, unless you participate in an event anonymously. In this specific case we store the hash of an unique identifier for the event and participation status in your browser so that we may display participation status. Deleting this information will only stop displaying participation status in your browser."
msgstr ""
@@ -1367,22 +1367,22 @@ msgstr ""
"información solo dejará de mostrar el estado de participación en tu "
"navegador."
-#: lib/web/templates/api/privacy.html.heex:87
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:87
msgctxt "terms"
msgid "Note: This information is stored in your localStorage and not your cookies."
msgstr ""
"Nota: Estas informaciones se almacenan en tu almacenamiento local y no en "
"tus cookies."
-#: lib/web/templates/api/terms.html.heex:71
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:71
msgctxt "terms"
msgid "Our responsibility"
msgstr "Nuestra responsabilidad"
-#: lib/web/templates/api/privacy.html.heex:61
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:61
msgctxt "terms"
msgid "Retain server logs containing the IP address of all requests to this server, insofar as such logs are kept, no more than 90 days."
msgstr ""
@@ -1390,9 +1390,9 @@ msgstr ""
"las solicitudes a este servidor, en la medida en que dichos registros se "
"mantengan, no más de 90 días."
+#, elixir-format
#: lib/web/templates/api/privacy.html.heex:3
#: lib/web/templates/api/terms.html.heex:15
-#, elixir-format
msgctxt "terms"
msgid "Some terms, technical or otherwise, used in the text below may cover concepts that are difficult to grasp. We have provided
a glossary to help you understand them better."
msgstr ""
@@ -1401,8 +1401,8 @@ msgstr ""
"Proporcionamos
un glosario para ayudarlo a "
"comprenderlos mejor."
-#: lib/web/templates/api/terms.html.heex:45
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:45
msgctxt "terms"
msgid "We are not liable for any loss you may incur as a result of someone else using your email or password, either with or without your knowledge."
msgstr ""
@@ -1410,8 +1410,8 @@ msgstr ""
"resultado de que otra persona use su correo electrónico o contraseña, ya sea "
"con o sin su conocimiento."
-#: lib/web/templates/api/terms.html.heex:50
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:50
msgctxt "terms"
msgid "We cannot be held responsible should a programming or administrative error make your content visible to a larger audience than intended. Aside from our limited right to your content, you retain all of your rights to the content you post, link and otherwise make available on or through the Service."
msgstr ""
@@ -1421,8 +1421,8 @@ msgstr ""
"todos sus derechos sobre el contenido que publica, vincula y de lo contrario "
"pone a disposición en oa través del Servicio."
-#: lib/web/templates/api/privacy.html.heex:10
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:10
msgctxt "terms"
msgid "We collect information from you when you register on this instance and gather data when you participate in the platform by reading, writing, and interacting with content shared here. If you register on this instance, you will be asked to enter
an email address, a password (hashed) and at least
an username. Your email address will be verified by an email containing a unique link. Once the link is activated, we know you control that email address. You may also enter additional profile information such as
a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image
are always listed publicly.
You may however visit this instance without registering."
msgstr ""
@@ -1440,8 +1440,8 @@ msgstr ""
"imagen del encabezado
siempre se listan públicamente.
Sin "
"embargo, también puedes visitar este servidor sin registrarse."
-#: lib/web/templates/api/terms.html.heex:30
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:30
msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
@@ -1449,8 +1449,8 @@ msgstr ""
"Por ejemplo, es posible que necesitemos cambiar estos Términos si "
"presentamos una nueva función o por alguna otra razón."
-#: lib/web/templates/api/terms.html.heex:20
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:20
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by
Framasoft, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the
\"About this instance\" page."
msgstr ""
@@ -1465,8 +1465,8 @@ msgstr ""
"información sobre esta instancia en la página
"
"\"Acerca de esta instancia\" ."
-#: lib/web/templates/api/terms.html.heex:43
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:43
msgctxt "terms"
msgid "When you create an account you agree to maintain the security and confidentiality of your password and accept all risks of unauthorized access to your account data and any other information you provide to
%{instance_name}."
msgstr ""
@@ -1475,8 +1475,8 @@ msgstr ""
"autorizado a los datos de su cuenta y cualquier otra información que "
"proporcione a
%{instance_name}."
-#: lib/web/templates/api/terms.html.heex:49
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:49
msgctxt "terms"
msgid "When you post, link or otherwise make available content to the Service, you grant us the right and license to display and distribute your content on or through the Service (including via applications). We may format your content for display throughout the Service, but we will not edit or revise the substance of your content itself. The displaying and distribution of your content happens only according to the visibility rules you have set for the content. We will not modify the visibility of the content you have set."
msgstr ""
@@ -1489,8 +1489,8 @@ msgstr ""
"visibilidad que ha establecido para el contenido. No modificaremos la "
"visibilidad del contenido que ha establecido."
-#: lib/web/templates/api/privacy.html.heex:19
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:19
msgctxt "terms"
msgid "Your
events and
comments are delivered to other instances that follow your own, meaning they are delivered to different instances and copies are stored there. When you delete events or comments, this is likewise delivered to these other instances. All interactions related to event features - such as joining an event - or group features - such as managing resources - are federated as well. Please keep in mind that the operators of the instance and any receiving instances may view such messages and information, and that recipients may screenshot, copy or otherwise re-share them."
msgstr ""
@@ -1502,8 +1502,8 @@ msgstr ""
"servidor y cualquier servidor receptor puede ver dichos mensajes, y los "
"destinatarios pueden capturar, copiar o de incluso volver a compartirlos."
-#: lib/web/templates/api/privacy.html.heex:99
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:99
msgctxt "terms"
msgid "Your content may be downloaded by other instances in the network. Your public events and comments are delivered to the instances following your own instance. Content created through a group is forwarded to all the instances of all the members of the group, insofar as these members reside on a different instance than this one."
msgstr ""
@@ -1512,328 +1512,328 @@ msgstr ""
"mensajes directos se entregan a los servidores de los destinatarios, en la "
"medida en que estos destinatarios residen en un servidor diferente a este."
-#: lib/web/templates/email/event_participation_confirmed.text.eex:4
#, elixir-format
+#: lib/web/templates/email/event_participation_confirmed.text.eex:4
msgid "You have confirmed your participation. Update your calendar, because you're on the guest list now!"
msgstr ""
"Ha confirmado su participación. Actualice su calendario, ¡porque ya está en "
"la lista de invitados!"
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:38
#: lib/web/templates/email/event_participation_confirmed.html.heex:38
-#, elixir-format
msgid "You recently requested to attend
%{title}."
msgstr "Solicitaste participar en el evento
%{title}."
-#: lib/web/email/participation.ex:88
#, elixir-format
+#: lib/web/email/participation.ex:88
msgid "Your participation to event %{title} has been confirmed"
msgstr "Su participación en el evento %{title} ha sido aprobada"
-#: lib/web/templates/email/report.html.heex:41
#, elixir-format
+#: lib/web/templates/email/report.html.heex:41
msgid "
%{reporter} reported the following content."
msgstr "
%{reporter} informó el siguiente contenido."
-#: lib/web/templates/email/report.text.eex:5
#, elixir-format
+#: lib/web/templates/email/report.text.eex:5
msgid "Group %{group} was reported"
msgstr "Se informó el grupo %{group}"
-#: lib/web/templates/email/report.html.heex:51
#, elixir-format
+#: lib/web/templates/email/report.html.heex:51
msgid "Group reported"
msgstr "Grupo informado"
-#: lib/web/templates/email/report.text.eex:7
#, elixir-format
+#: lib/web/templates/email/report.text.eex:7
msgid "Profile %{profile} was reported"
msgstr "Se informó el perfil %{profile}"
-#: lib/web/templates/email/report.html.heex:56
#, elixir-format
+#: lib/web/templates/email/report.html.heex:56
msgid "Profile reported"
msgstr "Perfil informado"
-#: lib/web/templates/email/event_participation_confirmed.html.heex:45
#, elixir-format
+#: lib/web/templates/email/event_participation_confirmed.html.heex:45
msgid "You have now confirmed your participation. Update your calendar, because you're on the guest list now!"
msgstr ""
"Ahora ha confirmado su participación. Actualice su calendario, ¡porque ya "
"está en la lista de invitados!"
-#: lib/mobilizon/posts/post.ex:99
#, elixir-format
+#: lib/mobilizon/posts/post.ex:99
msgid "A text is required for the post"
msgstr "Se requiere un texto para la publicación"
-#: lib/mobilizon/posts/post.ex:98
#, elixir-format
+#: lib/mobilizon/posts/post.ex:98
msgid "A title is required for the post"
msgstr "Se requiere un título para la publicación"
-#: lib/web/templates/email/instance_follow.text.eex:3
#, elixir-format
+#: lib/web/templates/email/instance_follow.text.eex:3
msgid "%{name} (%{domain}) just requested to follow your instance."
msgstr "%{name} (%{domain}) sólo solicitó seguir su instancia."
-#: lib/web/email/follow.ex:54
#, elixir-format
+#: lib/web/email/follow.ex:54
msgid "%{name} requests to follow your instance"
msgstr "%{name} solicita seguir tu instancia"
-#: lib/web/templates/email/instance_follow.html.heex:38
#, elixir-format
+#: lib/web/templates/email/instance_follow.html.heex:38
msgid "
%{name} (%{domain}) just requested to follow your instance. If you accept, this instance will receive all of your instance's public events."
msgstr ""
"
%{name} (%{domain}) solo pedí seguir tu instancia. Si acepta, su "
"instancia recibirá todos los eventos públicos para su instancia."
-#: lib/web/templates/email/instance_follow.text.eex:4
#, elixir-format
+#: lib/web/templates/email/instance_follow.text.eex:4
msgid "If you accept, this instance will receive all of your public events."
msgstr "Si acepta, esta instancia recibirá todos sus eventos públicos."
-#: lib/web/email/follow.ex:48
#, elixir-format
+#: lib/web/email/follow.ex:48
msgid "Instance %{name} (%{domain}) requests to follow your instance"
msgstr "La instancia %{name} (%{domain}) solicita seguir tu instancia"
-#: lib/web/templates/email/instance_follow.html.heex:66
#, elixir-format
+#: lib/web/templates/email/instance_follow.html.heex:66
msgid "See the federation settings"
msgstr "Ver la configuración de la federación"
+#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:52
#: lib/web/templates/email/instance_follow.text.eex:6
-#, elixir-format
msgid "To accept this invitation, head over to the instance's admin settings."
msgstr "Para aceptar esta invitación, dirígete a tus grupos."
+#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:13
#: lib/web/templates/email/instance_follow.text.eex:1
-#, elixir-format
msgid "Want to connect?"
msgstr "¿Quieres conectarte?"
+#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:45
#: lib/web/templates/email/instance_follow.text.eex:5
-#, elixir-format
msgid "Note: %{name} (%{domain}) following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too."
msgstr ""
"Nota: el hecho que %{name} (%{domain} te siga, no implica necesariamente que "
"sigas esta instancia, pero puedes solicitar seguirla también."
-#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:38
#, elixir-format
+#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:38
msgid "Hi there! You just registered to join this event: «
%{title} ». Please confirm the e-mail address you provided:"
msgstr ""
"¡Hola! Te acabas de registrar para unirte a este evento: «
%{title}». "
"Confirme la dirección de correo electrónico que proporcionó:"
-#: lib/web/templates/email/event_participation_rejected.html.heex:38
#, elixir-format
+#: lib/web/templates/email/event_participation_rejected.html.heex:38
msgid "You issued a request to attend
%{title}."
msgstr "Envió una solicitud para asistir a
%{title}."
-#: lib/web/templates/email/event_updated.html.heex:64
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:64
msgid "Event title"
msgstr "Título del evento"
-#: lib/web/templates/email/event_updated.html.heex:38
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:38
msgid "There have been changes for
%{title} so we'd thought we'd let you know."
msgstr "Ha habido cambios para
%{title}, así que pensamos en avisarle."
-#: lib/web/templates/error/500_page.html.heex:7
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:7
msgid "This page is not correct"
msgstr "Esta página no es correcta"
-#: lib/web/templates/error/500_page.html.heex:50
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:50
msgid "We're sorry, but something went wrong on our end."
msgstr "Lo sentimos, pero algo salió mal por nuestra parte."
+#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.text.eex:4
-#, elixir-format
msgid "This is a demonstration site to test Mobilizon."
msgstr "Este es un sitio de demostración para probar Mobilizon."
+#, elixir-format
#: lib/service/metadata/actor.ex:67 lib/service/metadata/actor.ex:75
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
-#, elixir-format
msgid "%{name}'s feed"
msgstr "Flujo de %{name}"
-#: lib/service/export/feed.ex:122
#, elixir-format
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "Flujo de eventos privados de %{actor} a %{instance}"
-#: lib/service/export/feed.ex:117
#, elixir-format
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "Flujo público de eventos de %{actor} a %{instance}"
-#: lib/service/export/feed.ex:225
#, elixir-format
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "Flujo para %{email} en %{instance}"
-#: lib/web/templates/error/500_page.html.heex:57
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:57
msgid "If the issue persists, you may contact the server administrator at %{contact}."
msgstr ""
"Si el problema persiste, puede comunicarse con el administrador del servidor "
"en %{contact}."
-#: lib/web/templates/error/500_page.html.heex:55
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:55
msgid "If the issue persists, you may try to contact the server administrator."
msgstr ""
"Si el problema persiste, puede intentar comunicarse con el administrador del "
"servidor."
-#: lib/web/templates/error/500_page.html.heex:68
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:68
msgid "Technical details"
msgstr "Detalles técnicos"
-#: lib/web/templates/error/500_page.html.heex:52
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
"El servidor de Mobilizon %{instance} parece estar temporalmente inactivo."
-#: lib/service/export/feed.ex:75
#, elixir-format
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr "Flujo público para %{instance}"
-#: lib/graphql/resolvers/user.ex:298
#, elixir-format
+#: lib/graphql/resolvers/user.ex:298
msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
msgstr ""
"La contraseña que ha elegido es demasiado corta. Asegúrese de que su "
"contraseña contenga al menos 6 caracteres."
-#: lib/graphql/resolvers/user.ex:304
#, elixir-format
+#: lib/graphql/resolvers/user.ex:304
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
"El token que proporcionaste no es válido. Asegúrese de que la URL sea "
"exactamente la que se proporciona dentro del correo electrónico que recibió."
-#: lib/web/email/actor.ex:44
#, elixir-format
+#: lib/web/email/actor.ex:44
msgid "Your participation to %{event} has been cancelled!"
msgstr "Su participación en el evento %{title} ¡ha sido cancelada!"
+#, elixir-format
#: lib/web/templates/email/actor_suspension_participants.html.heex:38
#: lib/web/templates/email/actor_suspension_participants.text.eex:3
-#, elixir-format
msgid "Your instance's moderation team has decided to suspend %{actor_name} (%{actor_address}). All of their events have been removed and your participation to event %{event} cancelled."
msgstr ""
"El equipo de moderación de tu instancia ha decidido suspender a%{actor_name} "
"(%{actor_address}). Se eliminaron todos sus eventos y se canceló su "
"participación en el evento % {event}."
-#: lib/web/templates/email/group_suspension.html.heex:38
#, elixir-format
+#: lib/web/templates/email/group_suspension.html.heex:38
msgid "Your instance's moderation team has decided to suspend
%{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
"El equipo de moderación de su instancia ha decidido suspender a "
"
%{group_name}(%{group_address}). Ya no eres miembro de este grupo."
+#, elixir-format
#: lib/web/templates/email/actor_suspension_participants.html.heex:13
#: lib/web/templates/email/actor_suspension_participants.text.eex:1
-#, elixir-format
msgid "Your participation to %{event} on %{instance} has been cancelled!"
msgstr "¡Tu participación en %{event} en %{instance} ha sido cancelada!"
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
+#, elixir-format
#: lib/service/export/participants/csv.ex:73
#: lib/service/export/participants/ods.ex:79 lib/service/export/participants/pdf.ex:93
-#, elixir-format
msgid "%{event}_participants"
msgstr "%{event}_participants"
-#: lib/service/export/participants/common.ex:61
#, elixir-format
+#: lib/service/export/participants/common.ex:61
msgid "Participant message"
msgstr "Mensaje del participante"
-#: lib/service/export/participants/common.ex:61
#, elixir-format
+#: lib/service/export/participants/common.ex:61
msgid "Participant name"
msgstr "Participación aprobada"
-#: lib/service/export/participants/common.ex:61
#, elixir-format
+#: lib/service/export/participants/common.ex:61
msgid "Participant status"
msgstr "Estado de participante"
-#: lib/service/export/participants/common.ex:52
#, elixir-format
+#: lib/service/export/participants/common.ex:52
msgid "Administrator"
msgstr "Administrador-a"
-#: lib/service/export/participants/common.ex:55
#, elixir-format
+#: lib/service/export/participants/common.ex:55
msgid "Creator"
msgstr "Creador-a"
-#: lib/service/export/participants/common.ex:49
#, elixir-format
+#: lib/service/export/participants/common.ex:49
msgid "Moderator"
msgstr "Moderador-a"
-#: lib/service/export/participants/common.ex:37
#, elixir-format
+#: lib/service/export/participants/common.ex:37
msgid "Not approved"
msgstr "No aprovado-a"
-#: lib/service/export/participants/common.ex:40
#, elixir-format
+#: lib/service/export/participants/common.ex:40
msgid "Not confirmed"
msgstr "No confirmado-a"
-#: lib/service/export/participants/common.ex:46
#, elixir-format
+#: lib/service/export/participants/common.ex:46
msgid "Participant"
msgstr "Participante"
-#: lib/service/export/participants/common.ex:43
#, elixir-format
+#: lib/service/export/participants/common.ex:43
msgid "Rejected"
msgstr "Rechazado-a"
-#: lib/web/templates/export/event_participants.html.heex:122
#, elixir-format
+#: lib/web/templates/export/event_participants.html.heex:122
msgid "Begins on"
msgstr "Comienza en"
-#: lib/web/templates/export/event_participants.html.heex:125
#, elixir-format
+#: lib/web/templates/export/event_participants.html.heex:125
msgid "Ends on"
msgstr "Final"
-#: lib/web/templates/export/event_participants.html.heex:132
#, elixir-format
+#: lib/web/templates/export/event_participants.html.heex:132
msgid "Number of participants"
msgstr "Número de participantes"
-#: lib/web/templates/export/event_participants.html.heex:120
#, elixir-format
+#: lib/web/templates/export/event_participants.html.heex:120
msgid "Participants for %{event}"
msgstr "Participación aprobada"
-#: lib/service/export/participants/common.ex:88
#, elixir-format
+#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr "Participante anónimo"
diff --git a/priv/gettext/es/LC_MESSAGES/errors.po b/priv/gettext/es/LC_MESSAGES/errors.po
index 4589de1c..9cd21332 100644
--- a/priv/gettext/es/LC_MESSAGES/errors.po
+++ b/priv/gettext/es/LC_MESSAGES/errors.po
@@ -94,882 +94,902 @@ msgstr "debe ser mayor o igual que% {number}"
msgid "must be equal to %{number}"
msgstr "debe ser igual a% {number}"
-#: lib/graphql/resolvers/user.ex:107
#, elixir-format
+#: lib/graphql/resolvers/user.ex:107
msgid "Cannot refresh the token"
msgstr "No se puede actualizar el token"
-#: lib/graphql/resolvers/group.ex:227
#, elixir-format
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "El perfil actual no es miembro de este grupo"
-#: lib/graphql/resolvers/group.ex:231
#, elixir-format
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "El perfil actual no es un administrador del grupo seleccionado"
-#: lib/graphql/resolvers/user.ex:588
#, elixir-format
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Error al guardar los parámetros del usuario"
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
#, elixir-format
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Grupo no encontrado"
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
#, elixir-format
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "No se encontró el grupo con ID% {id}"
-#: lib/graphql/resolvers/user.ex:85
#, elixir-format
+#: lib/graphql/resolvers/user.ex:85
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
"Imposible autenticarse, su correo electrónico o contraseña no son válidos."
-#: lib/graphql/resolvers/group.ex:290
#, elixir-format
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Miembro no encontrado"
-#: lib/graphql/resolvers/actor.ex:94
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:94
msgid "No profile found for the moderator user"
msgstr "No se encontró el perfil del usuario moderador"
-#: lib/graphql/resolvers/user.ex:253
#, elixir-format
+#: lib/graphql/resolvers/user.ex:253
msgid "No user to validate with this email was found"
msgstr "No se encontró ningún usuario para validar con este correo electrónico"
-#: lib/graphql/resolvers/person.ex:314 lib/graphql/resolvers/user.ex:278
#, elixir-format
+#: lib/graphql/resolvers/person.ex:314 lib/graphql/resolvers/user.ex:278
msgid "No user with this email was found"
msgstr "No se encontró ningún usuario con este correo electrónico"
+#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:32 lib/graphql/resolvers/participant.ex:210 lib/graphql/resolvers/person.ex:236
#: lib/graphql/resolvers/person.ex:353 lib/graphql/resolvers/person.ex:380 lib/graphql/resolvers/person.ex:397
-#, elixir-format
msgid "Profile is not owned by authenticated user"
msgstr "El perfil no es propiedad del usuario autenticado"
-#: lib/graphql/resolvers/user.ex:156
#, elixir-format
+#: lib/graphql/resolvers/user.ex:156
msgid "Registrations are not open"
msgstr "Las inscripciones no están abiertas"
-#: lib/graphql/resolvers/user.ex:407
#, elixir-format
+#: lib/graphql/resolvers/user.ex:407
msgid "The current password is invalid"
msgstr "La contraseña actual no es válida"
-#: lib/graphql/resolvers/user.ex:452
#, elixir-format
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "El nuevo correo electrónico no parece ser válido"
-#: lib/graphql/resolvers/user.ex:449
#, elixir-format
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "El nuevo correo electrónico debe ser diferente"
-#: lib/graphql/resolvers/user.ex:410
#, elixir-format
+#: lib/graphql/resolvers/user.ex:410
msgid "The new password must be different"
msgstr "La nueva contraseña debe ser diferente"
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
#, elixir-format
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "La contraseña proporcionada no es válida"
-#: lib/graphql/resolvers/user.ex:414
#, elixir-format
+#: lib/graphql/resolvers/user.ex:414
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr ""
"La contraseña que ha elegido es demasiado corta. Asegúrese de que su "
"contraseña contenga al menos 6 caracteres."
-#: lib/graphql/resolvers/user.ex:274
#, elixir-format
+#: lib/graphql/resolvers/user.ex:274
msgid "This user can't reset their password"
msgstr "Este usuario no puede restablecer su contraseña"
-#: lib/graphql/resolvers/user.ex:81
#, elixir-format
+#: lib/graphql/resolvers/user.ex:81
msgid "This user has been disabled"
msgstr "Este usuario ha sido inhabilitado"
-#: lib/graphql/resolvers/user.ex:232 lib/graphql/resolvers/user.ex:237
#, elixir-format
+#: lib/graphql/resolvers/user.ex:232 lib/graphql/resolvers/user.ex:237
msgid "Unable to validate user"
msgstr "No se puede validar al usuario"
-#: lib/graphql/resolvers/user.ex:496
#, elixir-format
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "El usuario ya está inhabilitado"
-#: lib/graphql/resolvers/user.ex:563
#, elixir-format
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "El usuario solicitado no ha iniciado sesión"
-#: lib/graphql/resolvers/group.ex:262
#, elixir-format
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Ya eres miembro de este grupo"
-#: lib/graphql/resolvers/group.ex:297
#, elixir-format
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "No puedes dejar este grupo porque eres el único administrador"
-#: lib/graphql/resolvers/group.ex:259
#, elixir-format
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "No puedes unirte a este grupo"
-#: lib/graphql/resolvers/group.ex:111
#, elixir-format
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "No puedes enumerar grupos a menos que seas moderador."
-#: lib/graphql/resolvers/user.ex:461
#, elixir-format
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Debes iniciar sesión para cambiar tu correo electrónico"
-#: lib/graphql/resolvers/user.ex:422
#, elixir-format
+#: lib/graphql/resolvers/user.ex:422
msgid "You need to be logged-in to change your password"
msgstr "Debes iniciar sesión para cambiar tu contraseña"
-#: lib/graphql/resolvers/group.ex:236
#, elixir-format
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Debes iniciar sesión para eliminar un grupo"
-#: lib/graphql/resolvers/user.ex:523
#, elixir-format
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Debes iniciar sesión para eliminar su cuenta"
-#: lib/graphql/resolvers/group.ex:267
#, elixir-format
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Debes iniciar sesión para eliminar su cuenta"
-#: lib/graphql/resolvers/group.ex:302
#, elixir-format
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Debes iniciar sesión para dejar un grupo"
-#: lib/graphql/resolvers/group.ex:200
#, elixir-format
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Debes iniciar sesión para actualizar un grupo"
-#: lib/graphql/resolvers/user.ex:112
#, elixir-format
+#: lib/graphql/resolvers/user.ex:112
msgid "You need to have an existing token to get a refresh token"
msgstr "Debes tener un token existente para obtener un token de actualización"
-#: lib/graphql/resolvers/user.ex:256 lib/graphql/resolvers/user.ex:281
#, elixir-format
+#: lib/graphql/resolvers/user.ex:256 lib/graphql/resolvers/user.ex:281
msgid "You requested again a confirmation email too soon"
msgstr ""
"Solicitó de nuevo un correo electrónico de confirmación demasiado pronto"
-#: lib/graphql/resolvers/user.ex:159
#, elixir-format
+#: lib/graphql/resolvers/user.ex:159
msgid "Your email is not on the allowlist"
msgstr "Tu correo electrónico no está en la lista de permitidos"
-#: lib/graphql/resolvers/actor.ex:100
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:100
msgid "Error while performing background task"
msgstr "Error al realizar la tarea en segundo plano"
-#: lib/graphql/resolvers/actor.ex:32
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:32
msgid "No profile found with this ID"
msgstr "No se encontró ningún perfil con este ID"
-#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:97
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:97
msgid "No remote profile found with this ID"
msgstr "No se encontró ningún perfil remoto con este ID"
-#: lib/graphql/resolvers/actor.ex:72
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:72
msgid "Only moderators and administrators can suspend a profile"
msgstr "Solo los moderadores y administradores pueden suspender un perfil"
-#: lib/graphql/resolvers/actor.ex:105
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:105
msgid "Only moderators and administrators can unsuspend a profile"
msgstr ""
"Solo los moderadores y administradores pueden anular la suspensión de un "
"perfil"
-#: lib/graphql/resolvers/actor.ex:29
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:29
msgid "Only remote profiles may be refreshed"
msgstr "Solo se pueden actualizar los perfiles remotos"
-#: lib/graphql/resolvers/actor.ex:64
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:64
msgid "Profile already suspended"
msgstr "Perfil ya suspendido"
-#: lib/graphql/resolvers/participant.ex:96
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:96
msgid "A valid email is required by your instance"
msgstr "Su instancia requiere un correo electrónico válido"
+#, elixir-format
#: lib/graphql/resolvers/participant.ex:90
#: lib/graphql/resolvers/participant.ex:143
-#, elixir-format
msgid "Anonymous participation is not enabled"
msgstr "La participación anónima no está habilitada"
-#: lib/graphql/resolvers/person.ex:210
#, elixir-format
+#: lib/graphql/resolvers/person.ex:210
msgid "Cannot remove the last administrator of a group"
msgstr "No se puede eliminar al último administrador de un grupo"
-#: lib/graphql/resolvers/person.ex:207
#, elixir-format
+#: lib/graphql/resolvers/person.ex:207
msgid "Cannot remove the last identity of a user"
msgstr "No se puede eliminar la última identidad de un usuario"
-#: lib/graphql/resolvers/comment.ex:125
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "El comentario ya está eliminado"
-#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:75
#, elixir-format
+#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:75
msgid "Discussion not found"
msgstr "Discusión no encontrada"
-#: lib/graphql/resolvers/report.ex:63 lib/graphql/resolvers/report.ex:82
#, elixir-format
+#: lib/graphql/resolvers/report.ex:63 lib/graphql/resolvers/report.ex:82
msgid "Error while saving report"
msgstr "Error al guardar el informe"
-#: lib/graphql/resolvers/report.ex:102
#, elixir-format
+#: lib/graphql/resolvers/report.ex:102
msgid "Error while updating report"
msgstr "Error al actualizar el informe"
-#: lib/graphql/resolvers/participant.ex:131
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:131
msgid "Event id not found"
msgstr "ID de evento no encontrado"
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
#, elixir-format
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Evento no encontrado"
+#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
-#, elixir-format
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "El evento con este ID%{id} no existe"
-#: lib/graphql/resolvers/participant.ex:103
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:103
msgid "Internal Error"
msgstr "Error interno"
-#: lib/graphql/resolvers/discussion.ex:225
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:225
msgid "No discussion with ID %{id}"
msgstr "Sin discusión con ID%{id}"
+#, elixir-format
#: lib/graphql/resolvers/todos.ex:80 lib/graphql/resolvers/todos.ex:107
#: lib/graphql/resolvers/todos.ex:179 lib/graphql/resolvers/todos.ex:208 lib/graphql/resolvers/todos.ex:237
-#, elixir-format
msgid "No profile found for user"
msgstr "No se encontró perfil para el usuario"
-#: lib/graphql/resolvers/feed_token.ex:64
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "No existe tal token de alimentación"
-#: lib/graphql/resolvers/participant.ex:259
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:259
msgid "Participant already has role %{role}"
msgstr "El participante ya tiene el rol%{role}"
+#, elixir-format
#: lib/graphql/resolvers/participant.ex:187
#: lib/graphql/resolvers/participant.ex:220 lib/graphql/resolvers/participant.ex:263
-#, elixir-format
msgid "Participant not found"
msgstr "Participante no encontrado"
-#: lib/graphql/resolvers/person.ex:32
#, elixir-format
+#: lib/graphql/resolvers/person.ex:32
msgid "Person with ID %{id} not found"
msgstr "Persona con ID%{id} no encontrada"
-#: lib/graphql/resolvers/person.ex:56
#, elixir-format
+#: lib/graphql/resolvers/person.ex:56
msgid "Person with username %{username} not found"
msgstr "Persona con nombre de usuario %{username} no encontrada"
-#: lib/graphql/resolvers/post.ex:169 lib/graphql/resolvers/post.ex:203
#, elixir-format
+#: lib/graphql/resolvers/post.ex:169 lib/graphql/resolvers/post.ex:203
msgid "Post ID is not a valid ID"
msgstr "La ID de publicación no es válida"
-#: lib/graphql/resolvers/post.ex:172 lib/graphql/resolvers/post.ex:206
#, elixir-format
+#: lib/graphql/resolvers/post.ex:172 lib/graphql/resolvers/post.ex:206
msgid "Post doesn't exist"
msgstr "La publicación no existe"
-#: lib/graphql/resolvers/member.ex:82
#, elixir-format
+#: lib/graphql/resolvers/member.ex:82
msgid "Profile invited doesn't exist"
msgstr "El perfil invitado no existe"
-#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
#, elixir-format
+#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
msgid "Profile is already a member of this group"
msgstr "Perfil ya es miembro de este grupo"
+#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
-#, elixir-format
msgid "Profile is not member of group"
msgstr "El perfil no es miembro del grupo"
-#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/person.ex:233
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/person.ex:233
msgid "Profile not found"
msgstr "Perfil no encontrado"
-#: lib/graphql/resolvers/report.ex:40
#, elixir-format
+#: lib/graphql/resolvers/report.ex:40
msgid "Report not found"
msgstr "Informe no encontrado"
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "El recurso no existe"
-#: lib/graphql/resolvers/participant.ex:124
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:124
msgid "The event has already reached its maximum capacity"
msgstr "El evento ya alcanzó su capacidad máxima"
-#: lib/graphql/resolvers/participant.ex:283
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Este token no es válido"
-#: lib/graphql/resolvers/todos.ex:176 lib/graphql/resolvers/todos.ex:243
#, elixir-format
+#: lib/graphql/resolvers/todos.ex:176 lib/graphql/resolvers/todos.ex:243
msgid "Todo doesn't exist"
msgstr "Todo no existe"
+#, elixir-format
#: lib/graphql/resolvers/todos.ex:77 lib/graphql/resolvers/todos.ex:211
#: lib/graphql/resolvers/todos.ex:240
-#, elixir-format
msgid "Todo list doesn't exist"
msgstr "La lista de tareas pendientes no existe"
-#: lib/graphql/resolvers/feed_token.ex:73
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "El token no existe"
-#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "El token no es un UUID válido"
-#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:415
#, elixir-format
+#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:415
msgid "User not found"
msgstr "Usuario no encontrado"
-#: lib/graphql/resolvers/person.ex:310
#, elixir-format
+#: lib/graphql/resolvers/person.ex:310
msgid "You already have a profile for this user"
msgstr "Ya tienes un perfil para este usuario"
-#: lib/graphql/resolvers/participant.ex:134
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:134
msgid "You are already a participant of this event"
msgstr "Ya eres participante de este evento"
-#: lib/graphql/resolvers/member.ex:85
#, elixir-format
+#: lib/graphql/resolvers/member.ex:85
msgid "You are not a member of this group"
msgstr "no eres un miembro de este grupo"
-#: lib/graphql/resolvers/member.ex:155
#, elixir-format
+#: lib/graphql/resolvers/member.ex:155
msgid "You are not a moderator or admin for this group"
msgstr "No eres moderador ni administrador de este grupo"
-#: lib/graphql/resolvers/comment.ex:59
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:59
msgid "You are not allowed to create a comment if not connected"
msgstr "No está permitido crear un comentario si no está conectado"
-#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "No puede crear un token de feed si no está conectado"
-#: lib/graphql/resolvers/comment.ex:133
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "No puede eliminar un comentario si no está conectado"
-#: lib/graphql/resolvers/feed_token.ex:82
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "No puede eliminar un token de feed si no está conectado"
-#: lib/graphql/resolvers/comment.ex:93
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:93
msgid "You are not allowed to update a comment if not connected"
msgstr "No se le permite actualizar un comentario si no está conectado"
+#, elixir-format
#: lib/graphql/resolvers/participant.ex:181
#: lib/graphql/resolvers/participant.ex:214
-#, elixir-format
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"No puedes abandonar el evento porque eres el único participante creador del "
"evento"
-#: lib/graphql/resolvers/member.ex:159
#, elixir-format
+#: lib/graphql/resolvers/member.ex:159
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"No puede establecerse en un rol de miembro inferior para este grupo porque "
"es el único administrador"
-#: lib/graphql/resolvers/comment.ex:121
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "No puedes borrar este comentario"
-#: lib/graphql/resolvers/event.ex:375
#, elixir-format
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "No puedes borrar este evento"
-#: lib/graphql/resolvers/member.ex:88
#, elixir-format
+#: lib/graphql/resolvers/member.ex:88
msgid "You cannot invite to this group"
msgstr "No puedes invitar a este grupo"
-#: lib/graphql/resolvers/feed_token.ex:76
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "No tienes permiso para eliminar este token"
-#: lib/graphql/resolvers/admin.ex:54
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:54
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
"Debe iniciar sesión y un moderador para enumerar los registros de acción"
-#: lib/graphql/resolvers/report.ex:28
#, elixir-format
+#: lib/graphql/resolvers/report.ex:28
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Debe iniciar sesión y un moderador para enumerar los informes"
-#: lib/graphql/resolvers/report.ex:107
#, elixir-format
+#: lib/graphql/resolvers/report.ex:107
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
-#: lib/graphql/resolvers/report.ex:45
#, elixir-format
+#: lib/graphql/resolvers/report.ex:45
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
-#: lib/graphql/resolvers/admin.ex:246
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:246
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Debe iniciar sesión y ser administrador para acceder a la configuración de "
"administrador"
-#: lib/graphql/resolvers/admin.ex:230
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:230
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Debe iniciar sesión y ser administrador para acceder a las estadísticas del "
"panel"
-#: lib/graphql/resolvers/admin.ex:272
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:272
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Debe iniciar sesión y ser administrador para acceder a las estadísticas del "
"panel"
-#: lib/graphql/resolvers/discussion.ex:90
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:90
msgid "You need to be logged-in to access discussions"
msgstr "Debe iniciar sesión para acceder a las discusiones"
-#: lib/graphql/resolvers/resource.ex:96
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:96
msgid "You need to be logged-in to access resources"
msgstr "Debes iniciar sesión para acceder a los recursos"
-#: lib/graphql/resolvers/event.ex:295
#, elixir-format
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Debes iniciar sesión para crear eventos"
-#: lib/graphql/resolvers/post.ex:141
#, elixir-format
+#: lib/graphql/resolvers/post.ex:141
msgid "You need to be logged-in to create posts"
msgstr "Debes iniciar sesión para crear publicaciones"
-#: lib/graphql/resolvers/report.ex:79
#, elixir-format
+#: lib/graphql/resolvers/report.ex:79
msgid "You need to be logged-in to create reports"
msgstr "Debe iniciar sesión para crear informes"
-#: lib/graphql/resolvers/resource.ex:136
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Debe iniciar sesión para crear recursos"
-#: lib/graphql/resolvers/event.ex:384
#, elixir-format
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Debe iniciar sesión para eliminar un evento"
-#: lib/graphql/resolvers/post.ex:214
#, elixir-format
+#: lib/graphql/resolvers/post.ex:214
msgid "You need to be logged-in to delete posts"
msgstr "Debes iniciar sesión para eliminar publicaciones"
-#: lib/graphql/resolvers/resource.ex:203
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Debes iniciar sesión para eliminar recursos"
-#: lib/graphql/resolvers/participant.ex:108
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:108
msgid "You need to be logged-in to join an event"
msgstr "Debes iniciar sesión para eliminar recursos"
-#: lib/graphql/resolvers/participant.ex:225
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:225
msgid "You need to be logged-in to leave an event"
msgstr "Debes iniciar sesión para salir de un evento"
-#: lib/graphql/resolvers/event.ex:341
#, elixir-format
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Debe iniciar sesión para actualizar un evento"
-#: lib/graphql/resolvers/post.ex:180
#, elixir-format
+#: lib/graphql/resolvers/post.ex:180
msgid "You need to be logged-in to update posts"
msgstr "Debes iniciar sesión para actualizar las publicaciones"
-#: lib/graphql/resolvers/resource.ex:173
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Debes iniciar sesión para actualizar los recursos"
-#: lib/graphql/resolvers/resource.ex:232
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Debe iniciar sesión para ver una vista previa del recurso"
-#: lib/graphql/resolvers/resource.ex:128
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "El recurso principal no pertenece a este grupo"
-#: lib/mobilizon/users/user.ex:113
#, elixir-format
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "La contraseña elegida es demasiado corta."
-#: lib/mobilizon/users/user.ex:141
#, elixir-format
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"El token de registro ya está en uso, esto parece un problema de nuestra "
"parte."
-#: lib/mobilizon/users/user.ex:108
#, elixir-format
+#: lib/mobilizon/users/user.ex:108
msgid "This email is already used."
msgstr "Este correo electrónico ya está en uso."
-#: lib/graphql/error.ex:97
#, elixir-format
+#: lib/graphql/error.ex:97
msgid "Post not found"
msgstr "Informe no encontrado"
-#: lib/graphql/error.ex:84
#, elixir-format
+#: lib/graphql/error.ex:84
msgid "Invalid arguments passed"
msgstr "Se pasaron argumentos no válidos"
-#: lib/graphql/error.ex:90
#, elixir-format
+#: lib/graphql/error.ex:90
msgid "Invalid credentials"
msgstr "Credenciales no válidas"
-#: lib/graphql/error.ex:88
#, elixir-format
+#: lib/graphql/error.ex:88
msgid "Reset your password to login"
msgstr "Restablezca su contraseña para iniciar sesión"
-#: lib/graphql/error.ex:95 lib/graphql/error.ex:100
#, elixir-format
+#: lib/graphql/error.ex:95 lib/graphql/error.ex:100
msgid "Resource not found"
msgstr "Recurso no encontrado"
-#: lib/graphql/error.ex:102
#, elixir-format
+#: lib/graphql/error.ex:102
msgid "Something went wrong"
msgstr "Algo salió mal"
-#: lib/graphql/error.ex:83
#, elixir-format
+#: lib/graphql/error.ex:83
msgid "Unknown Resource"
msgstr "Recurso desconocido"
-#: lib/graphql/error.ex:93
#, elixir-format
+#: lib/graphql/error.ex:93
msgid "You don't have permission to do this"
msgstr "No tienes permiso para hacer esto"
-#: lib/graphql/error.ex:85
#, elixir-format
+#: lib/graphql/error.ex:85
msgid "You need to be logged in"
msgstr "Debes iniciar sesión"
-#: lib/graphql/resolvers/member.ex:116
#, elixir-format
+#: lib/graphql/resolvers/member.ex:116
msgid "You can't accept this invitation with this profile."
msgstr "No puedes aceptar esta invitación con este perfil."
-#: lib/graphql/resolvers/member.ex:137
#, elixir-format
+#: lib/graphql/resolvers/member.ex:137
msgid "You can't reject this invitation with this profile."
msgstr "No puedes rechazar esta invitación con este perfil."
-#: lib/graphql/resolvers/media.ex:71
#, elixir-format
+#: lib/graphql/resolvers/media.ex:71
msgid "File doesn't have an allowed MIME type."
msgstr "El archivo no tiene un tipo MIME permitido."
-#: lib/graphql/resolvers/group.ex:195
#, elixir-format
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "El perfil no es miembro del grupo"
-#: lib/graphql/resolvers/event.ex:330
#, elixir-format
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "No puedes borrar este evento."
-#: lib/graphql/resolvers/event.ex:333
#, elixir-format
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "No puedes rechazar esta invitación con este perfil."
-#: lib/graphql/resolvers/member.ex:140
#, elixir-format
+#: lib/graphql/resolvers/member.ex:140
msgid "This invitation doesn't exist."
msgstr "Esta invitación no existe."
-#: lib/graphql/resolvers/member.ex:185
#, elixir-format
+#: lib/graphql/resolvers/member.ex:185
msgid "This member already has been rejected."
msgstr "Este miembro ya ha sido rechazado."
-#: lib/graphql/resolvers/member.ex:192
#, elixir-format
+#: lib/graphql/resolvers/member.ex:192
msgid "You don't have the right to remove this member."
msgstr "No tiene derecho a eliminar este miembro."
-#: lib/mobilizon/actors/actor.ex:349
#, elixir-format
+#: lib/mobilizon/actors/actor.ex:349
msgid "This username is already taken."
msgstr "Este nombre de usuario ya está en uso."
-#: lib/graphql/resolvers/discussion.ex:87
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:87
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
"Debe proporcionar una identificación o un slug para acceder a una discusión"
-#: lib/graphql/resolvers/event.ex:284
#, elixir-format
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "El perfil del organizador no es propiedad del usuario"
-#: lib/graphql/resolvers/participant.ex:93
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:93
msgid "Profile ID provided is not the anonymous profile one"
msgstr "El ID de perfil proporcionado no es el del perfil anónimo"
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
-#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
#, elixir-format
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
+#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "La imagen proporcionada es demasiado pesada"
-#: lib/web/views/utils.ex:34
#, elixir-format
+#: lib/web/views/utils.ex:34
msgid "Index file not found. You need to recompile the front-end."
msgstr "No se encontró el archivo de índice. Necesita recompilar el front-end."
-#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Error al crear el recurso"
-#: lib/graphql/resolvers/user.ex:479
#, elixir-format
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "Token de activación no válido"
-#: lib/graphql/resolvers/resource.ex:222
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "No se pueden recuperar los detalles del recurso de esta URL."
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
#, elixir-format
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "El perfil de moderador proporcionado no tiene permiso para este evento"
-#: lib/graphql/resolvers/event.ex:278
#, elixir-format
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
"El perfil del organizador no tiene permiso para crear un evento en nombre de "
"este grupo"
-#: lib/graphql/resolvers/event.ex:321
#, elixir-format
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
"Este perfil no tiene permiso para actualizar un evento en nombre de este "
"grupo"
-#: lib/graphql/resolvers/user.ex:163
#, elixir-format
+#: lib/graphql/resolvers/user.ex:163
msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
msgstr ""
"A su correo electrónico se le ha denegado el registro o utiliza un proveedor "
"de correo electrónico no autorizado"
-#: lib/graphql/resolvers/comment.ex:128
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Evento no encontrado"
-#: lib/graphql/resolvers/discussion.ex:129
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:129
msgid "Error while creating a discussion"
msgstr "Error al crear el recurso"
-#: lib/graphql/resolvers/user.ex:602
#, elixir-format
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Error al actualizar el informe"
-#: lib/graphql/resolvers/person.ex:307
#, elixir-format
+#: lib/graphql/resolvers/person.ex:307
msgid "Error while uploading pictures"
msgstr "Error al actualizar el informe"
-#: lib/graphql/resolvers/participant.ex:190
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:190
msgid "Failed to leave the event"
msgstr "No se pudo salir del evento"
-#: lib/graphql/resolvers/group.ex:191
#, elixir-format
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr "No se pudo actualizar el grupo"
-#: lib/graphql/resolvers/user.ex:456
#, elixir-format
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr "No se pudo actualizar el correo electrónico del usuario"
-#: lib/graphql/resolvers/user.ex:475
#, elixir-format
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "No se puede validar al usuario"
-#: lib/graphql/resolvers/participant.ex:146
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:146
msgid "The anonymous actor ID is invalid"
msgstr "El ID de actor anónimo no es válido"
-#: lib/graphql/resolvers/resource.ex:161
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr "Error desconocido al actualizar el recurso"
-#: lib/graphql/resolvers/comment.ex:84
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:84
msgid "You are not the comment creator"
msgstr "No eres el creador de comentarios"
-#: lib/graphql/resolvers/user.ex:404
#, elixir-format
+#: lib/graphql/resolvers/user.ex:404
msgid "You cannot change your password."
msgstr "No puede cambiar su contraseña."
-#: lib/graphql/resolvers/participant.ex:310
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr "Formato incompatible"
-#: lib/graphql/resolvers/participant.ex:322
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr "Una dependencia necesaria para exportar a %{formato} no está instalada"
-#: lib/graphql/resolvers/participant.ex:330
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr "Ocurrió un error al guardar la exportación"
-#: lib/web/controllers/export_controller.ex:30
#, elixir-format
+#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
"La exportación al formato %{format} no está habilitada en esta instancia"
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr "Error desconocido al actualizar el recurso"
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/fi/LC_MESSAGES/default.po b/priv/gettext/fi/LC_MESSAGES/default.po
index 6acc8bcd..de7d59f9 100644
--- a/priv/gettext/fi/LC_MESSAGES/default.po
+++ b/priv/gettext/fi/LC_MESSAGES/default.po
@@ -350,12 +350,12 @@ msgid "What information do we collect?"
msgstr "Mitä tietoja kerätään?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon palvelimella %{instance}: vahvista sähköpostiosoitteesi"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon palvelimella %{instance}: sähköpostiosoite vaihdettu"
@@ -413,7 +413,7 @@ msgid "View the event on: %{link}"
msgstr "Katso päivitetty tapahtuma: %{linkki}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} kutsui sinut ryhmään %{group}"
@@ -1244,7 +1244,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Näkemiin ja kiitos kaloista!"
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Sinut on poistettu ryhmästä %{group}"
@@ -1299,7 +1299,7 @@ msgstr ""
"(%{group_address}). Et ole enää tämän ryhmän jäsen."
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Ryhmä %{group} on estetty palvelimella %{instance}"
@@ -1644,17 +1644,17 @@ msgid "%{name}'s feed"
msgstr "%{name} – syöte"
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "%{actor} – yksityistapahtumien syöte palvelimella %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "%{actor} – julkisten tapahtumien syöte palvelimella %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "%{email}-syöte palvelimella %{instance}"
@@ -1681,7 +1681,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Mobilizon-palvelin näyttää olevan väliakaisesti alhaalla."
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr "Palvelimen %{instance} julkinen syöte"
diff --git a/priv/gettext/fi/LC_MESSAGES/errors.po b/priv/gettext/fi/LC_MESSAGES/errors.po
index a09000d7..2c84196a 100644
--- a/priv/gettext/fi/LC_MESSAGES/errors.po
+++ b/priv/gettext/fi/LC_MESSAGES/errors.po
@@ -100,28 +100,28 @@ msgid "Cannot refresh the token"
msgstr "Merkkiä ei voi päivittää"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Nykyinen profiili ei kuulu tähän ryhmään"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Nykyinen profiili ei ole valitun ryhmän ylläpitäjä"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Käyttäjän asetusten tallennuksessa tapahtui virhe"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Ryhmää ei löydy"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Tunnuksella %{id} ei löydy ryhmää"
@@ -132,7 +132,7 @@ msgstr ""
"Kirjautuminen epäonnistui - joko sähköpostiosoitteesi tai salasana on väärin."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Jäsentä ei löydy"
@@ -169,12 +169,12 @@ msgid "The current password is invalid"
msgstr "Nykyinen salasana ei kelpaa"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "Uusi sähköpostiosoite ei vaikuta kelvolliselta"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "Uuden sähköpostiosoitteen on poikettava vanhasta"
@@ -184,8 +184,8 @@ msgid "The new password must be different"
msgstr "Uuden salasanan on poikettava vanhasta"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "Annettu salasana on epäkelpo"
@@ -212,37 +212,37 @@ msgid "Unable to validate user"
msgstr "Käyttäjää ei voi vahvistaa"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "Käyttäjä on jo poistettu käytöstä"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "Pyydetty käyttäjä ei ole kirjautuneena sisään"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Olet jo tämän ryhmän jäsen"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "Et voi poistua ryhmästä, koska olet sen ainoa ylläpitäjä"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Et voi liittyä tähän ryhmään"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Voit nähdä ryhmäluettelon vain, jos olet moderaattori."
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Sähköpostiosoitteen voi vaihtaa vain sisäänkirjautuneena"
@@ -252,27 +252,27 @@ msgid "You need to be logged-in to change your password"
msgstr "Salasanan voi vaihtaa vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Ryhmän voi poistaa vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Voit poistaa tilisi vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Voit liittyä ryhmään vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Voit poistua ryhmästä vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Voit päivittää ryhmää vain sisäänkirjautuneena"
@@ -348,7 +348,7 @@ msgid "Cannot remove the last identity of a user"
msgstr "Käyttäjän viimeistä identiteettiä ei voi poistaa"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Kommentti on jo poistettu"
@@ -373,15 +373,15 @@ msgid "Event id not found"
msgstr "Tapahtumatunnistetta ei löydy"
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Tapahtumaa ei löydy"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "Tunnisteella %{id} ei ole tapahtumaa"
@@ -449,8 +449,8 @@ msgstr "Profiili on jo ryhmän jäsen"
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -467,7 +467,7 @@ msgid "Report not found"
msgstr "Raporttia ei löydy"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "Resurssia ei ole"
@@ -477,7 +477,7 @@ msgid "The event has already reached its maximum capacity"
msgstr "Tapahtuma on jo täynnä"
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Epäkelpo merkki"
@@ -538,7 +538,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr "Ilman yhteyttä ei voi luoda syötemerkkiä"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Ilman yhteyttä ei voi poistaa kommenttia"
@@ -567,12 +567,12 @@ msgstr ""
"ylläpitäjä"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Et voi poistaa kommenttia"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Et voi poistaa tapahtumaa"
@@ -632,7 +632,7 @@ msgid "You need to be logged-in to access resources"
msgstr "Pääsy resursseihin vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Tapahtumien luonti vain sisäänkirjautuneena"
@@ -647,12 +647,12 @@ msgid "You need to be logged-in to create reports"
msgstr "Raporttien luonti vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Resurssien luonti vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Tapahtuman poisto vain sisäänkirjautuneena"
@@ -662,7 +662,7 @@ msgid "You need to be logged-in to delete posts"
msgstr "Julkaisujen poisto vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Resurssien poisto vain sisäänkirjautuneena"
@@ -677,7 +677,7 @@ msgid "You need to be logged-in to leave an event"
msgstr "Tapahtumasta poistuminen vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Tapahtuman päivittäminen vain sisäänkirjautuneena"
@@ -687,27 +687,27 @@ msgid "You need to be logged-in to update posts"
msgstr "Julkaisujen päivittäminen vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Resurssien päivittäminen vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Resurssin esikatselu vain sisäänkirjautuneena"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "Ylätason resurssi ei kuulu tähän ryhmään"
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "Valittu salasana on liian lyhyt."
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr "Rekisteröintimerkki on jo käytössä. Vaikuttaa palvelinpään virheeltä."
@@ -777,17 +777,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr "Tiedostolla ei ole sallittua MIME-tyyppiä."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "Profiili ei ole ryhmän ylläpitäjä"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Et voi muokata tapahtumaa."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Et voi yhdistää tapahtumaa tähän profiiliin."
@@ -817,7 +817,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr "Keskusteluun pääsemiseen vaaditaan tunniste tai polkutunnus"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "Järjestäjän profiili ei ole käyttäjän hallussa"
@@ -827,7 +827,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr "Annettu profiilitunniste ei kuulu anonyymille profiilille"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "Toimitettu kuva on liian suuri"
@@ -838,33 +838,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr "Indeksitiedostoa ei löydy. Kokoa käyttöliittymä uudelleen."
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Virhe raporttia tallennettaessa"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "Virheellinen aktivointimerkki"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "Resurssin tietoja ei voida hakea tästä URL-osoitteesta."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Annetulla moderaattoriprofiililla ei ole oikeuksia tähän tapahtumaan"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -874,7 +874,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Tapahtumaa ei löydy"
@@ -884,7 +884,7 @@ msgid "Error while creating a discussion"
msgstr "Virhe raporttia tallennettaessa"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Virhe raporttia päivitettäessä"
@@ -899,17 +899,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Käyttäjää ei voi vahvistaa"
@@ -919,7 +919,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -934,17 +934,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -952,3 +952,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/fr/LC_MESSAGES/default.po b/priv/gettext/fr/LC_MESSAGES/default.po
index 583e3417..9eaa7190 100644
--- a/priv/gettext/fr/LC_MESSAGES/default.po
+++ b/priv/gettext/fr/LC_MESSAGES/default.po
@@ -325,12 +325,12 @@ msgid "What information do we collect?"
msgstr "Quelles informations collectons-nous ?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon sur %{instance} : confirmez votre adresse email"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon sur %{instance} : adresse email modifiée"
@@ -388,7 +388,7 @@ msgid "View the event on: %{link}"
msgstr "Voir l'événement mis à jour sur : %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "Vous avez été invité par %{inviter} à rejoindre le groupe %{group}"
@@ -1061,7 +1061,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Salut, et encore merci pour le poisson !"
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Vous avez été enlevé du groupe %{group}"
@@ -1104,7 +1104,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr "L'équipe de modération de votre instance a décidé de suspendre %{group_name} (%{group_address}). Vous n'êtes désormais plus membre de ce groupe."
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Le groupe %{group} a été suspendu sur %{instance}"
@@ -1366,17 +1366,17 @@ msgid "%{name}'s feed"
msgstr "Flux de %{name}"
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "Flux privé des événements de %{actor} sur %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "Flux public des événements de %{actor} sur %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "Flux pour %{email} sur %{instance}"
@@ -1401,7 +1401,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Le serveur Mobilizon %{instance} semble être temporairement hors-service."
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr "Flux public pour %{instance}"
diff --git a/priv/gettext/fr/LC_MESSAGES/errors.po b/priv/gettext/fr/LC_MESSAGES/errors.po
index 80ea8f02..af13885f 100644
--- a/priv/gettext/fr/LC_MESSAGES/errors.po
+++ b/priv/gettext/fr/LC_MESSAGES/errors.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2021-10-04 11:40+0200\n"
+"PO-Revision-Date: 2021-10-11 17:40+0200\n"
"Last-Translator: Vincent Finance
\n"
"Language-Team: French \n"
"Language: fr\n"
@@ -100,24 +100,24 @@ msgstr "doit être égal à %{number}"
msgid "Cannot refresh the token"
msgstr "Impossible de rafraîchir le jeton"
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Le profil actuel n'est pas un membre de ce groupe"
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Le profil actuel n'est pas un·e administrateur·ice du groupe sélectionné"
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Erreur lors de la sauvegarde des paramètres utilisateur"
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224 lib/graphql/resolvers/group.ex:256
-#: lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242 lib/graphql/resolvers/group.ex:274
+#: lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Groupe non trouvé"
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Groupe avec l'ID %{id} non trouvé"
@@ -125,7 +125,7 @@ msgstr "Groupe avec l'ID %{id} non trouvé"
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Impossible de s'authentifier, votre adresse e-mail ou bien votre mot de passe sont invalides."
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Membre non trouvé"
@@ -155,11 +155,11 @@ msgstr "Les inscriptions ne sont pas ouvertes"
msgid "The current password is invalid"
msgstr "Le mot de passe actuel est invalid"
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "La nouvelle adresse e-mail ne semble pas être valide"
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "La nouvelle adresse e-mail doit être différente"
@@ -167,7 +167,7 @@ msgstr "La nouvelle adresse e-mail doit être différente"
msgid "The new password must be different"
msgstr "Le nouveau mot de passe doit être différent"
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515 lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519 lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "Le mot de passe fourni est invalide"
@@ -189,31 +189,31 @@ msgstr "Cet·te utilisateur·ice a été désactivé·e"
msgid "Unable to validate user"
msgstr "Impossible de valider l'utilisateur·ice"
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "L'utilisateur·ice est déjà désactivé·e"
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "L'utilisateur·ice demandé·e n'est pas connecté·e"
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Vous êtes déjà membre de ce groupe"
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "Vous ne pouvez pas quitter ce groupe car vous en êtes le ou la seul·e administrateur·ice"
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Vous ne pouvez pas rejoindre ce groupe"
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Vous ne pouvez pas lister les groupes sauf à être modérateur·ice."
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Vous devez être connecté·e pour changer votre adresse e-mail"
@@ -221,23 +221,23 @@ msgstr "Vous devez être connecté·e pour changer votre adresse e-mail"
msgid "You need to be logged-in to change your password"
msgstr "Vous devez être connecté·e pour changer votre mot de passe"
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Vous devez être connecté·e pour supprimer votre compte"
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Vous devez être connecté·e pour rejoindre un groupe"
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Vous devez être connecté·e pour quitter un groupe"
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
@@ -297,7 +297,7 @@ msgstr "Impossible de supprimer le ou la dernier·ère administrateur·ice d'un
msgid "Cannot remove the last identity of a user"
msgstr "Impossible de supprimer le dernier profil d'un·e utilisateur·ice"
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Le commentaire est déjà supprimé"
@@ -317,12 +317,12 @@ msgstr "Erreur lors de la mise à jour du signalement"
msgid "Event id not found"
msgstr "ID de l'événement non trouvé"
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327 lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355 lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Événement non trouvé"
#: lib/graphql/resolvers/participant.ex:87 lib/graphql/resolvers/participant.ex:128
-#: lib/graphql/resolvers/participant.ex:155 lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:155 lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "L'événement avec cet ID %{id} n'existe pas"
@@ -377,8 +377,8 @@ msgid "Profile is already a member of this group"
msgstr "Ce profil est déjà membre de ce groupe"
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175 lib/graphql/resolvers/post.ex:209
-#: lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131 lib/graphql/resolvers/resource.ex:164
-#: lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58 lib/graphql/resolvers/todos.ex:83
+#: lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132 lib/graphql/resolvers/resource.ex:165
+#: lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58 lib/graphql/resolvers/todos.ex:83
#: lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182 lib/graphql/resolvers/todos.ex:214
#: lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -392,7 +392,7 @@ msgstr "Profile non trouvé"
msgid "Report not found"
msgstr "Groupe non trouvé"
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "La ressource n'existe pas"
@@ -400,7 +400,7 @@ msgstr "La ressource n'existe pas"
msgid "The event has already reached its maximum capacity"
msgstr "L'événement a déjà atteint sa capacité maximale"
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Ce jeton est invalide"
@@ -448,7 +448,7 @@ msgstr "Vous n'êtes pas autorisé·e à créer un commentaire si non connecté
msgid "You are not allowed to create a feed token if not connected"
msgstr "Vous n'êtes pas autorisé·e à créer un jeton de flux si non connecté·e"
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Vous n'êtes pas autorisé·e à supprimer un commentaire si non connecté·e"
@@ -470,11 +470,11 @@ msgstr ""
"Vous ne pouvez pas vous définir avec un rôle de membre inférieur pour ce groupe car vous en êtes le ou la seul·e "
"administrateur·ice"
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Vous ne pouvez pas supprimer ce commentaire"
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Vous ne pouvez pas supprimer cet événement"
@@ -522,7 +522,7 @@ msgstr "Vous devez être connecté·e pour accéder aux discussions"
msgid "You need to be logged-in to access resources"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Vous devez être connecté·e pour créer des événements"
@@ -534,11 +534,11 @@ msgstr "Vous devez être connecté·e pour quitter un groupe"
msgid "You need to be logged-in to create reports"
msgstr "Vous devez être connecté·e pour quitter un groupe"
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Vous devez être connecté·e pour quitter un groupe"
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
@@ -546,7 +546,7 @@ msgstr "Vous devez être connecté·e pour supprimer un groupe"
msgid "You need to be logged-in to delete posts"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
@@ -558,7 +558,7 @@ msgstr "Vous devez être connecté·e pour rejoindre un événement"
msgid "You need to be logged-in to leave an event"
msgstr "Vous devez être connecté·e pour quitter un groupe"
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
@@ -566,23 +566,23 @@ msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
msgid "You need to be logged-in to update posts"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "La ressource parente n'appartient pas à ce groupe"
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "Le mot de passe choisi est trop court."
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr "Le jeton d'inscription est déjà utilisé, cela ressemble à un problème de notre côté."
@@ -638,15 +638,15 @@ msgstr "Vous ne pouvez pas rejeter cette invitation avec ce profil."
msgid "File doesn't have an allowed MIME type."
msgstr "Le fichier n'a pas un type MIME autorisé."
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "Le profil n'est pas administrateur·ice pour le groupe"
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Vous ne pouvez pas éditer cet événement."
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Vous ne pouvez pas attribuer cet événement à ce profil."
@@ -670,7 +670,7 @@ msgstr "Cet identifiant est déjà pris."
msgid "You must provide either an ID or a slug to access a discussion"
msgstr "Vous devez fournir un ID ou bien un slug pour accéder à une discussion"
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "Le profil de l'organisateur·ice n'appartient pas à l'utilisateur·ice"
@@ -678,7 +678,7 @@ msgstr "Le profil de l'organisateur·ice n'appartient pas à l'utilisateur·ice"
msgid "Profile ID provided is not the anonymous profile one"
msgstr "L'ID du profil fourni n'est pas celui du profil anonyme"
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183 lib/graphql/resolvers/person.ex:148
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201 lib/graphql/resolvers/person.ex:148
#: lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "L'image fournie est trop lourde"
@@ -687,27 +687,27 @@ msgstr "L'image fournie est trop lourde"
msgid "Index file not found. You need to recompile the front-end."
msgstr "Fichier d'index non trouvé. Vous devez recompiler le front-end."
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Erreur lors de la création de la resource"
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "Jeton d'activation invalide"
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "Impossible de récupérer les détails de la ressource depuis cette URL."
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253 lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253 lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Le profil modérateur fourni n'a pas de permissions sur cet événement"
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr "Le profil de l'organisateur⋅ice n'a pas la permission de créer un événement au nom de ce groupe"
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr "Ce profil n'a pas la permission de mettre à jour un événement au nom du groupe"
@@ -715,7 +715,7 @@ msgstr "Ce profil n'a pas la permission de mettre à jour un événement au nom
msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
msgstr "Votre adresse e-mail a été refusée à l'inscription ou bien utilise un fournisseur d'e-mail interdit"
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Commentaire non trouvé"
@@ -723,7 +723,7 @@ msgstr "Commentaire non trouvé"
msgid "Error while creating a discussion"
msgstr "Erreur lors de la création de la discussion"
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Erreur lors de la mise à jour des options linguistiques"
@@ -735,15 +735,15 @@ msgstr "Erreur lors du téléversement des images"
msgid "Failed to leave the event"
msgstr "Impossible de quitter l'événement"
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr "Impossible de mettre à jour le groupe"
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr "Impossible de mettre à jour l'adresse e-mail de utilisateur"
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Impossible de valider l'adresse e-mail de l'utilisateur·ice"
@@ -751,7 +751,7 @@ msgstr "Impossible de valider l'adresse e-mail de l'utilisateur·ice"
msgid "The anonymous actor ID is invalid"
msgstr "L'ID de l'acteur anonyme est invalide"
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr "Erreur inconnue lors de la mise à jour de la resource"
@@ -763,18 +763,34 @@ msgstr "Vous n'êtes pas le ou la createur⋅ice du commentaire"
msgid "You cannot change your password."
msgstr "Vous ne pouvez pas changer votre mot de passe."
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr "Format non supporté"
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr "Une dépendance nécessaire pour exporter en %{format} n'est pas installée"
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr "Une erreur est survenue lors de l'enregistrement de l'export"
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr "L'export au format %{format} n'est pas activé sur cette instance"
+
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr "Seul⋅es les administrateur⋅ices peuvent créer des groupes"
+
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr "Seuls les groupes peuvent créer des événements"
+
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr "Erreur inconnue lors de la création de l'événement"
+
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr "L'utilisateur ne peut changer son adresse e-mail"
diff --git a/priv/gettext/gl/LC_MESSAGES/default.po b/priv/gettext/gl/LC_MESSAGES/default.po
index 0de381d4..30b68e11 100644
--- a/priv/gettext/gl/LC_MESSAGES/default.po
+++ b/priv/gettext/gl/LC_MESSAGES/default.po
@@ -352,12 +352,12 @@ msgid "What information do we collect?"
msgstr "Que información recollemos?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon en %{instance}: confirma o enderezo de email"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon en %{instance}: email cambiado"
@@ -415,7 +415,7 @@ msgid "View the event on: %{link}"
msgstr "Ver o evento en: %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} convidoute a unirte ó grupo %{group}"
@@ -1242,7 +1242,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Ata aquí, e grazas pola atención!"
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Foches eliminada do grupo %{group}"
@@ -1297,7 +1297,7 @@ msgstr ""
"(%{group_address}). Xa non pertences a este grupo."
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "O grupo %{group} foi suspendido en %{instance}"
@@ -1639,17 +1639,17 @@ msgid "%{name}'s feed"
msgstr "fonte de %{name}"
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "fonte dos eventos privados de %{actor} en %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "fonte dos eventos públicos de %{actor} en %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "Fonte para %{email} en %{instance}"
@@ -1677,7 +1677,7 @@ msgstr ""
"O servidor Mobilizon %{instance} semella estar temporalmente fóra de servizo."
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr "Fonte pública de %{instance}"
diff --git a/priv/gettext/gl/LC_MESSAGES/errors.po b/priv/gettext/gl/LC_MESSAGES/errors.po
index 42bce0e1..b86ed9bf 100644
--- a/priv/gettext/gl/LC_MESSAGES/errors.po
+++ b/priv/gettext/gl/LC_MESSAGES/errors.po
@@ -100,28 +100,28 @@ msgid "Cannot refresh the token"
msgstr "Non puido actualizar o token"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "O perfil actual non é membro deste grupo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "O perfil actual non é administrador do grupo seleccionado"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Erro ó gardar os axustes de usuaria"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Grupo non atopado"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Grupo con ID %{id} non atopado"
@@ -132,7 +132,7 @@ msgstr ""
"A autenticación non foi posible, o contrasinal ou o email non son correctos."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Membro non atopado"
@@ -169,12 +169,12 @@ msgid "The current password is invalid"
msgstr "O contrasinal actual non é válido"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "O novo email non semella ser válido"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "O novo email ten que ser diferente"
@@ -184,8 +184,8 @@ msgid "The new password must be different"
msgstr "O novo contrasinal ten que ser diferente"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "O contrasinal escrito non é válido"
@@ -212,37 +212,37 @@ msgid "Unable to validate user"
msgstr "Non se puido validar a usuaria"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "A usuaria xa está desactivada"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "A usuaria solicitada non está conectada"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Xa es membro deste grupo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "Non podes deixar este grupo porque es a única administradora"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Non podes unirte a este grupo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Non podes facer listas de grupos porque non es moderadora."
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Tes que estar conectada para poder cambiar o email"
@@ -252,27 +252,27 @@ msgid "You need to be logged-in to change your password"
msgstr "Tes que estar conectada para poder cambiar o contrasinal"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Tes que estar conectada para poder eleminar un grupo"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Tes que estar conectada para poder eliminar a conta"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Tes que estar conectada para poder unirte a un grupo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Tes que estar conectada para poder deixar un grupo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Tes que estar conectada para poder actualizar un grupo"
@@ -348,7 +348,7 @@ msgid "Cannot remove the last identity of a user"
msgstr "Non se pode eliminar a última identidade dunha usuaria"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "O comentario xa foi eliminado"
@@ -373,15 +373,15 @@ msgid "Event id not found"
msgstr "Non se atopou o ID do evento"
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Evento non atopado"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "Non existe un evento co ID %{id}"
@@ -449,8 +449,8 @@ msgstr "O perfil xa é membro deste grupo"
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -467,7 +467,7 @@ msgid "Report not found"
msgstr "Denuncia non atopada"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "Non existe o recurso"
@@ -477,7 +477,7 @@ msgid "The event has already reached its maximum capacity"
msgstr "Este evento xa acadou a súa capacidade máxima"
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Este token non é válido"
@@ -538,7 +538,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr "Non tes permiso para crear un token da fonte se non estás conectada"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Non tes permiso para eliminar un comentario se non estás conectada"
@@ -567,12 +567,12 @@ msgstr ""
"administradora"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Non podes eliminar este comentario"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Non podes eliminar este evento"
@@ -640,7 +640,7 @@ msgid "You need to be logged-in to access resources"
msgstr "Tes que estar conectada para acceder ós recursos"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Tes que estar conectada para crear eventos"
@@ -655,12 +655,12 @@ msgid "You need to be logged-in to create reports"
msgstr "Tes que estar conectada para crear denuncias"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Tes que estar conectada para crear recursos"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Tes que estar conectada para eliminar un evento"
@@ -670,7 +670,7 @@ msgid "You need to be logged-in to delete posts"
msgstr "Tes que estar conectada para eliminar publicacións"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Tes que estar conectada para eliminar recursos"
@@ -685,7 +685,7 @@ msgid "You need to be logged-in to leave an event"
msgstr "Tes que estar conectada para saír dun evento"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Tes que estar conectada para actualizar un evento"
@@ -695,27 +695,27 @@ msgid "You need to be logged-in to update posts"
msgstr "Tes que estar conectada para actualizar publicacións"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Tes que estar conectada para actualizar recursos"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Tes que estar conectada para ver vista previa dun recurso"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "O recurso relacionado non pertence a este grupo"
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "O contrasinal elexido é demasiado curto."
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"O token de rexistro xa está a ser usado, semella un problema pola nosa parte."
@@ -786,17 +786,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr "O ficheiro non ten un tipo MIME permitido."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "O perfil non é administrador do grupo"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Non podes editar este evento."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Non podes atribuír este evento a este perfil."
@@ -826,7 +826,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr "Debes proporcionar ou ben un ID ou nome para acceder á conversa"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "O perfil da organización non pertence á usuaria"
@@ -836,7 +836,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr "O ID do perfil proporcionado non é o perfil anónimo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "A imaxe proporcionada é demasiado grande (mb)"
@@ -847,35 +847,35 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr "Non se atopa o ficheiro Index. Tes que recompilar o front-end."
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Erro ao crear o recurso"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "O token de activación non é válido"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "Non se puideron obter os detalles do recurso desde o URL."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "O perfil da moderadora proporcionado non ten permisos neste evento"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
"O perfil do organizador non ten permiso para crear un evento en nome deste "
"grupo"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
"Este perfil non ten permiso para actualizar un evento en nome deste grupo"
@@ -888,7 +888,7 @@ msgstr ""
"non permitido"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Evento non atopado"
@@ -898,7 +898,7 @@ msgid "Error while creating a discussion"
msgstr "Erro ao crear o recurso"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Erro ó actualizar a denuncia"
@@ -913,17 +913,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Non se puido validar a usuaria"
@@ -933,7 +933,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -948,17 +948,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -966,3 +966,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/hu/LC_MESSAGES/default.po b/priv/gettext/hu/LC_MESSAGES/default.po
index 0b7d49b0..5be9b17a 100644
--- a/priv/gettext/hu/LC_MESSAGES/default.po
+++ b/priv/gettext/hu/LC_MESSAGES/default.po
@@ -358,12 +358,12 @@ msgid "What information do we collect?"
msgstr "Milyen információkat gyűjtünk?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon itt: %{instance}: erősítse meg az e-mail-címét"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon itt: %{instance}: e-mail-cím megváltozott"
@@ -421,7 +421,7 @@ msgid "View the event on: %{link}"
msgstr "Esemény megtekintése itt: %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} meghívta, hogy csatlakozzon a(z) %{group} csoporthoz"
@@ -1098,7 +1098,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1141,7 +1141,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1401,17 +1401,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1436,7 +1436,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/hu/LC_MESSAGES/errors.po b/priv/gettext/hu/LC_MESSAGES/errors.po
index b5125312..2ee8fe08 100644
--- a/priv/gettext/hu/LC_MESSAGES/errors.po
+++ b/priv/gettext/hu/LC_MESSAGES/errors.po
@@ -116,28 +116,28 @@ msgid "Cannot refresh the token"
msgstr "Nem lehet frissíteni a tokent"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "A jelenlegi profil nem tagja ennek a csoportnak"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "A jelenlegi profil nem adminisztrátora a kijelölt csoportnak"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Hiba a felhasználói beállítások mentésekor"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Nem található a csoport"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Nem található %{id} azonosítóval rendelkező csoport"
@@ -147,7 +147,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Lehetetlen hitelesíteni, vagy az e-mail, vagy a jelszó érvénytelen."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Nem található a tag"
@@ -184,12 +184,12 @@ msgid "The current password is invalid"
msgstr "A jelenlegi jelszó érvénytelen"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "Az új e-mail-cím nem tűnik érvényesnek"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "Az új e-mail-címnek eltérőnek kell lennie"
@@ -199,8 +199,8 @@ msgid "The new password must be different"
msgstr "Az új jelszónak eltérőnek kell lennie"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "A megadott jelszó érvénytelen"
@@ -227,37 +227,37 @@ msgid "Unable to validate user"
msgstr "Nem lehet ellenőrizni a felhasználót"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "A felhasználó már le van tiltva"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "A kért felhasználó nincs bejelentkezve"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Már tagja ennek a csoportnak"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "Nem hagyhatja el ezt a csoportot, mert Ön az egyedüli adminisztrátor"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Nem csatlakozhat ehhez a csoporthoz"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Lehet, hogy nem sorolhatja fel a csoportokat, hacsak nem moderátor."
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Bejelentkezve kell lennie az e-mail-címe megváltoztatásához"
@@ -267,27 +267,27 @@ msgid "You need to be logged-in to change your password"
msgstr "Bejelentkezve kell lennie a jelszava megváltoztatásához"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Bejelentkezve kell lennie egy csoport törléséhez"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Bejelentkezve kell lennie a fiókja törléséhez"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Bejelentkezve kell lennie egy csoporthoz való csatlakozáshoz"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Bejelentkezve kell lennie egy csoportból való kilépéshez"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Bejelentkezve kell lennie egy csoport frissítéséhez"
@@ -365,7 +365,7 @@ msgid "Cannot remove the last identity of a user"
msgstr "Nem lehet eltávolítani egy felhasználó utolsó személyazonosságát"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "A hozzászólást már törölték"
@@ -390,15 +390,15 @@ msgid "Event id not found"
msgstr "Nem található az eseményazonosító"
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Nem található az esemény"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "Ezzel a(z) %{id} azonosítóval rendelkező esemény nem létezik"
@@ -466,8 +466,8 @@ msgstr "A profil már tagja ennek a csoportnak"
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -484,7 +484,7 @@ msgid "Report not found"
msgstr "Nem található a jelentés"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "Az erőforrás nem létezik"
@@ -494,7 +494,7 @@ msgid "The event has already reached its maximum capacity"
msgstr "Az esemény már elérte a legnagyobb kapacitását"
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Ez a token érvénytelen"
@@ -555,7 +555,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr "Nem hozhat létre hírforrástokent, ha nincs kapcsolódva"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Nem törölhet hozzászólást, ha nincs kapcsolódva"
@@ -584,12 +584,12 @@ msgstr ""
"egyedüli adminisztrátor"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Nem tudja törölni ezt a hozzászólást"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Nem tudja törölni ezt az eseményt"
@@ -663,7 +663,7 @@ msgid "You need to be logged-in to access resources"
msgstr "Bejelentkezve kell lennie az erőforrásokhoz való hozzáféréshez"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Bejelentkezve kell lennie az események létrehozásához"
@@ -678,12 +678,12 @@ msgid "You need to be logged-in to create reports"
msgstr "Bejelentkezve kell lennie a jelentések létrehozásához"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Bejelentkezve kell lennie az erőforrások létrehozásához"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Bejelentkezve kell lennie egy esemény törléséhez"
@@ -693,7 +693,7 @@ msgid "You need to be logged-in to delete posts"
msgstr "Bejelentkezve kell lennie a hozzászólások törléséhez"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Bejelentkezve kell lennie az erőforrások törléséhez"
@@ -708,7 +708,7 @@ msgid "You need to be logged-in to leave an event"
msgstr "Bejelentkezve kell lennie egy esemény elhagyásához"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Bejelentkezve kell lennie egy esemény frissítéséhez"
@@ -718,27 +718,27 @@ msgid "You need to be logged-in to update posts"
msgstr "Bejelentkezve kell lennie a hozzászólások frissítéséhez"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Bejelentkezve kell lennie az erőforrások frissítéséhez"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Bejelentkezve kell lennie egy erőforrás előnézetének megtekintéséhez"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "A szülőerőforrás nem tartozik ehhez a csoporthoz"
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "A választott jelszó túl rövid."
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"A regisztrációs token már használatban van. Ez hibának tűnik a mi oldalunkon."
@@ -809,17 +809,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr "A fájl nem rendelkezik engedélyezett MIME-típussal."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "A profil nem adminisztrátor ennél a csoportnál"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Nem tudja szerkeszteni ezt az eseményt."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Nem tudja ezt az eseményt ennek a profilnak tulajdonítani."
@@ -851,7 +851,7 @@ msgstr ""
"megbeszéléshez való hozzáféréshez"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "A szervező profilját nem a felhasználó birtokolja"
@@ -861,7 +861,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr "A megadott profilazonosító nem a névtelen profil"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "A megadott fénykép túl nehéz"
@@ -872,33 +872,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr "Indexfájl nem található. Újra kell fordítania az előtétprogramot."
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Hiba az erőforrás létrehozáskor"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "Érvénytelen aktiválási token"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "Nem lehet lekérni az erőforrás részleteit erről az URL-ről."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "A megadott moderátorprofilnak nincs jogosultsága ezen az eseményen"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -908,7 +908,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Nem található az esemény"
@@ -918,7 +918,7 @@ msgid "Error while creating a discussion"
msgstr "Hiba az erőforrás létrehozáskor"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Hiba a jelentés frissítésekor"
@@ -933,17 +933,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Nem lehet ellenőrizni a felhasználót"
@@ -953,7 +953,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -968,17 +968,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -986,3 +986,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/id/LC_MESSAGES/default.po b/priv/gettext/id/LC_MESSAGES/default.po
index fdae767b..03f6055f 100644
--- a/priv/gettext/id/LC_MESSAGES/default.po
+++ b/priv/gettext/id/LC_MESSAGES/default.po
@@ -329,12 +329,12 @@ msgid "What information do we collect?"
msgstr "Informasi apa yang kami kumpulkan?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon pada %{instance}: konfirmasi alamat surel Anda"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon pada %{instance}: surel diubah"
@@ -390,7 +390,7 @@ msgid "View the event on: %{link}"
msgstr "Lihat acara di: %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
"Anda telah diundang oleh %{inviter} untuk bergabung ke kelompok %{group}"
@@ -1081,7 +1081,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Sampai jumpa, dan terima kasih atas ikannya!"
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Anda telah dikeluarkan dari kelompok %{group}"
@@ -1124,7 +1124,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1384,17 +1384,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1419,7 +1419,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/id/LC_MESSAGES/errors.po b/priv/gettext/id/LC_MESSAGES/errors.po
index fe6ff38a..cbcf9c02 100644
--- a/priv/gettext/id/LC_MESSAGES/errors.po
+++ b/priv/gettext/id/LC_MESSAGES/errors.po
@@ -94,28 +94,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Kelompok tidak ditemukan"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Kelompok dengan ID %{id} tidak ditemukan"
@@ -125,7 +125,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -162,12 +162,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -177,8 +177,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -203,37 +203,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -243,27 +243,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -339,7 +339,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -364,15 +364,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -440,8 +440,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -458,7 +458,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -468,7 +468,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -529,7 +529,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -555,12 +555,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -620,7 +620,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -635,12 +635,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -650,7 +650,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -665,7 +665,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -675,27 +675,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -765,17 +765,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -805,7 +805,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -815,7 +815,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -826,33 +826,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -862,7 +862,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -872,7 +872,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -887,17 +887,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -907,7 +907,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -922,17 +922,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -940,3 +940,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/it/LC_MESSAGES/default.po b/priv/gettext/it/LC_MESSAGES/default.po
index efc38167..9524ae7d 100644
--- a/priv/gettext/it/LC_MESSAGES/default.po
+++ b/priv/gettext/it/LC_MESSAGES/default.po
@@ -353,12 +353,12 @@ msgid "What information do we collect?"
msgstr "Quali informazioni raccogliamo?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon su %{instance}: conferma il tuo indirizzo email"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon su %{instance}: email modificata"
@@ -416,7 +416,7 @@ msgid "View the event on: %{link}"
msgstr "Visualizza l'evento su: %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "Sei stato invitato da %{inviter} per partecipare al gruppo %{group}"
@@ -1273,7 +1273,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Addio, e grazie per il pesce!"
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Sei stato rimosso dal gruppo %{group}"
@@ -1328,7 +1328,7 @@ msgstr ""
"%{group_name} (%{group_address}). Non sei più un membro di questo gruppo."
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Il gruppo %{group} è stato sospeso su %{instance}"
@@ -1684,17 +1684,17 @@ msgid "%{name}'s feed"
msgstr "Flusso di %{name}"
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "Flusso privato degli eventi di %{actor} su %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "Flusso pubblico degli eventi di %{actor} su %{instance}"
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "Flusso per %{email} su %{instance}"
@@ -1722,7 +1722,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Il server Mobilizon sembra essere temporaneamente inattivo."
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr "Feed pubblico per %{instance}"
diff --git a/priv/gettext/it/LC_MESSAGES/errors.po b/priv/gettext/it/LC_MESSAGES/errors.po
index 50c0bc86..5bbdcf3b 100644
--- a/priv/gettext/it/LC_MESSAGES/errors.po
+++ b/priv/gettext/it/LC_MESSAGES/errors.po
@@ -100,28 +100,28 @@ msgid "Cannot refresh the token"
msgstr "Il token non può essere aggiornato"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Il profilo corrente non è membro di questo gruppo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Il profilo corrente non è amministratore del gruppo selezionato"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Errore nel salvare le preferenze utente"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Gruppo non trovato"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Gruppo con ID %{id} non trovato"
@@ -131,7 +131,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Impossibile autenticarsi: email e/o password non validi."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Membro non trovato"
@@ -168,12 +168,12 @@ msgid "The current password is invalid"
msgstr "la password corrente non è valida"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "La nuova email sembra non valida"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "La nuova email dev'essere diversa"
@@ -183,8 +183,8 @@ msgid "The new password must be different"
msgstr "La nuova password deve essere diversa"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "La password assegnata non è valida"
@@ -209,37 +209,37 @@ msgid "Unable to validate user"
msgstr "Impossibile convalidare l'utente"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "Utente già disabilitato"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "L'utente richiesto non è loggato"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Sei già un membro di questo gruppo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "Non puoi lasciare questo gruppo perchè sei l'unico amministratore"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Non puoi unirti a questo gruppo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Non è possibile elencare i gruppi a meno che non sia un moderatore."
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "È necessario effettuare il login per modificare la tua email"
@@ -249,27 +249,27 @@ msgid "You need to be logged-in to change your password"
msgstr "È necessario effettuare il login per modificare la tua password"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "È necessario effettuare il login per eliminare un gruppo"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "È necessario effettuare il login per eliminare il tuo account"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "È necessario effettuare il login per entrare a far parte di un gruppo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "È necessario effettuare il login per lasciare un gruppo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "È necessario effettuare il login per aggiornare un gruppo"
@@ -347,7 +347,7 @@ msgid "Cannot remove the last identity of a user"
msgstr "Impossibile rimuovere l'ultima identità di un utente"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Commento già cancellato"
@@ -372,15 +372,15 @@ msgid "Event id not found"
msgstr "ID evento non trovato"
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Evento non trovato"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "L'evento con questo ID %{id} non esiste"
@@ -448,8 +448,8 @@ msgstr "Il profilo è già un membro diquesto gruppo"
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -466,7 +466,7 @@ msgid "Report not found"
msgstr "Segnalazione non trovata"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "La risorsa non esiste"
@@ -476,7 +476,7 @@ msgid "The event has already reached its maximum capacity"
msgstr "L'evento ha già raggiunto la sua massima capacità"
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Questo token non è valido"
@@ -537,7 +537,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr "Non puoi creare un token di rifornimento senza connessione"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Non è consentito eliminare un commento se non si è collegati"
@@ -566,12 +566,12 @@ msgstr ""
"gruppo perché sei l'unico amministratore"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Non puoi eliminare questo commento"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Non puoi eliminare questo evento"
@@ -637,7 +637,7 @@ msgid "You need to be logged-in to access resources"
msgstr "Devi essere connesso per accedere alle risorse"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Devi essere connesso per creare eventi"
@@ -652,12 +652,12 @@ msgid "You need to be logged-in to create reports"
msgstr "Devi essere connesso per creare rapporti"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Devi essere connesso per creare risorse"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Devi essere connesso per eliminare un evento"
@@ -667,7 +667,7 @@ msgid "You need to be logged-in to delete posts"
msgstr "Devi essere connesso per eliminare dei post"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Devi essere connesso per eliminare risorse"
@@ -682,7 +682,7 @@ msgid "You need to be logged-in to leave an event"
msgstr "Devi essere connesso per lasciare un evento"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Devi essere connesso per aggiornare un evento"
@@ -692,27 +692,27 @@ msgid "You need to be logged-in to update posts"
msgstr "Devi essere connesso per aggiornare dei post"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Devi essere connesso per aggiornare le risorse"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Devi essere connesso per visualizzare l'anteprima di una risorsa"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "La risorsa principale non appartiene a questo gruppo"
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "La password scelta è troppo corta."
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"Il token di registrazione è già in uso, questo sembra un problema dalla "
@@ -784,17 +784,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr "Il file non ha un tipo MIME consentito."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "Il profilo non è amministratore del gruppo"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Non puoi modificare questo evento."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Non puo iattribuire questo evento a questo profilo."
@@ -826,7 +826,7 @@ msgstr ""
"per accedere ad una discussione"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "Il profilo dell'organizzatore non è di proprietà dell'utente"
@@ -836,7 +836,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr "L'ID profilo fornito non è quello del profilo anonimo"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "L'immagine inserita è troppo pesante"
@@ -847,35 +847,35 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr "Il file di indice non è stato trovato. Devi ricompilare il front-end."
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Errore durante la creazione della risorsa"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "Token di attivazione non valido"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "Impossibile recuperare i dettagli della risorsa da questa URL."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
"Il profilo del moderatore fornito non dispone dell'autorizzazione per questo "
"evento"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -885,7 +885,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Evento non trovato"
@@ -895,7 +895,7 @@ msgid "Error while creating a discussion"
msgstr "Errore durante la creazione della risorsa"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Errore durante l'aggiornamento del rapporto"
@@ -910,17 +910,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Impossibile convalidare l'utente"
@@ -930,7 +930,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -945,17 +945,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -963,3 +963,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/ja/LC_MESSAGES/default.po b/priv/gettext/ja/LC_MESSAGES/default.po
index f9e4a4a8..b4ebd5fd 100644
--- a/priv/gettext/ja/LC_MESSAGES/default.po
+++ b/priv/gettext/ja/LC_MESSAGES/default.po
@@ -312,12 +312,12 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
@@ -373,7 +373,7 @@ msgid "View the event on: %{link}"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1041,7 +1041,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1084,7 +1084,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1344,17 +1344,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1379,7 +1379,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/ja/LC_MESSAGES/errors.po b/priv/gettext/ja/LC_MESSAGES/errors.po
index 51fd9096..b9cf02a3 100644
--- a/priv/gettext/ja/LC_MESSAGES/errors.po
+++ b/priv/gettext/ja/LC_MESSAGES/errors.po
@@ -87,28 +87,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -118,7 +118,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -155,12 +155,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -170,8 +170,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -196,37 +196,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -236,27 +236,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -332,7 +332,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -357,15 +357,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -433,8 +433,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -451,7 +451,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -461,7 +461,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -522,7 +522,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -548,12 +548,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -613,7 +613,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -628,12 +628,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -643,7 +643,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -658,7 +658,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -668,27 +668,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -758,17 +758,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -798,7 +798,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -808,7 +808,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -819,33 +819,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -855,7 +855,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -865,7 +865,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -880,17 +880,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -900,7 +900,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -915,17 +915,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -933,3 +933,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/nl/LC_MESSAGES/default.po b/priv/gettext/nl/LC_MESSAGES/default.po
index 35951e47..2990323e 100644
--- a/priv/gettext/nl/LC_MESSAGES/default.po
+++ b/priv/gettext/nl/LC_MESSAGES/default.po
@@ -321,12 +321,12 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
@@ -384,7 +384,7 @@ msgid "View the event on: %{link}"
msgstr "Bekijk het bijgewerkte evenement op: %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1065,7 +1065,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1108,7 +1108,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1369,17 +1369,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1404,7 +1404,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/nl/LC_MESSAGES/errors.po b/priv/gettext/nl/LC_MESSAGES/errors.po
index 1c7158da..1dbb070c 100644
--- a/priv/gettext/nl/LC_MESSAGES/errors.po
+++ b/priv/gettext/nl/LC_MESSAGES/errors.po
@@ -93,28 +93,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -124,7 +124,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -161,12 +161,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -176,8 +176,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -202,37 +202,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -242,27 +242,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -338,7 +338,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -363,15 +363,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -439,8 +439,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -457,7 +457,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -467,7 +467,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -528,7 +528,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -554,12 +554,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -619,7 +619,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -634,12 +634,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -649,7 +649,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -664,7 +664,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -674,27 +674,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -764,17 +764,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -804,7 +804,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -814,7 +814,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -825,33 +825,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -861,7 +861,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -871,7 +871,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -886,17 +886,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -906,7 +906,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -921,17 +921,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -939,3 +939,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/nn/LC_MESSAGES/default.po b/priv/gettext/nn/LC_MESSAGES/default.po
index 190545c9..f952f8e0 100644
--- a/priv/gettext/nn/LC_MESSAGES/default.po
+++ b/priv/gettext/nn/LC_MESSAGES/default.po
@@ -14,262 +14,262 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.6.2\n"
-#: lib/web/templates/email/password_reset.html.heex:48
#, elixir-format
+#: lib/web/templates/email/password_reset.html.heex:48
msgid "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one."
msgstr ""
"Viss du ikkje ba om dette, kan du sjå bort frå denne eposten. Passordet blir "
"ikkje endra før du klikkar på lenka under og lagar eit nytt."
-#: lib/web/templates/email/report.html.heex:74
#, elixir-format
+#: lib/web/templates/email/report.html.heex:74
msgid "%{title} by %{creator}"
msgstr "%{title} av %{creator}"
-#: lib/web/templates/email/registration_confirmation.html.heex:58
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.html.heex:58
msgid "Activate my account"
msgstr "Ta i bruk kontoen min"
+#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.text.eex:9
-#, elixir-format
msgid "Ask the community on Framacolibri"
msgstr "Spør brukarsamfunnet på Framacolibri"
-#: lib/web/templates/email/report.text.eex:15
#, elixir-format
+#: lib/web/templates/email/report.text.eex:15
msgid "Comments"
msgstr "Kommentarar"
+#, elixir-format
#: lib/web/templates/email/report.html.heex:72
#: lib/web/templates/email/report.text.eex:11
-#, elixir-format
msgid "Event"
msgstr "Hending"
-#: lib/web/email/user.ex:48
#, elixir-format
+#: lib/web/email/user.ex:48
msgid "Instructions to reset your password on %{instance}"
msgstr "Framgangsmåte for å nullstilla passordet på %{instance}"
-#: lib/web/templates/email/report.text.eex:21
#, elixir-format
+#: lib/web/templates/email/report.text.eex:21
msgid "Reason"
msgstr "Grunn"
-#: lib/web/templates/email/password_reset.html.heex:61
#, elixir-format
+#: lib/web/templates/email/password_reset.html.heex:61
msgid "Reset Password"
msgstr "Nullstill passord"
-#: lib/web/templates/email/password_reset.html.heex:41
#, elixir-format
+#: lib/web/templates/email/password_reset.html.heex:41
msgid "Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time."
msgstr ""
"Det er lett å nullstilla passordet. Berre trykk på knappen under og fylg "
"framgangsmåten. Dette ordnar me på ei lita stund."
-#: lib/web/email/user.ex:28
#, elixir-format
+#: lib/web/email/user.ex:28
msgid "Instructions to confirm your Mobilizon account on %{instance}"
msgstr "Framgangsmåte for å stadfesta Mobilizon-kontoen din på %{instance}"
-#: lib/web/email/admin.ex:24
#, elixir-format
+#: lib/web/email/admin.ex:24
msgid "New report on Mobilizon instance %{instance}"
msgstr "Ny rapport på Mobilizon-nettstaden %{instance}"
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:51
#: lib/web/templates/email/before_event_notification.text.eex:4
-#, elixir-format
msgid "Go to event page"
msgstr "Gå til hendingssida"
-#: lib/web/templates/email/report.text.eex:1
#, elixir-format
+#: lib/web/templates/email/report.text.eex:1
msgid "New report from %{reporter} on %{instance}"
msgstr "Ny rapport frå %{reporter} på %{instance}"
-#: lib/web/templates/email/event_participation_approved.text.eex:1
#, elixir-format
+#: lib/web/templates/email/event_participation_approved.text.eex:1
msgid "Participation approved"
msgstr "Deltakinga er godkjend"
+#, elixir-format
#: lib/web/templates/email/password_reset.html.heex:13
#: lib/web/templates/email/password_reset.text.eex:1
-#, elixir-format
msgid "Password reset"
msgstr "Nullstill passord"
-#: lib/web/templates/email/password_reset.text.eex:7
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:7
msgid "Resetting your password is easy. Just click the link below and follow the instructions. We'll have you up and running in no time."
msgstr ""
"Det er lett å nullstilla passordet. Berre klikk på lenka under og fylg "
"framgangsmåten. Dette ordnar me på ei lita stund."
-#: lib/web/templates/email/registration_confirmation.text.eex:5
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.text.eex:5
msgid "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email."
msgstr ""
"Du har oppretta ein konto på %{host} med denne epostadressa. Du er eitt "
"klikk unna å aktivera kontoen. Viss du ikkje oppretta nokon konto, kan du "
"berre oversjå denne eposten."
-#: lib/web/email/participation.ex:108
#, elixir-format
+#: lib/web/email/participation.ex:108
msgid "Your participation to event %{title} has been approved"
msgstr "Deltakinga di på hendinga %{title} er godkjent"
-#: lib/web/email/participation.ex:68
#, elixir-format
+#: lib/web/email/participation.ex:68
msgid "Your participation to event %{title} has been rejected"
msgstr "Deltakinga di på hendinga %{title} er avslegen"
-#: lib/web/email/event.ex:36
#, elixir-format
+#: lib/web/email/event.ex:36
msgid "Event %{title} has been updated"
msgstr "Hendinga %{title} er oppdatert"
-#: lib/web/templates/email/event_updated.text.eex:15
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:15
msgid "New title: %{title}"
msgstr "Ny tittel: %{title}"
-#: lib/web/templates/email/password_reset.text.eex:5
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:5
msgid "You requested a new password for your account on %{instance}."
msgstr "Du ba om eit nytt passord for brukarkontoen din på %{instance}."
-#: lib/web/templates/email/email.html.heex:86
#, elixir-format
+#: lib/web/templates/email/email.html.heex:86
msgid "Warning"
msgstr "Åtvaring"
-#: lib/web/email/participation.ex:131
#, elixir-format
+#: lib/web/email/participation.ex:131
msgid "Confirm your participation to event %{title}"
msgstr "Stadfest at du vil delta på hendinga %{title}"
-#: lib/web/templates/api/privacy.html.heex:75
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:75
msgctxt "terms"
msgid "An internal ID for your current selected identity"
msgstr "Ein intern ID for den identiteten du har valt"
-#: lib/web/templates/api/privacy.html.heex:74
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:74
msgctxt "terms"
msgid "An internal user ID"
msgstr "Ein intern brukar-ID"
-#: lib/web/templates/api/privacy.html.heex:37
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:37
msgctxt "terms"
msgid "Any of the information we collect from you may be used in the following ways:"
msgstr "Informasjonen me samlar frå deg, kan bli brukt på desse måtane:"
-#: lib/web/templates/api/privacy.html.heex:9
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:9
msgctxt "terms"
msgid "Basic account information"
msgstr "Grunnleggjande kontoinformasjon"
-#: lib/web/templates/api/privacy.html.heex:25
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:25
msgctxt "terms"
msgid "Do not share any dangerous information over Mobilizon."
msgstr "Ikkje del farleg stoff på Mobilizon."
-#: lib/web/templates/api/privacy.html.heex:90
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:90
msgctxt "terms"
msgid "Do we disclose any information to outside parties?"
msgstr "Sender me informasjon om deg til utanforståande?"
-#: lib/web/templates/api/privacy.html.heex:68
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:68
msgctxt "terms"
msgid "Do we use cookies?"
msgstr "Bruker me infokapslar?"
-#: lib/web/templates/api/privacy.html.heex:51
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:51
msgctxt "terms"
msgid "How do we protect your information?"
msgstr "Korleis vernar me opplysingane dine?"
-#: lib/web/templates/api/privacy.html.heex:29
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:29
msgctxt "terms"
msgid "IPs and other metadata"
msgstr "IP-adresser og andre metadata"
-#: lib/web/templates/api/privacy.html.heex:17
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:17
msgctxt "terms"
msgid "Published events and comments"
msgstr "Offentlege hendingar og kommentarar"
-#: lib/web/templates/api/privacy.html.heex:64
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:64
msgctxt "terms"
msgid "Retain the IP addresses associated with registered users no more than 12 months."
msgstr "Ikkje lagra IP-adressene for registrerte brukarar lenger enn eitt år."
-#: lib/web/templates/api/privacy.html.heex:76
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:76
msgctxt "terms"
msgid "Tokens to authenticate you"
msgstr "Identifiseringsteikn"
-#: lib/web/templates/api/privacy.html.heex:31
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:31
msgctxt "terms"
msgid "We also may retain server logs which include the IP address of every request to our server."
msgstr ""
"Me kan òg lagra tenarloggar som inneheld IP-adressene for alle førespurnader "
"til tenaren vår."
-#: lib/web/templates/api/privacy.html.heex:70
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:70
msgctxt "terms"
msgid "We store the following information on your device when you connect:"
msgstr "Me lagrar desse opplysingane på eininga di når du koplar til:"
-#: lib/web/templates/api/privacy.html.heex:58
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:58
msgctxt "terms"
msgid "We will make a good faith effort to:"
msgstr "Me gjer vårt beste for å:"
-#: lib/web/templates/api/privacy.html.heex:35
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:35
msgctxt "terms"
msgid "What do we use your information for?"
msgstr "Kva bruker me opplysingane dine til?"
-#: lib/web/templates/api/privacy.html.heex:57
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:57
msgctxt "terms"
msgid "What is our data retention policy?"
msgstr "Kva retningsliner for datalagring har me?"
-#: lib/web/templates/api/privacy.html.heex:67
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:67
msgctxt "terms"
msgid "You may irreversibly delete your account at any time."
msgstr "Du kan når som helst sletta kontoen din for alltid."
-#: lib/web/templates/api/privacy.html.heex:115
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:115
msgctxt "terms"
msgid "Changes to our Privacy Policy"
msgstr "Endringar i personvernretningslinene våre"
-#: lib/web/templates/api/privacy.html.heex:106
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:106
msgctxt "terms"
msgid "If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site."
msgstr ""
@@ -279,8 +279,8 @@ msgstr ""
"Personvernforordningen\">General Data Protection Regulation) at du ikkje "
"bruker nettstaden."
-#: lib/web/templates/api/privacy.html.heex:109
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:109
msgctxt "terms"
msgid "If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site."
msgstr ""
@@ -290,30 +290,30 @@ msgstr ""
"27s_Online_Privacy_Protection_Act\">Children's Online Privacy Protection "
"Act) at du ikkje bruker nettstaden."
-#: lib/web/templates/api/privacy.html.heex:117
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:117
msgctxt "terms"
msgid "If we decide to change our privacy policy, we will post those changes on this page."
msgstr ""
"Viss me endrar personvernretningslinene seinare, vil me leggja ut endringane "
"på denne sida."
-#: lib/web/templates/api/privacy.html.heex:112
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:112
msgctxt "terms"
msgid "Law requirements can be different if this server is in another jurisdiction."
msgstr ""
"Lovkrava kan vera annleis om denne tenaren er innanfor ein annan "
"jurisdiksjon."
-#: lib/web/templates/api/privacy.html.heex:103
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:103
msgctxt "terms"
msgid "Site usage by children"
msgstr "Born på denne nettstaden"
-#: lib/web/templates/api/privacy.html.heex:47
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:47
msgctxt "terms"
msgid "The email address you provide may be used to send you information, updates and notifications about other people\n interacting with your content or sending you messages and to respond to inquiries, and/or other requests or\n questions."
msgstr ""
@@ -321,8 +321,8 @@ msgstr ""
"varslingar om korleis andre\n"
" reagerer på innhaldet ditt, eller sender deg meldingar, spørsmål og svar."
-#: lib/web/templates/api/privacy.html.heex:45
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:45
msgctxt "terms"
msgid "To aid moderation of the community, for example comparing your IP address with other known ones to determine ban\n evasion or other violations."
msgstr ""
@@ -330,8 +330,8 @@ msgstr ""
"adressa di med andre kjente adresser slik\n"
" at me kan finna ut om adressa er utestengt, eller andre brot på reglane."
-#: lib/web/templates/api/privacy.html.heex:43
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:43
msgctxt "terms"
msgid "To provide the core functionality of Mobilizon. Depending on this instance's policy you may only be able to\n interact with other people's content and post your own content if you are logged in."
msgstr ""
@@ -340,89 +340,89 @@ msgstr ""
" berre samhandla med innhald og innlegg frå andre samt leggja ut eige "
"innhald når du er logga inn."
-#: lib/web/templates/api/privacy.html.heex:6
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:6
msgctxt "terms"
msgid "What information do we collect?"
msgstr "Kva opplysingar samlar me?"
-#: lib/web/email/user.ex:177
#, elixir-format
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon på %{instance}: stadfest epostadressa di"
-#: lib/web/email/user.ex:154
#, elixir-format
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon på %{instance}: epostadressa er endra"
-#: lib/web/email/notification.ex:49
#, elixir-format
+#: lib/web/email/notification.ex:49
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Ei planlagd hending i dag"
msgstr[1] "%{nb_events} planlagde hendingar i dag"
+#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
-#, elixir-format
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Du har ei hending i dag:"
msgstr[1] "Du har %{total} hendingar i dag:"
-#: lib/web/templates/email/group_invite.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_invite.text.eex:3
msgid "%{inviter} just invited you to join their group %{group}"
msgstr "%{inviter} har nett invitert deg til gruppa %{group}"
+#, elixir-format
#: lib/web/templates/email/group_invite.html.heex:13
#: lib/web/templates/email/group_invite.text.eex:1
-#, elixir-format
msgid "Come along!"
msgstr "Bli med!"
-#: lib/web/email/notification.ex:24
#, elixir-format
+#: lib/web/email/notification.ex:24
msgid "Don't forget to go to %{title}"
msgstr "Ikkje gløym å koma på %{title}"
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:38
#: lib/web/templates/email/before_event_notification.text.eex:3
-#, elixir-format
msgid "Get ready for %{title}"
msgstr "Gjer deg klar til %{title}"
-#: lib/web/templates/email/group_invite.html.heex:59
#, elixir-format
+#: lib/web/templates/email/group_invite.html.heex:59
msgid "See my groups"
msgstr "Sjå på gruppene mine"
+#, elixir-format
#: lib/web/templates/email/group_invite.html.heex:45
#: lib/web/templates/email/group_invite.text.eex:5
-#, elixir-format
msgid "To accept this invitation, head over to your groups."
msgstr "Gå til gruppene dine for å takka ja til denne invitasjonen."
-#: lib/web/templates/email/before_event_notification.text.eex:5
#, elixir-format
+#: lib/web/templates/email/before_event_notification.text.eex:5
msgid "View the event on: %{link}"
msgstr "Sjå hendinga på: %{link}"
-#: lib/web/email/group.ex:33
#, elixir-format
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} har invitert deg til å bli med i gruppa %{group}"
-#: lib/web/email/notification.ex:75
#, elixir-format
+#: lib/web/email/notification.ex:75
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "Ei planlagd hending denne veka"
msgstr[1] "%{nb_events} planlagde hendingar denne veka"
-#: lib/web/email/notification.ex:98
#, elixir-format
+#: lib/web/email/notification.ex:98
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Du har ein førespurnad om å delta på %{title} å handtera"
@@ -430,21 +430,21 @@ msgstr[1] ""
"%{number_participation_requests} førespurnader om å delta på %{title} å "
"handtera"
+#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:38
#: lib/web/templates/email/notification_each_week.text.eex:3
-#, elixir-format
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "Du har ei hending denne veka:"
msgstr[1] "Du har %{total} hendingar denne veka:"
-#: lib/service/metadata/utils.ex:53
#, elixir-format
+#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "Tilskiparen skreiv inga skildring."
-#: lib/web/templates/api/privacy.html.heex:54
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:54
msgctxt "terms"
msgid "We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL/TLS, and your password is hashed using a strong one-way algorithm."
msgstr ""
@@ -453,8 +453,8 @@ msgstr ""
"er både nettlesarøkta di og trafikken sikra med SSL/TLS, og passordet ditt "
"blir nykjelkryptert med ein sterk einvegsalgoritme."
-#: lib/web/templates/api/privacy.html.heex:94
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:94
msgctxt "terms"
msgid "No. We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety."
msgstr ""
@@ -465,20 +465,20 @@ msgstr ""
"halda lova, oppfylla våre eigne vilkår, eller verna våre eigne og andre sine "
"rettar, eigedom og tryggleik."
-#: lib/web/templates/api/terms.html.heex:23
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:23
msgctxt "terms"
msgid "Accepting these Terms"
msgstr "Å godta vilkåra"
-#: lib/web/templates/api/terms.html.heex:27
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:27
msgctxt "terms"
msgid "Changes to these Terms"
msgstr "Endringar i vilkåra"
-#: lib/web/templates/api/terms.html.heex:85
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:85
msgctxt "terms"
msgid "A lot of the content on the Service is from you and others, and we don't review, verify or authenticate it, and it may include inaccuracies or false information. We make no representations, warranties, or guarantees relating to the quality, suitability, truth, accuracy or completeness of any content contained in the Service. You acknowledge sole responsibility for and assume all risk arising from your use of or reliance on any content."
msgstr ""
@@ -490,38 +490,38 @@ msgstr ""
"ansvar når det gjeld å bruka eller lita på ein kvar del av innhaldet på "
"nettstaden."
-#: lib/web/templates/api/terms.html.heex:60
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:60
msgctxt "terms"
msgid "Also, you agree that you will not do any of the following in connection with the Service or other users:"
msgstr ""
"Du godtek òg at du ikkje vil gjera noko av dette når du bruker tenesta eller "
"har med andre brukarar å gjera:"
-#: lib/web/templates/api/terms.html.heex:65
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:65
msgctxt "terms"
msgid "Circumvent or attempt to circumvent any filtering, security measures, rate limits or other features designed to protect the Service, users of the Service, or third parties."
msgstr ""
"Gå rundt eller prøva å gå rundt filter, tryggleiksmekanismar, avgrensingar "
"eller andre måtar å verna tenesta, brukarane eller tredjepartar."
-#: lib/web/templates/api/terms.html.heex:64
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:64
msgctxt "terms"
msgid "Collect any personal information about other users, or intimidate, threaten, stalk or otherwise harass other users of the Service;"
msgstr ""
"Samla personopplysingar om andre brukarar, eller plaga, truga, forfylgja "
"eller uroa andre som bruker tenesta;"
-#: lib/web/templates/api/terms.html.heex:55
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:55
msgctxt "terms"
msgid "Content that is illegal or unlawful, that would otherwise create liability;"
msgstr "Innhald som er ulovleg eller som vil føra med seg straffeansvar;"
-#: lib/web/templates/api/terms.html.heex:56
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:56
msgctxt "terms"
msgid "Content that may infringe or violate any patent, trademark, trade secret, copyright, right of privacy, right of publicity or other intellectual or other right of any party;"
msgstr ""
@@ -529,48 +529,48 @@ msgstr ""
"opphavsrett, privatlivsrett, publiseringsrett eller andre intellektuelle og "
"andre rettar til alle partar;"
-#: lib/web/templates/api/terms.html.heex:42
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:42
msgctxt "terms"
msgid "Creating Accounts"
msgstr "Oppretta kontoar"
-#: lib/web/templates/api/terms.html.heex:89
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:89
msgctxt "terms"
msgid "Entire Agreement"
msgstr "Heile avtala"
-#: lib/web/templates/api/terms.html.heex:92
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:92
msgctxt "terms"
msgid "Feedback"
msgstr "Tilbakemeldingar"
-#: lib/web/templates/api/terms.html.heex:83
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:83
msgctxt "terms"
msgid "Hyperlinks and Third Party Content"
msgstr "Lenker og tredjepartsinnhald"
-#: lib/web/templates/api/terms.html.heex:88
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:88
msgctxt "terms"
msgid "If you breach any of these Terms, we have the right to suspend or disable your access to or use of the Service."
msgstr ""
"Viss du bryt med desse vilkåra, har me rett til å sperra brukarkontoen din "
"eller kasta deg ut frå tenesta."
-#: lib/web/templates/api/terms.html.heex:63
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:63
msgctxt "terms"
msgid "Impersonate or post on behalf of any person or entity or otherwise misrepresent your affiliation with a person or entity;"
msgstr ""
"Gje seg ut for å vera nokon andre, eller leggja ut innhald på deira vegner, "
"eller elles misbruka tilknytinga di til ein person eller ei eining;"
-#: lib/web/templates/api/terms.html.heex:48
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:48
msgctxt "terms"
msgid "Our Service allows you and other users to post, link and otherwise make available content. You are responsible for the content that you make available to the Service, including its legality, reliability, and appropriateness."
msgstr ""
@@ -579,26 +579,26 @@ msgstr ""
"denne tenesta. Det tyder òg at du er ansvarleg for om innhaldet er lovleg, "
"til å lita på, og høver for dei som ser det."
-#: lib/web/templates/api/terms.html.heex:39
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:39
msgctxt "terms"
msgid "Privacy Policy"
msgstr "Personvernretningsliner"
-#: lib/web/templates/api/terms.html.heex:95
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:95
msgctxt "terms"
msgid "Questions & Contact Information"
msgstr "Spørsmål & kontakt"
-#: lib/web/templates/api/terms.html.heex:87
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:87
msgctxt "terms"
msgid "Termination"
msgstr "Opphøyr"
-#: lib/web/templates/api/terms.html.heex:62
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:62
msgctxt "terms"
msgid "Use the Service in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying the Service or that could damage, disable, overburden or impair the functioning of the Service;"
msgstr ""
@@ -606,14 +606,14 @@ msgstr ""
"eller hindra andre i å bruka tenesta; eller som kan skada, setja ut av "
"drift, overlasta eller hindra funksjonane på tenesta;"
-#: lib/web/templates/api/terms.html.heex:47
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:47
msgctxt "terms"
msgid "Your Content & Conduct"
msgstr "Innhaldet og åtferda di"
-#: lib/web/templates/api/terms.html.heex:84
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:84
msgctxt "terms"
msgid "%{instance_name} makes no claim or representation regarding, and accepts no responsibility for third party websites accessible by hyperlink from the Service or websites linking to the Service. When you leave the Service, you should be aware that these Terms and our policies no longer govern. The inclusion of any link does not imply endorsement by %{instance_name} of the site. Use of any such linked website is at the user's own risk."
msgstr ""
@@ -624,8 +624,8 @@ msgstr ""
"tyder ikkje det at me går gode for innhaldet der. Du bruker alle lenker på "
"eigen risiko."
-#: lib/web/templates/api/terms.html.heex:68
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:68
msgctxt "terms"
msgid "Finally, your use of the Service is also subject to acceptance of the instance's own specific rules regarding the code of conduct and moderation rules. Breaking those rules may also result in your account being disabled or suspended."
msgstr ""
@@ -633,16 +633,16 @@ msgstr ""
"om åtferd og styring når du bruker nettstaden vår. Dersom du bryt reglane, "
"kan det føra til at du blir utestengt eller at brukarkontoen din blir sperra."
-#: lib/web/templates/api/terms.html.heex:81
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:81
msgctxt "terms"
msgid "For full details about the Mobilizon software see here."
msgstr ""
"Les meir om Mobilizon-programvara her."
-#: lib/web/templates/api/terms.html.heex:18
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:18
msgctxt "terms"
msgid "Here are the important things you need to know about accessing and using the %{instance_name} (%{instance_url}) website and service (collectively, \"Service\"). These are our terms of service (\"Terms\"). Please read them carefully."
msgstr ""
@@ -650,8 +650,8 @@ msgstr ""
"href=\"https://%{instance_url}\">%{instance_url})-nettstaden og "
"tenestene der (framover \"tenesta\"). her er vikåra, som me bed deg lesa."
-#: lib/web/templates/api/terms.html.heex:33
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:33
msgctxt "terms"
msgid "If we make major changes, we will notify our users in a clear and prominent manner. Minor changes may only be highlighted in the footer of our website. It is your responsibility to check the website regularly for changes to these Terms."
msgstr ""
@@ -660,8 +660,8 @@ msgstr ""
"på nettsida vår. Viss du er interessert i endringane i vilkåra, må du fylgja "
"med på nettsida."
-#: lib/web/templates/api/terms.html.heex:53
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:53
msgctxt "terms"
msgid "In order to make %{instance_name} a great place for all of us, please do not post, link and otherwise make available on or through the Service any of the following:"
msgstr ""
@@ -669,16 +669,16 @@ msgstr ""
"ved å ikkje leggja ut, lenka eller visa til noko av det fylgjande når du "
"bruker nettstaden:"
-#: lib/web/templates/api/terms.html.heex:57
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:57
msgctxt "terms"
msgid "Private information of any third party (e.g., addresses, phone numbers, email addresses, Social Security numbers and credit card numbers); and"
msgstr ""
"Privatopplysingar til tredjepartar (td. adresser, telefonnummer, "
"epostadresser, personnummer og kredittkortnummer); og"
-#: lib/web/templates/api/terms.html.heex:52
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:52
msgctxt "terms"
msgid "Since Mobilizon is a distributed network, it is possible, depending on the visibility rules set to your content, that your content has been distributed to other Mobilizon instances. When you delete your content, we will request those other instances to also delete the content. Our responsibility on the content being deleted from those other instances ends here. If for some reason, some other instance does not delete the content, we cannot be held responsible."
msgstr ""
@@ -689,8 +689,8 @@ msgstr ""
"innhaldet ditt på andre nettstader. Me er ikkje ansvarlege viss andre "
"nettstader av ein eller annan grunn ikkje slettar innhaldet ditt."
-#: lib/web/templates/api/terms.html.heex:90
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:90
msgctxt "terms"
msgid "These Terms constitute the entire agreement between you and %{instance_name} regarding the use of the Service, superseding any prior agreements between you and %{instance_name} relating to your use of the Service."
msgstr ""
@@ -698,8 +698,8 @@ msgstr ""
"å bruka tenesta, og avløyser alle tidlegare avtaler mellom deg og "
"%{instance_name} om det same."
-#: lib/web/templates/api/terms.html.heex:80
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:80
msgctxt "terms"
msgid "This Service runs on a Mobilizon instance. This source code is licensed under an AGPLv3 license which means you are allowed to and even encouraged to take the source code, modify it and use it."
msgstr ""
@@ -708,16 +708,16 @@ msgstr ""
"license-v3-(agpl-3.0)\">AGPLv3-lisensen, som både gjev deg høve til, og "
"faktisk oppmodar deg til, å sjå på, bruka og endra kjeldekoden."
-#: lib/web/templates/api/terms.html.heex:58
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:58
msgctxt "terms"
msgid "Viruses, corrupted data or other harmful, disruptive or destructive files or code."
msgstr ""
"Virus, øydelagde data eller andre skadelege, forstyrrande og øydeleggjande "
"filer eller kode."
-#: lib/web/templates/api/terms.html.heex:51
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:51
msgctxt "terms"
msgid "You can remove the content that you posted by deleting it. Once you delete your content, it will not appear on the Service, but copies of your deleted content may remain in our system or backups for some period of time. Web server access logs might also be stored for some time in the system."
msgstr ""
@@ -726,29 +726,29 @@ msgstr ""
"det i systemet eller tryggingskopiane våre i noko tid. Tilgangsloggar frå "
"vevtenaren kan òg bli lagra i noko tid."
-#: lib/web/templates/api/terms.html.heex:96
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:96
msgctxt "terms"
msgid "Questions or comments about the Service may be directed to us at %{contact}"
msgstr ""
"Du kan senda spørsmål eller kommentarar om tenesta til oss på %{contact}"
-#: lib/web/templates/api/terms.html.heex:79
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:79
msgctxt "terms"
msgid "Source code"
msgstr "Kjeldekode"
-#: lib/web/templates/api/terms.html.heex:93
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:93
msgctxt "terms"
msgid "We love feedback. Please let us know what you think of the Service, these Terms and, in general, %{instance_name}."
msgstr ""
"Me likar tilbakemeldingar! Sei gjerne kva du synest om tenesta, vilkåra og "
"kva som helst om %{instance_name}."
-#: lib/web/templates/api/terms.html.heex:74
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:74
msgctxt "terms"
msgid "Instance administrators (and community moderators, given the relevant access) are responsible for monitoring and acting on flagged content and other user reports, and have the right and responsibility to remove or edit content that is not aligned to this Instance set of rules, or to suspend, block or ban (temporarily or permanently) any account, community, or instance for breaking these terms, or for other behaviours that they deem inappropriate, threatening, offensive, or harmful."
msgstr ""
@@ -760,16 +760,16 @@ msgstr ""
"same gjeld andre nettstader og brukarsamfunn, og åtferd som dei meiner er "
"upassande, trugande, krenkjande eller skadeleg."
-#: lib/web/templates/api/terms.html.heex:6
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:6
msgctxt "terms"
msgid "%{instance_name} will not use or transmit or resell your personal data"
msgstr ""
"%{instance_name} korkje bruker, overfører eller sel "
"personopplysingane dine"
-#: lib/web/templates/api/terms.html.heex:44
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:44
msgctxt "terms"
msgid "If you discover or suspect any Service security breaches, please let us know as soon as possible. For security holes in the Mobilizon software itself, please contact its contributors directly."
msgstr ""
@@ -778,16 +778,16 @@ msgstr ""
"programvara, bed me deg kontakta Framasoft direkte."
-#: lib/web/templates/api/terms.html.heex:77
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:77
msgctxt "terms"
msgid "Instance administrators should ensure that every community hosted on the instance is properly moderated according to the defined rules."
msgstr ""
"Styrarane på nettstaden bør passa på at alle brukarsamfunna som er på "
"nettstaden blir styrte etter retningslinene som er fastsette."
-#: lib/web/templates/api/terms.html.heex:98
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:98
msgctxt "terms"
msgid "Originally adapted from the Diaspora* and App.net privacy policies, also licensed under CC BY-SA."
msgstr ""
@@ -796,8 +796,8 @@ msgstr ""
"appdotnet/terms-of-service\">App.net, som òg er under CC BY-SA-lisensen."
-#: lib/web/templates/api/privacy.html.heex:119
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:119
msgctxt "terms"
msgid "Originally adapted from the Mastodon and Discourse privacy policies, also licensed under CC BY-SA."
msgstr ""
@@ -806,22 +806,22 @@ msgstr ""
"discourse\">Discourse, som òg er under CC BY-SA-lisensen."
-#: lib/web/templates/api/terms.html.heex:3
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:3
msgctxt "terms"
msgid "Short version"
msgstr "Kortversjon"
-#: lib/web/templates/api/terms.html.heex:9
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:9
msgctxt "terms"
msgid "The service is provided without warranties and these terms may change in the future"
msgstr ""
"Me driv denne tenesta utan å yta garantiar, og desse vilkåra kan bli endra i "
"framtida"
-#: lib/web/templates/api/privacy.html.heex:118
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:118
msgctxt "terms"
msgid "This document is licensed under CC BY-SA. It was last updated June 18, 2020."
msgstr ""
@@ -829,8 +829,8 @@ msgstr ""
"licenses/by-sa/4.0/\">CC BY-SA-lisensen. Det vart sist endra 18. juni "
"2020."
-#: lib/web/templates/api/terms.html.heex:97
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:97
msgctxt "terms"
msgid "This document is licensed under CC BY-SA. It was last updated June 22, 2020."
msgstr ""
@@ -838,83 +838,83 @@ msgstr ""
"licenses/by-sa/4.0/\">CC BY-SA-lisensen. Det vart sist endra 22. juni "
"2020."
-#: lib/web/templates/api/terms.html.heex:8
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:8
msgctxt "terms"
msgid "You must respect other people and %{instance_name}'s rules when using the service"
msgstr ""
"Du må respektera andre menneske og halda reglane på %{instance_name} "
"når du bruker denne tenesta"
-#: lib/web/templates/api/terms.html.heex:7
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:7
msgctxt "terms"
msgid "You must respect the law when using %{instance_name}"
msgstr "Du må fylgja lovene når du bruker %{instance_name}"
-#: lib/web/templates/api/terms.html.heex:5
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:5
msgctxt "terms"
msgid "Your content is yours"
msgstr "Du eig det du lagar"
-#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:51
#, elixir-format
+#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:51
msgid "Confirm my e-mail address"
msgstr "Stadfest epostadressa mi"
+#, elixir-format
#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:13
#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:1
-#, elixir-format
msgid "Confirm your e-mail"
msgstr "Stadfest epostadressa di"
-#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:3
#, elixir-format
+#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:3
msgid "Hi there! You just registered to join this event: « %{title} ». Please confirm the e-mail address you provided:"
msgstr ""
"Hei! Du har akkurat meldt deg på denne hendinga: « %{title} ». Stadfest "
"epostadressa du skreiv inn:"
+#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.text.eex:8
-#, elixir-format
msgid "Need help? Is something not working as expected?"
msgstr "Treng du hjelp, eller er det noko som ikkje verkar slik du venta?"
-#: lib/web/templates/email/registration_confirmation.html.heex:38
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.html.heex:38
msgid "You created an account on %{host} with this email address. You are one click away from activating it."
msgstr ""
"Du har laga ein konto på %{host} med denne epostadressa. Du er berre "
"eitt klikk unna å ta kontoen i bruk."
-#: lib/web/templates/email/report.html.heex:13
#, elixir-format
+#: lib/web/templates/email/report.html.heex:13
msgid "New report on %{instance}"
msgstr "Ny rapport på %{instance}"
-#: lib/web/templates/email/email_changed_old.html.heex:38
#, elixir-format
+#: lib/web/templates/email/email_changed_old.html.heex:38
msgid "The email address for your account on %{host} is being changed to:"
msgstr "Epostadressa for brukarkontoen din på %{host} blir no endra til:"
-#: lib/web/templates/email/password_reset.html.heex:38
#, elixir-format
+#: lib/web/templates/email/password_reset.html.heex:38
msgid "You requested a new password for your account on %{instance}."
msgstr "Du har bede om eit nytt passord for kontoen din på %{instance}."
-#: lib/web/templates/email/email.text.eex:5
#, elixir-format
+#: lib/web/templates/email/email.text.eex:5
msgid "Please do not use it for real purposes."
msgstr "Ikkje bruk han på ordentleg."
+#, elixir-format
#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:63
#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:6 lib/web/templates/email/event_updated.html.heex:133
#: lib/web/templates/email/event_updated.text.eex:24 lib/web/templates/email/notification_each_week.html.heex:70
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:70
#: lib/web/templates/email/on_day_notification.text.eex:14
-#, elixir-format
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@@ -924,9 +924,9 @@ msgstr[1] ""
"Viss du vil avbryta deltakinga di på ei eller fleire hendingar, kan du gå "
"til hendingssidene via lenkene over og klikka på «deltek»-knappen."
+#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
-#, elixir-format
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] "Du har ein førespurnad om deltaking å handtera:"
@@ -934,66 +934,66 @@ msgstr[1] ""
"Du har %{number_participation_requests} førespurnader om deltaking å "
"handtera:"
-#: lib/web/templates/email/email.text.eex:11
#, elixir-format
+#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} er ein Mobilizon-nettstad."
-#: lib/web/templates/email/email.html.heex:143
#, elixir-format
+#: lib/web/templates/email/email.html.heex:143
msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} er ein Mobilizon-nettstad."
+#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:13
#: lib/web/templates/email/pending_participation_notification.text.eex:1
-#, elixir-format
msgid "A request is pending!"
msgstr "Ein førespurnad ventar på deg!"
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:13
#: lib/web/templates/email/before_event_notification.text.eex:1
-#, elixir-format
msgid "An event is upcoming!"
msgstr "Ei hending skjer snart!"
+#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:13
#: lib/web/templates/email/email_changed_new.text.eex:1
-#, elixir-format
msgid "Confirm new email"
msgstr "Stadfest ny epostadresse"
-#: lib/web/templates/email/event_updated.html.heex:84
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:84
msgid "End"
msgstr "Slutt"
-#: lib/web/templates/email/event_updated.text.eex:21
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Slutt %{ends_on}"
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
-#, elixir-format
msgid "Event update!"
msgstr "Oppdatert hending!"
-#: lib/web/templates/email/report.html.heex:88
#, elixir-format
+#: lib/web/templates/email/report.html.heex:88
msgid "Flagged comments"
msgstr "Flagga kommentarar"
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:45
#: lib/web/templates/email/event_participation_approved.text.eex:7
-#, elixir-format
msgid "Good news: one of the event organizers just approved your request. Update your calendar, because you're on the guest list now!"
msgstr ""
"Godt nytt: Ein av tilskiparane har godkjent at du deltek. Skriv det i "
"kalenderen din, for du er på gjestelista!"
+#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:38
#: lib/web/templates/email/email_changed_new.text.eex:3
-#, elixir-format
msgid "Hi there! It seems like you wanted to change the email address linked to your account on %{instance}. If you still wish to do so, please click the button below to confirm the change. You will then be able to log in to %{instance} with this new email address."
msgstr ""
"Hei! Det ser ut til at du vil endra epostadressa du har brukt til "
@@ -1001,16 +1001,16 @@ msgstr ""
"du klikka på knappen under for å stadfesta dndringa. Etterpå kan du logga "
"inn på %{instance} med den nye adressa."
-#: lib/web/templates/email/email_changed_old.text.eex:3
#, elixir-format
+#: lib/web/templates/email/email_changed_old.text.eex:3
msgid "Hi there! Just a quick note to confirm that the email address linked to your account on %{host} has been changed from this one to:"
msgstr ""
"Hei! Berre ei lita melding for å stadfesta at epostadressa til kontoen din "
"på %{host} er endra frå denne til:"
+#, elixir-format
#: lib/web/templates/email/email_changed_old.html.heex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
-#, elixir-format
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
"Viss du ikkje gjorde denne endringa sjølv, er det sannsynleg at nokon har "
@@ -1018,316 +1018,316 @@ msgstr ""
"ditt med ein gong. Viss du ikkje kan logga inn, bør du kontakta styraren på "
"%{host}."
-#: lib/web/templates/email/password_reset.text.eex:12
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:12
msgid "If you didn't trigger the change yourself, please ignore this message. Your password won't be changed until you click the link above."
msgstr ""
"Viss du ikkje gjorde dette sjølv, kan du oversjå denne meldinga. Passordet "
"ditt blir ikkje endra med mindre du klikkar på lenka over."
+#, elixir-format
#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:70
#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:4 lib/web/templates/email/registration_confirmation.html.heex:45
-#, elixir-format
msgid "If you didn't trigger this email, you may safely ignore it."
msgstr "Viss du ikkje gjorde dette sjølv, kan du trygt sjå bort frå dette."
+#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:63
#: lib/web/templates/email/before_event_notification.text.eex:6
-#, elixir-format
msgid "If you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgstr ""
"Viss du ikkje vil delta likevel, kan du gå til hendingssida med lenka over "
"og klkka på «Deltek»-knappen."
+#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.text.eex:11
-#, elixir-format
msgid "Learn more about Mobilizon here!"
msgstr "Lær meir om Mobilizon her!"
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:94
#: lib/web/templates/export/event_participants.html.heex:129
-#, elixir-format
msgid "Location"
msgstr "Stad"
-#: lib/web/templates/email/event_updated.html.heex:104
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:104
msgid "Location address was removed"
msgstr "Adressa vart fjerna"
+#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
-#, elixir-format
msgid "Manage pending requests"
msgstr "Sjå over ventande førespurnader"
+#, elixir-format
#: lib/web/templates/email/registration_confirmation.html.heex:13
#: lib/web/templates/email/registration_confirmation.text.eex:1
-#, elixir-format
msgid "Nearly there!"
msgstr "Nesten klar!"
+#, elixir-format
#: lib/web/templates/email/email_changed_old.html.heex:13
#: lib/web/templates/email/email_changed_old.text.eex:1
-#, elixir-format
msgid "New email confirmation"
msgstr "Ny stadfestingsepost"
-#: lib/web/templates/email/report.html.heex:106
#, elixir-format
+#: lib/web/templates/email/report.html.heex:106
msgid "Reasons for report"
msgstr "Grungjeving for rapporten"
-#: lib/web/templates/email/report.html.heex:39
#, elixir-format
+#: lib/web/templates/email/report.html.heex:39
msgid "Someone on %{instance} reported the following content for you to analyze:"
msgstr ""
"Nokon på %{instance} rapporterte dette, slik at du kan sjå på det:"
+#, elixir-format
#: lib/web/templates/email/event_participation_rejected.html.heex:13
#: lib/web/templates/email/event_participation_rejected.text.eex:1
-#, elixir-format
msgid "Sorry! You're not going."
msgstr "Orsak! Du er ikkje påmeld."
-#: lib/web/templates/email/event_updated.html.heex:74
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:74
msgid "Start"
msgstr "Start"
-#: lib/web/templates/email/event_updated.text.eex:18
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Startar %{begins_on}"
-#: lib/web/templates/email/event_updated.text.eex:3
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:3
msgid "There have been changes for %{title} so we'd thought we'd let you know."
msgstr "%{title} er endra, så me tenkte du ville vita det."
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:55
#: lib/web/templates/email/event_updated.text.eex:11
-#, elixir-format
msgid "This event has been cancelled by its organizers. Sorry!"
msgstr "Tilskiparane har avlyst denne hendinga. Me orsakar!"
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:51
#: lib/web/templates/email/event_updated.text.eex:7
-#, elixir-format
msgid "This event has been confirmed"
msgstr "Denne hendinga er stadfesta"
+#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:53
#: lib/web/templates/email/event_updated.text.eex:9
-#, elixir-format
msgid "This event has yet to be confirmed: organizers will let you know if they do confirm it."
msgstr ""
"Denne hendinga er ikkje stadfesta enno. Tilskiparane seier frå viss dei "
"stadfestar ho."
+#, elixir-format
#: lib/web/templates/email/event_participation_rejected.html.heex:45
#: lib/web/templates/email/event_participation_rejected.text.eex:7
-#, elixir-format
msgid "Unfortunately, the organizers rejected your request."
msgstr "Tilskiparane har diverre avslege førespurnaden din."
-#: lib/web/templates/email/email_changed_new.html.heex:51
#, elixir-format
+#: lib/web/templates/email/email_changed_new.html.heex:51
msgid "Verify your email address"
msgstr "Stadfest epostadressa di"
-#: lib/web/templates/email/report.html.heex:126
#, elixir-format
+#: lib/web/templates/email/report.html.heex:126
msgid "View report"
msgstr "Les rapporten"
-#: lib/web/templates/email/report.text.eex:24
#, elixir-format
+#: lib/web/templates/email/report.text.eex:24
msgid "View report:"
msgstr "Les rapporten:"
+#, elixir-format
#: lib/web/templates/email/email_anonymous_activity.html.heex:67
#: lib/web/templates/email/event_participation_approved.html.heex:58 lib/web/templates/email/event_participation_confirmed.html.heex:58
-#, elixir-format
msgid "Visit event page"
msgstr "Sjå på hendingssida"
-#: lib/web/templates/email/event_updated.html.heex:121
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:121
msgid "Visit the updated event page"
msgstr "Sjå på den oppdaterte hendingssida"
-#: lib/web/templates/email/event_updated.text.eex:23
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:23
msgid "Visit the updated event page: %{link}"
msgstr "Sjå på den oppdaterte hendingssida: %{link}"
+#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
-#, elixir-format
msgid "What's up this week?"
msgstr "Kva skjer denne veka?"
+#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
-#, elixir-format
msgid "What's up today?"
msgstr "Kva skjer i dag?"
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:70
#: lib/web/templates/email/event_participation_approved.text.eex:11 lib/web/templates/email/event_participation_confirmed.html.heex:70
#: lib/web/templates/email/event_participation_confirmed.text.eex:6
-#, elixir-format
msgid "Would you wish to update or cancel your attendance, simply access the event page through the link above and click on the Attending button."
msgstr ""
"Viss du vil oppdatera eller avbryta deltakinga di, kan du gå til "
"hendingssida med lenka over og klikka på Deltek-knappen."
+#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
-#, elixir-format
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
"Du får denne eposten fordi du har valt å få varslingar når det er ventande "
"førespurnader til hendingane dine. Du kan skru av eller endra varsel i "
"kontoinnstillingane dine, under «Varsel»."
-#: lib/web/templates/email/event_participation_rejected.text.eex:5
#, elixir-format
+#: lib/web/templates/email/event_participation_rejected.text.eex:5
msgid "You issued a request to attend %{title}."
msgstr "Du ba om å bli med på %{title}."
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.text.eex:5
#: lib/web/templates/email/event_participation_confirmed.text.eex:3
-#, elixir-format
msgid "You recently requested to attend %{title}."
msgstr "Du ba nyst om å vera med på %{title}."
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:13
#: lib/web/templates/email/event_participation_confirmed.html.heex:13 lib/web/templates/email/event_participation_confirmed.text.eex:1
-#, elixir-format
msgid "You're going!"
msgstr "Du skal dit!"
+#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:64
#: lib/web/templates/email/email_changed_new.text.eex:5
-#, elixir-format
msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
"Viss du ikkje endra dette sjølv, kan du trygt sjå bort frå denne meldinga."
-#: lib/web/templates/email/email.html.heex:90
#, elixir-format
+#: lib/web/templates/email/email.html.heex:90
msgid "Please do not use it for real purposes."
msgstr "Ikkje bruk det på ordentleg."
+#, elixir-format
#: lib/web/templates/email/group_member_removal.html.heex:45
#: lib/web/templates/email/group_member_removal.text.eex:5
-#, elixir-format
msgid "If you feel this is an error, you may contact the group's administrators so that they can add you back."
msgstr ""
"Viss du meiner dette er feil, kan du kontakta gruppestyrarane slik at dei "
"kan leggja deg til att."
+#, elixir-format
#: lib/web/templates/email/group_member_removal.html.heex:13
#: lib/web/templates/email/group_member_removal.text.eex:1
-#, elixir-format
msgid "So long, and thanks for the fish!"
msgstr "Ha det så lenge, og takk for all fisken!"
-#: lib/web/email/group.ex:63
#, elixir-format
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Du er fjerna frå gruppa %{group}"
-#: lib/web/templates/email/group_member_removal.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_member_removal.text.eex:3
msgid "You have been removed from group %{group}. You will not be able to access this group's private content anymore."
msgstr ""
"Du er fjerna frå gruppa %{group}. Du kan ikkje lenger lesa innhald som er "
"privat for denne gruppa."
-#: lib/web/templates/email/group_invite.html.heex:38
#, elixir-format
+#: lib/web/templates/email/group_invite.html.heex:38
msgid "%{inviter} just invited you to join their group %{link_start}%{group}%{link_end}"
msgstr ""
"%{inviter} har nett invitert deg til gruppa "
"%{link_start}%{group}%{link_end}"
-#: lib/web/templates/email/group_member_removal.html.heex:38
#, elixir-format
+#: lib/web/templates/email/group_member_removal.html.heex:38
msgid "You have been removed from group %{link_start}%{group}%{link_end}. You will not be able to access this group's private content anymore."
msgstr ""
"Du er fjerna frå gruppa %{link_start}%{group}%{link_end}. Frå no kan "
"du ikkje lesa privat innhald i denne gruppa."
+#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:54
#: lib/web/templates/email/group_suspension.text.eex:7
-#, elixir-format
msgid "As this group was located on another instance, it will continue to work for other instances than this one."
msgstr ""
"Denne gruppa var på ein annan nettstad, og vil halda fram å verka for andre "
"nettstader unnateke denne."
+#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:46
#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-format
msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
msgstr ""
"Denne gruppa var på ein annan nettstad, så alle data gruppa hadde er borte "
"for alltid."
+#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:13
#: lib/web/templates/email/group_suspension.text.eex:1
-#, elixir-format
msgid "The group %{group} has been suspended on %{instance}!"
msgstr "Gruppa %{group} på %{instance} er sperra!"
-#: lib/web/templates/email/group_suspension.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_suspension.text.eex:3
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
"Styrarane på nettstaden din har avgjort å sperra gruppa %{group_name} "
"(%{group_address}). Du er ikkje lenger medlem av gruppa."
-#: lib/web/email/group.ex:97
#, elixir-format
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Gruppa %{group} på %{instance} er sperra"
-#: lib/web/templates/api/terms.html.heex:24
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:24
msgctxt "terms"
msgid "By accessing or using the Service, this means you agree to be bound by all the terms below. If these terms are in any way unclear, please let us know by contacting %{contact}."
msgstr ""
"Ved å vitja eller bruka denne tenesta, er du bunden av alle vilkåra under. "
"Viss vilkåra er uklåre, set me pris på om du kontaktar %{contact}."
-#: lib/web/templates/api/terms.html.heex:40
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:40
msgctxt "terms"
msgid "For information about how we collect and use information about users of the Service, please check our privacy policy."
msgstr ""
"På personvernsida vår kan du lesa meir om korleis "
"me samlar og bruker informasjon om dei som bruker denne tenesta."
-#: lib/web/templates/api/terms.html.heex:36
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:36
msgctxt "terms"
msgid "If you continue to use the Service after the revised Terms go into effect, you accept the revised Terms."
msgstr ""
"Viss du held fram å bruka tenesta etter at dei endra vilkåra byrjar gjelda, "
"tyder det at du godtek dei endra vilkåra."
-#: lib/web/templates/api/privacy.html.heex:78
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:78
msgctxt "terms"
msgid "If you delete this information, you need to login again."
msgstr "Viss du slettar desse opplysingane, må du logga inn på nytt."
-#: lib/web/templates/api/privacy.html.heex:80
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:80
msgctxt "terms"
msgid "If you're not connected, we don't store any information on your device, unless you participate in an event anonymously. In this specific case we store the hash of an unique identifier for the event and participation status in your browser so that we may display participation status. Deleting this information will only stop displaying participation status in your browser."
msgstr ""
@@ -1338,31 +1338,31 @@ msgstr ""
"Viss du slettar desse opplysingane, kjem ikkje nettlesaren din til å syna om "
"du deltek eller ei."
-#: lib/web/templates/api/privacy.html.heex:87
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:87
msgctxt "terms"
msgid "Note: This information is stored in your localStorage and not your cookies."
msgstr ""
"Merk: Desse opplysingane blir lagra i lokallagringa di, og ikkje i "
"infokapslane."
-#: lib/web/templates/api/terms.html.heex:71
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:71
msgctxt "terms"
msgid "Our responsibility"
msgstr "Ansvaret vårt"
-#: lib/web/templates/api/privacy.html.heex:61
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:61
msgctxt "terms"
msgid "Retain server logs containing the IP address of all requests to this server, insofar as such logs are kept, no more than 90 days."
msgstr ""
"Å lagra tenarloggar med IP-adressene for alle førespurnader til denne "
"tenaren, i den grad me lagrar loggar, i maksimalt 90 dagar."
+#, elixir-format
#: lib/web/templates/api/privacy.html.heex:3
#: lib/web/templates/api/terms.html.heex:15
-#, elixir-format
msgctxt "terms"
msgid "Some terms, technical or otherwise, used in the text below may cover concepts that are difficult to grasp. We have provided a glossary to help you understand them better."
msgstr ""
@@ -1370,16 +1370,16 @@ msgstr ""
"skjøna. Me har laga ei ordliste som kan hjelpa deg "
"å forstå dei."
-#: lib/web/templates/api/terms.html.heex:45
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:45
msgctxt "terms"
msgid "We are not liable for any loss you may incur as a result of someone else using your email or password, either with or without your knowledge."
msgstr ""
"Me er ikkje ansvarlege for tap som kan koma av at nokon andre bruker eposten "
"og passordet ditt, anten du veit om det eller ikkje."
-#: lib/web/templates/api/terms.html.heex:50
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:50
msgctxt "terms"
msgid "We cannot be held responsible should a programming or administrative error make your content visible to a larger audience than intended. Aside from our limited right to your content, you retain all of your rights to the content you post, link and otherwise make available on or through the Service."
msgstr ""
@@ -1389,8 +1389,8 @@ msgstr ""
"innhaldet du legg ut, lenkar eller gjer tilgjengeleg på eller gjennom "
"tenesta."
-#: lib/web/templates/api/privacy.html.heex:10
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:10
msgctxt "terms"
msgid "We collect information from you when you register on this instance and gather data when you participate in the platform by reading, writing, and interacting with content shared here. If you register on this instance, you will be asked to enter an email address, a password (hashed) and at least an username. Your email address will be verified by an email containing a unique link. Once the link is activated, we know you control that email address. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly. You may however visit this instance without registering."
msgstr ""
@@ -1407,16 +1407,16 @@ msgstr ""
"offentlege. Hugs at du kan vitja denne nettstaden utan å registrera "
"deg."
-#: lib/web/templates/api/terms.html.heex:30
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:30
msgctxt "terms"
msgid "We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature."
msgstr ""
"Me held på retten til å endra desse vilkåra til ei kvar tid. Til dømes kan "
"me ha bruk for å endra vilkåra dersom det kjem nye funksjonar på nettstaden."
-#: lib/web/templates/api/terms.html.heex:20
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:20
msgctxt "terms"
msgid "When we say “we”, “our”, or “us” in this document, we are referring to the owners, operators and administrators of this Mobilizon instance. The Mobilizon software is provided by the team of Mobilizon contributors, supported by Framasoft, a French not-for-profit organization advocating for Free/Libre Software. Unless explicitly stated, this Mobilizon instance is an independent service using Mobilizon's source code. You may find more information about this instance on the \"About this instance\" page."
msgstr ""
@@ -1429,8 +1429,8 @@ msgstr ""
"lesa meir om denne nettstaden på «Om "
"oss»-sida."
-#: lib/web/templates/api/terms.html.heex:43
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:43
msgctxt "terms"
msgid "When you create an account you agree to maintain the security and confidentiality of your password and accept all risks of unauthorized access to your account data and any other information you provide to %{instance_name}."
msgstr ""
@@ -1439,8 +1439,8 @@ msgstr ""
"tilgang til kontoopplysingane dine eller andre opplysingar du gjev til "
"%{instance_name}."
-#: lib/web/templates/api/terms.html.heex:49
#, elixir-format
+#: lib/web/templates/api/terms.html.heex:49
msgctxt "terms"
msgid "When you post, link or otherwise make available content to the Service, you grant us the right and license to display and distribute your content on or through the Service (including via applications). We may format your content for display throughout the Service, but we will not edit or revise the substance of your content itself. The displaying and distribution of your content happens only according to the visibility rules you have set for the content. We will not modify the visibility of the content you have set."
msgstr ""
@@ -1452,8 +1452,8 @@ msgstr ""
"avgrensingane du har gjeve for kvar innhaldet skal syna. Me vil ikkje endra "
"dei innstillingane du har gjort for kvar innhaldet skal syna."
-#: lib/web/templates/api/privacy.html.heex:19
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:19
msgctxt "terms"
msgid "Your events and comments are delivered to other instances that follow your own, meaning they are delivered to different instances and copies are stored there. When you delete events or comments, this is likewise delivered to these other instances. All interactions related to event features - such as joining an event - or group features - such as managing resources - are federated as well. Please keep in mind that the operators of the instance and any receiving instances may view such messages and information, and that recipients may screenshot, copy or otherwise re-share them."
msgstr ""
@@ -1468,8 +1468,8 @@ msgstr ""
"mottakarar kan kopiera, laga skjermbilete eller dela innhaldet på andre "
"måtar."
-#: lib/web/templates/api/privacy.html.heex:99
#, elixir-format
+#: lib/web/templates/api/privacy.html.heex:99
msgctxt "terms"
msgid "Your content may be downloaded by other instances in the network. Your public events and comments are delivered to the instances following your own instance. Content created through a group is forwarded to all the instances of all the members of the group, insofar as these members reside on a different instance than this one."
msgstr ""
@@ -1479,327 +1479,327 @@ msgstr ""
"alle nettstader frå alle medlemer i gruppa, i den grad desse medlemene er på "
"andre nettstader enn denne."
-#: lib/web/templates/email/event_participation_confirmed.text.eex:4
#, elixir-format
+#: lib/web/templates/email/event_participation_confirmed.text.eex:4
msgid "You have confirmed your participation. Update your calendar, because you're on the guest list now!"
msgstr ""
"Du har stadfesta at du deltek. Skriv det inn i kalenderen din, for du står "
"på gjestelista no!"
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:38
#: lib/web/templates/email/event_participation_confirmed.html.heex:38
-#, elixir-format
msgid "You recently requested to attend %{title}."
msgstr "Du ba nett om å vera med på %{title}."
-#: lib/web/email/participation.ex:88
#, elixir-format
+#: lib/web/email/participation.ex:88
msgid "Your participation to event %{title} has been confirmed"
msgstr "Me har stadfesta at du deltek på hendinga %{title}"
-#: lib/web/templates/email/report.html.heex:41
#, elixir-format
+#: lib/web/templates/email/report.html.heex:41
msgid "%{reporter} reported the following content."
msgstr "%{reporter} rapporterte dette innhaldet."
-#: lib/web/templates/email/report.text.eex:5
#, elixir-format
+#: lib/web/templates/email/report.text.eex:5
msgid "Group %{group} was reported"
msgstr "Gruppa %{group} er rapportert"
-#: lib/web/templates/email/report.html.heex:51
#, elixir-format
+#: lib/web/templates/email/report.html.heex:51
msgid "Group reported"
msgstr "Ei gruppe er rapportert"
-#: lib/web/templates/email/report.text.eex:7
#, elixir-format
+#: lib/web/templates/email/report.text.eex:7
msgid "Profile %{profile} was reported"
msgstr "Profilen %{profile} er rapportert"
-#: lib/web/templates/email/report.html.heex:56
#, elixir-format
+#: lib/web/templates/email/report.html.heex:56
msgid "Profile reported"
msgstr "Ein profil er rapportert"
-#: lib/web/templates/email/event_participation_confirmed.html.heex:45
#, elixir-format
+#: lib/web/templates/email/event_participation_confirmed.html.heex:45
msgid "You have now confirmed your participation. Update your calendar, because you're on the guest list now!"
msgstr ""
"No har du stadfesta at du deltek. Skriv det inn i kalenderen din, for du "
"står på gjestelista no!"
-#: lib/mobilizon/posts/post.ex:99
#, elixir-format
+#: lib/mobilizon/posts/post.ex:99
msgid "A text is required for the post"
msgstr "Du treng tekst i innlegget"
-#: lib/mobilizon/posts/post.ex:98
#, elixir-format
+#: lib/mobilizon/posts/post.ex:98
msgid "A title is required for the post"
msgstr "Du treng ein tittel på innlegget"
-#: lib/web/templates/email/instance_follow.text.eex:3
#, elixir-format
+#: lib/web/templates/email/instance_follow.text.eex:3
msgid "%{name} (%{domain}) just requested to follow your instance."
msgstr "%{name} (%{domain}) har spurt om å fylgja nettstaden din."
-#: lib/web/email/follow.ex:54
#, elixir-format
+#: lib/web/email/follow.ex:54
msgid "%{name} requests to follow your instance"
msgstr "%{name} spør om å fylgja nettstaden din"
-#: lib/web/templates/email/instance_follow.html.heex:38
#, elixir-format
+#: lib/web/templates/email/instance_follow.html.heex:38
msgid "%{name} (%{domain}) just requested to follow your instance. If you accept, this instance will receive all of your instance's public events."
msgstr ""
"%{name} (%{domain}) har nett spurt om å fylgja nettstaden din. Viss "
"du seier ja, vil nettstaden få alle dei offentlege hendingane på nettstaden "
"din."
-#: lib/web/templates/email/instance_follow.text.eex:4
#, elixir-format
+#: lib/web/templates/email/instance_follow.text.eex:4
msgid "If you accept, this instance will receive all of your public events."
msgstr ""
"Viss du seier ja, vil nettstaden få alle dei offentlege hendingane dine."
-#: lib/web/email/follow.ex:48
#, elixir-format
+#: lib/web/email/follow.ex:48
msgid "Instance %{name} (%{domain}) requests to follow your instance"
msgstr "Nettstaden %{name} (%{domain}) spør om å fylgja nettstaden din"
-#: lib/web/templates/email/instance_follow.html.heex:66
#, elixir-format
+#: lib/web/templates/email/instance_follow.html.heex:66
msgid "See the federation settings"
msgstr "Sjå på innstillingane for spreiing"
+#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:52
#: lib/web/templates/email/instance_follow.text.eex:6
-#, elixir-format
msgid "To accept this invitation, head over to the instance's admin settings."
msgstr ""
"Gå til administratorinnstillingane for nettstaden for å godta denne "
"invitasjonen."
+#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:13
#: lib/web/templates/email/instance_follow.text.eex:1
-#, elixir-format
msgid "Want to connect?"
msgstr "Vil du kopla til?"
+#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:45
#: lib/web/templates/email/instance_follow.text.eex:5
-#, elixir-format
msgid "Note: %{name} (%{domain}) following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too."
msgstr ""
"Merk: At %{name} (%{domain}) fylgjer deg, tyder ikkje plent at du fylgjer "
"dei, men du kan be om å fylgja dei òg."
-#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:38
#, elixir-format
+#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:38
msgid "Hi there! You just registered to join this event: « %{title} ». Please confirm the e-mail address you provided:"
msgstr ""
"Hei! Du melde deg akkurat på denne hendinga: «%{title}». Stadfest "
"epostadressa du skreiv inn:"
-#: lib/web/templates/email/event_participation_rejected.html.heex:38
#, elixir-format
+#: lib/web/templates/email/event_participation_rejected.html.heex:38
msgid "You issued a request to attend %{title}."
msgstr "Du sende ein førespurnad om å vera med på %{title}."
-#: lib/web/templates/email/event_updated.html.heex:64
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:64
msgid "Event title"
msgstr "Namn på hendinga"
-#: lib/web/templates/email/event_updated.html.heex:38
#, elixir-format
+#: lib/web/templates/email/event_updated.html.heex:38
msgid "There have been changes for %{title} so we'd thought we'd let you know."
msgstr "%{title} har vorte endra, så me tenkte du ville vita det."
-#: lib/web/templates/error/500_page.html.heex:7
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:7
msgid "This page is not correct"
msgstr "Denne sida er feil"
-#: lib/web/templates/error/500_page.html.heex:50
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:50
msgid "We're sorry, but something went wrong on our end."
msgstr "Orsak, det skjedde noko feil hjå oss."
+#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.text.eex:4
-#, elixir-format
msgid "This is a demonstration site to test Mobilizon."
msgstr "Dette er ei demoside for å prøva ut Mobilizon."
+#, elixir-format
#: lib/service/metadata/actor.ex:67 lib/service/metadata/actor.ex:75
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
-#, elixir-format
msgid "%{name}'s feed"
msgstr "Straumen til %{name}"
-#: lib/service/export/feed.ex:122
#, elixir-format
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "Den private hendingsstraumen til %{actor} på %{instance}"
-#: lib/service/export/feed.ex:117
#, elixir-format
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "Den offentlege hendingsstraumen til %{actor} på %{instance}"
-#: lib/service/export/feed.ex:225
#, elixir-format
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "Straum for %{email} på %{instance}"
-#: lib/web/templates/error/500_page.html.heex:57
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:57
msgid "If the issue persists, you may contact the server administrator at %{contact}."
msgstr ""
"Viss feilen held fram, kan du kontakta styraren for denne tenaren på "
"%{contact}."
-#: lib/web/templates/error/500_page.html.heex:55
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:55
msgid "If the issue persists, you may try to contact the server administrator."
msgstr ""
"Viss feilen held fram, kan du prøva å kontakta styraren på denne tenaren."
-#: lib/web/templates/error/500_page.html.heex:68
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:68
msgid "Technical details"
msgstr "Tekniske detaljar"
-#: lib/web/templates/error/500_page.html.heex:52
#, elixir-format
+#: lib/web/templates/error/500_page.html.heex:52
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Mobilizon-tenaren ser ut til å vera nede i augeblinken."
-#: lib/service/export/feed.ex:75
#, elixir-format
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr "Offentleg straum for %{instance}"
-#: lib/graphql/resolvers/user.ex:298
#, elixir-format
+#: lib/graphql/resolvers/user.ex:298
msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
msgstr "Passordet er for kort. Det må ha minst 6 teikn."
-#: lib/graphql/resolvers/user.ex:304
#, elixir-format
+#: lib/graphql/resolvers/user.ex:304
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
"Godkjenningsteiknet er ugyldig. Pass på at adressa er heilt lik den du fekk "
"i eposten."
-#: lib/web/email/actor.ex:44
#, elixir-format
+#: lib/web/email/actor.ex:44
msgid "Your participation to %{event} has been cancelled!"
msgstr "Du har meldt deg av deltakinga på %{title}!"
+#, elixir-format
#: lib/web/templates/email/actor_suspension_participants.html.heex:38
#: lib/web/templates/email/actor_suspension_participants.text.eex:3
-#, elixir-format
msgid "Your instance's moderation team has decided to suspend %{actor_name} (%{actor_address}). All of their events have been removed and your participation to event %{event} cancelled."
msgstr ""
"Styrarane på nettstaden din har avgjort å sperra gruppa %{group_name} "
"(%{group_address}). Du er ikkje lenger medlem av gruppa."
-#: lib/web/templates/email/group_suspension.html.heex:38
#, elixir-format
+#: lib/web/templates/email/group_suspension.html.heex:38
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
"Styrarane på nettstaden din har avgjort å sperra gruppa %{group_name} "
"(%{group_address}). Du er ikkje lenger medlem av gruppa."
+#, elixir-format
#: lib/web/templates/email/actor_suspension_participants.html.heex:13
#: lib/web/templates/email/actor_suspension_participants.text.eex:1
-#, elixir-format
msgid "Your participation to %{event} on %{instance} has been cancelled!"
msgstr "Du har meldt deg av %{event} på %{instance}!"
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
+#, elixir-format
#: lib/service/export/participants/csv.ex:73
#: lib/service/export/participants/ods.ex:79 lib/service/export/participants/pdf.ex:93
-#, elixir-format
msgid "%{event}_participants"
msgstr "%{event}_deltakarar"
-#: lib/service/export/participants/common.ex:61
#, elixir-format
+#: lib/service/export/participants/common.ex:61
msgid "Participant message"
msgstr "Deltakarmelding"
-#: lib/service/export/participants/common.ex:61
#, elixir-format
+#: lib/service/export/participants/common.ex:61
msgid "Participant name"
msgstr "Deltakinga er godkjend"
-#: lib/service/export/participants/common.ex:61
#, elixir-format
+#: lib/service/export/participants/common.ex:61
msgid "Participant status"
msgstr "Deltakarstatus"
-#: lib/service/export/participants/common.ex:52
#, elixir-format
+#: lib/service/export/participants/common.ex:52
msgid "Administrator"
msgstr "Styrar"
-#: lib/service/export/participants/common.ex:55
#, elixir-format
+#: lib/service/export/participants/common.ex:55
msgid "Creator"
msgstr "Opphavsperson"
-#: lib/service/export/participants/common.ex:49
#, elixir-format
+#: lib/service/export/participants/common.ex:49
msgid "Moderator"
msgstr "Redaktør"
-#: lib/service/export/participants/common.ex:37
#, elixir-format
+#: lib/service/export/participants/common.ex:37
msgid "Not approved"
msgstr "Ikkje godkjent"
-#: lib/service/export/participants/common.ex:40
#, elixir-format
+#: lib/service/export/participants/common.ex:40
msgid "Not confirmed"
msgstr "Ikkje stadfesta"
-#: lib/service/export/participants/common.ex:46
#, elixir-format
+#: lib/service/export/participants/common.ex:46
msgid "Participant"
msgstr "Deltakar"
-#: lib/service/export/participants/common.ex:43
#, elixir-format
+#: lib/service/export/participants/common.ex:43
msgid "Rejected"
msgstr "Avvist"
-#: lib/web/templates/export/event_participants.html.heex:122
#, elixir-format
+#: lib/web/templates/export/event_participants.html.heex:122
msgid "Begins on"
msgstr "Byrjar"
-#: lib/web/templates/export/event_participants.html.heex:125
#, elixir-format
+#: lib/web/templates/export/event_participants.html.heex:125
msgid "Ends on"
msgstr "Slutt"
-#: lib/web/templates/export/event_participants.html.heex:132
#, elixir-format
+#: lib/web/templates/export/event_participants.html.heex:132
msgid "Number of participants"
msgstr "Tal deltakarar"
-#: lib/web/templates/export/event_participants.html.heex:120
#, elixir-format
+#: lib/web/templates/export/event_participants.html.heex:120
msgid "Participants for %{event}"
msgstr "Deltakinga er godkjend"
-#: lib/service/export/participants/common.ex:88
#, elixir-format
+#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr "Anonym deltakar"
diff --git a/priv/gettext/nn/LC_MESSAGES/errors.po b/priv/gettext/nn/LC_MESSAGES/errors.po
index eadb2397..52454a67 100644
--- a/priv/gettext/nn/LC_MESSAGES/errors.po
+++ b/priv/gettext/nn/LC_MESSAGES/errors.po
@@ -110,876 +110,896 @@ msgstr "må vera større enn eller lik %{number}"
msgid "must be equal to %{number}"
msgstr "må vera lik %{number}"
-#: lib/graphql/resolvers/user.ex:107
#, elixir-format
+#: lib/graphql/resolvers/user.ex:107
msgid "Cannot refresh the token"
msgstr "Kan ikkje fornya teiknet"
-#: lib/graphql/resolvers/group.ex:227
#, elixir-format
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Denne brukaren er ikkje medlem av gruppa"
-#: lib/graphql/resolvers/group.ex:231
#, elixir-format
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Denne brukaren er ikkje styrar av gruppa"
-#: lib/graphql/resolvers/user.ex:588
#, elixir-format
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Greidde ikkje lagra brukarinnstillingane"
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
#, elixir-format
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Fann ikkje gruppa"
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
#, elixir-format
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Fann ikkje gruppa med ID %{id}"
-#: lib/graphql/resolvers/user.ex:85
#, elixir-format
+#: lib/graphql/resolvers/user.ex:85
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Greier ikkje å logga inn. Epostadressa eller passordet ditt er feil."
-#: lib/graphql/resolvers/group.ex:290
#, elixir-format
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Fann ikkje medlemen"
-#: lib/graphql/resolvers/actor.ex:94
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:94
msgid "No profile found for the moderator user"
msgstr "Fann ingen profil for moderator-brukaren"
-#: lib/graphql/resolvers/user.ex:253
#, elixir-format
+#: lib/graphql/resolvers/user.ex:253
msgid "No user to validate with this email was found"
msgstr "Fann ingen brukar med denne eposten å godkjenna"
-#: lib/graphql/resolvers/person.ex:314 lib/graphql/resolvers/user.ex:278
#, elixir-format
+#: lib/graphql/resolvers/person.ex:314 lib/graphql/resolvers/user.ex:278
msgid "No user with this email was found"
msgstr "Fann ingen brukar med denne eposten"
+#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:32 lib/graphql/resolvers/participant.ex:210 lib/graphql/resolvers/person.ex:236
#: lib/graphql/resolvers/person.ex:353 lib/graphql/resolvers/person.ex:380 lib/graphql/resolvers/person.ex:397
-#, elixir-format
msgid "Profile is not owned by authenticated user"
msgstr "Ingen godkjent brukar eig denne profilen"
-#: lib/graphql/resolvers/user.ex:156
#, elixir-format
+#: lib/graphql/resolvers/user.ex:156
msgid "Registrations are not open"
msgstr "Det er ikkje opna for å registrera seg"
-#: lib/graphql/resolvers/user.ex:407
#, elixir-format
+#: lib/graphql/resolvers/user.ex:407
msgid "The current password is invalid"
msgstr "Dette passordet er ugyldig"
-#: lib/graphql/resolvers/user.ex:452
#, elixir-format
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "Den nye epostadressa ser ut til å vera feil"
-#: lib/graphql/resolvers/user.ex:449
#, elixir-format
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "Den nye epostadressa må vera annleis"
-#: lib/graphql/resolvers/user.ex:410
#, elixir-format
+#: lib/graphql/resolvers/user.ex:410
msgid "The new password must be different"
msgstr "Det nye passordet må vera annleis"
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
#, elixir-format
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "Dette passordet er ugyldig"
-#: lib/graphql/resolvers/user.ex:414
#, elixir-format
+#: lib/graphql/resolvers/user.ex:414
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr "Dette passordet er for kort. Passord må ha minst 6 teikn."
-#: lib/graphql/resolvers/user.ex:274
#, elixir-format
+#: lib/graphql/resolvers/user.ex:274
msgid "This user can't reset their password"
msgstr "Denne brukaren kan ikkje nullstilla passordet sitt"
-#: lib/graphql/resolvers/user.ex:81
#, elixir-format
+#: lib/graphql/resolvers/user.ex:81
msgid "This user has been disabled"
msgstr "Denne brukaren er avskrudd"
-#: lib/graphql/resolvers/user.ex:232 lib/graphql/resolvers/user.ex:237
#, elixir-format
+#: lib/graphql/resolvers/user.ex:232 lib/graphql/resolvers/user.ex:237
msgid "Unable to validate user"
msgstr "Greier ikkje godkjenna brukaren"
-#: lib/graphql/resolvers/user.ex:496
#, elixir-format
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "Brukaren er allereie inaktiv"
-#: lib/graphql/resolvers/user.ex:563
#, elixir-format
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "Den førespurte brukaren er ikkje innlogga"
-#: lib/graphql/resolvers/group.ex:262
#, elixir-format
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Du er allereie medlem av denne gruppa"
-#: lib/graphql/resolvers/group.ex:297
#, elixir-format
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "Du kan ikkje forlata denne gruppa, fordi du er den einaste styraren"
-#: lib/graphql/resolvers/group.ex:259
#, elixir-format
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Du kan ikkje bli med i denne gruppa"
-#: lib/graphql/resolvers/group.ex:111
#, elixir-format
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Du kan ikkje lista opp grupper med mindre du er moderator."
-#: lib/graphql/resolvers/user.ex:461
#, elixir-format
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Du må vera innlogga for å endra epostadressa di"
-#: lib/graphql/resolvers/user.ex:422
#, elixir-format
+#: lib/graphql/resolvers/user.ex:422
msgid "You need to be logged-in to change your password"
msgstr "Du må vera innlogga for å endra passordet ditt"
-#: lib/graphql/resolvers/group.ex:236
#, elixir-format
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Du må vera innlogga for å sletta ei gruppe"
-#: lib/graphql/resolvers/user.ex:523
#, elixir-format
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Du må vera innlogga for å sletta kontoen din"
-#: lib/graphql/resolvers/group.ex:267
#, elixir-format
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Du må vera innlogga for å bli med i ei gruppe"
-#: lib/graphql/resolvers/group.ex:302
#, elixir-format
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Du må vera innlogga for å forlata ei gruppe"
-#: lib/graphql/resolvers/group.ex:200
#, elixir-format
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Du må vera innlogga for å oppdatera ei gruppe"
-#: lib/graphql/resolvers/user.ex:112
#, elixir-format
+#: lib/graphql/resolvers/user.ex:112
msgid "You need to have an existing token to get a refresh token"
msgstr "Du treng eit eksisterande teikn for å få eit fornyingsteikn"
-#: lib/graphql/resolvers/user.ex:256 lib/graphql/resolvers/user.ex:281
#, elixir-format
+#: lib/graphql/resolvers/user.ex:256 lib/graphql/resolvers/user.ex:281
msgid "You requested again a confirmation email too soon"
msgstr "Du ba om ny stadfestingsepost for snøgt"
-#: lib/graphql/resolvers/user.ex:159
#, elixir-format
+#: lib/graphql/resolvers/user.ex:159
msgid "Your email is not on the allowlist"
msgstr "Epostadressa di er ikkje på lista over godkjende adresser"
-#: lib/graphql/resolvers/actor.ex:100
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:100
msgid "Error while performing background task"
msgstr "Greidde ikkje utføra ei bakgrunnsoppgåve"
-#: lib/graphql/resolvers/actor.ex:32
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:32
msgid "No profile found with this ID"
msgstr "Fann ingen profil med denne ID-en"
-#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:97
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:97
msgid "No remote profile found with this ID"
msgstr "Fann ingen fjern profil med denne ID-en"
-#: lib/graphql/resolvers/actor.ex:72
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:72
msgid "Only moderators and administrators can suspend a profile"
msgstr "Berre moderatorar og styrarar kan sperra ein profil"
-#: lib/graphql/resolvers/actor.ex:105
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:105
msgid "Only moderators and administrators can unsuspend a profile"
msgstr "Berre moderatorar og styrarar kan oppheva sperring av profilar"
-#: lib/graphql/resolvers/actor.ex:29
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:29
msgid "Only remote profiles may be refreshed"
msgstr "Du kan berre lasta fjerne profilar på nytt"
-#: lib/graphql/resolvers/actor.ex:64
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:64
msgid "Profile already suspended"
msgstr "Profilen er allereie sperra"
-#: lib/graphql/resolvers/participant.ex:96
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:96
msgid "A valid email is required by your instance"
msgstr "Nettstaden din krev ei gyldig epostadresse"
+#, elixir-format
#: lib/graphql/resolvers/participant.ex:90
#: lib/graphql/resolvers/participant.ex:143
-#, elixir-format
msgid "Anonymous participation is not enabled"
msgstr "Det er ikkje høve til å vera med anonymt"
-#: lib/graphql/resolvers/person.ex:210
#, elixir-format
+#: lib/graphql/resolvers/person.ex:210
msgid "Cannot remove the last administrator of a group"
msgstr "Kan ikkje fjerna den siste styraren i gruppa"
-#: lib/graphql/resolvers/person.ex:207
#, elixir-format
+#: lib/graphql/resolvers/person.ex:207
msgid "Cannot remove the last identity of a user"
msgstr "Kan ikkje fjerna den siste identiteten til ein brukar"
-#: lib/graphql/resolvers/comment.ex:125
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Kommentaren er allereie sletta"
-#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:75
#, elixir-format
+#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:75
msgid "Discussion not found"
msgstr "Fann ikkje ordskiftet"
-#: lib/graphql/resolvers/report.ex:63 lib/graphql/resolvers/report.ex:82
#, elixir-format
+#: lib/graphql/resolvers/report.ex:63 lib/graphql/resolvers/report.ex:82
msgid "Error while saving report"
msgstr "Greidde ikkje lagra rapporten"
-#: lib/graphql/resolvers/report.ex:102
#, elixir-format
+#: lib/graphql/resolvers/report.ex:102
msgid "Error while updating report"
msgstr "Greidde ikkje oppdatera rapporten"
-#: lib/graphql/resolvers/participant.ex:131
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:131
msgid "Event id not found"
msgstr "Fann ikkje ID-en til hendinga"
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
#, elixir-format
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Fann ikkje hendinga"
+#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
-#, elixir-format
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "Det finst inga hending med ID-en %{id}"
-#: lib/graphql/resolvers/participant.ex:103
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:103
msgid "Internal Error"
msgstr "Intern feil"
-#: lib/graphql/resolvers/discussion.ex:225
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:225
msgid "No discussion with ID %{id}"
msgstr "Ikkje noko ordskifte med ID-en %{id}"
+#, elixir-format
#: lib/graphql/resolvers/todos.ex:80 lib/graphql/resolvers/todos.ex:107
#: lib/graphql/resolvers/todos.ex:179 lib/graphql/resolvers/todos.ex:208 lib/graphql/resolvers/todos.ex:237
-#, elixir-format
msgid "No profile found for user"
msgstr "Fann ingen profil for brukaren"
-#: lib/graphql/resolvers/feed_token.ex:64
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Det finst ikkje noko slikt teikn for kjelda"
-#: lib/graphql/resolvers/participant.ex:259
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:259
msgid "Participant already has role %{role}"
msgstr "Deltakaren har rolla %{role} allereie"
+#, elixir-format
#: lib/graphql/resolvers/participant.ex:187
#: lib/graphql/resolvers/participant.ex:220 lib/graphql/resolvers/participant.ex:263
-#, elixir-format
msgid "Participant not found"
msgstr "Fann ikkje deltakaren"
-#: lib/graphql/resolvers/person.ex:32
#, elixir-format
+#: lib/graphql/resolvers/person.ex:32
msgid "Person with ID %{id} not found"
msgstr "Fann ingen person med ID-en %{id}"
-#: lib/graphql/resolvers/person.ex:56
#, elixir-format
+#: lib/graphql/resolvers/person.ex:56
msgid "Person with username %{username} not found"
msgstr "Fann ingen person med brukarnamnet %{username}"
-#: lib/graphql/resolvers/post.ex:169 lib/graphql/resolvers/post.ex:203
#, elixir-format
+#: lib/graphql/resolvers/post.ex:169 lib/graphql/resolvers/post.ex:203
msgid "Post ID is not a valid ID"
msgstr "Innleggs-IDen er ugyldig"
-#: lib/graphql/resolvers/post.ex:172 lib/graphql/resolvers/post.ex:206
#, elixir-format
+#: lib/graphql/resolvers/post.ex:172 lib/graphql/resolvers/post.ex:206
msgid "Post doesn't exist"
msgstr "Innlegget finst ikkje"
-#: lib/graphql/resolvers/member.ex:82
#, elixir-format
+#: lib/graphql/resolvers/member.ex:82
msgid "Profile invited doesn't exist"
msgstr "Den inviterte profilen finst ikkje"
-#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
#, elixir-format
+#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
msgid "Profile is already a member of this group"
msgstr "Profilen er allereie medlem i denne gruppa"
+#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
-#, elixir-format
msgid "Profile is not member of group"
msgstr "Profilen er ikkje medlem i gruppa"
-#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/person.ex:233
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/person.ex:233
msgid "Profile not found"
msgstr "Fann ikkje profilen"
-#: lib/graphql/resolvers/report.ex:40
#, elixir-format
+#: lib/graphql/resolvers/report.ex:40
msgid "Report not found"
msgstr "Fann ikkje rapporten"
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "Ressursen finst ikkje"
-#: lib/graphql/resolvers/participant.ex:124
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:124
msgid "The event has already reached its maximum capacity"
msgstr "Hendinga er fullteikna"
-#: lib/graphql/resolvers/participant.ex:283
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Teiknet er ugyldig"
-#: lib/graphql/resolvers/todos.ex:176 lib/graphql/resolvers/todos.ex:243
#, elixir-format
+#: lib/graphql/resolvers/todos.ex:176 lib/graphql/resolvers/todos.ex:243
msgid "Todo doesn't exist"
msgstr "Gjeremålet finst ikkje"
+#, elixir-format
#: lib/graphql/resolvers/todos.ex:77 lib/graphql/resolvers/todos.ex:211
#: lib/graphql/resolvers/todos.ex:240
-#, elixir-format
msgid "Todo list doesn't exist"
msgstr "Gjeremålslista finst ikkje"
-#: lib/graphql/resolvers/feed_token.ex:73
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Teiknet finst ikkje"
-#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Teiknet er ikkje ein gyldig UUID"
-#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:415
#, elixir-format
+#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:415
msgid "User not found"
msgstr "Fann ikkje brukaren"
-#: lib/graphql/resolvers/person.ex:310
#, elixir-format
+#: lib/graphql/resolvers/person.ex:310
msgid "You already have a profile for this user"
msgstr "Du har allereie ein profil for denne brukaren"
-#: lib/graphql/resolvers/participant.ex:134
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:134
msgid "You are already a participant of this event"
msgstr "Du er allereie deltakar på denne hendinga"
-#: lib/graphql/resolvers/member.ex:85
#, elixir-format
+#: lib/graphql/resolvers/member.ex:85
msgid "You are not a member of this group"
msgstr "Du er ikkje medlem i denne gruppa"
-#: lib/graphql/resolvers/member.ex:155
#, elixir-format
+#: lib/graphql/resolvers/member.ex:155
msgid "You are not a moderator or admin for this group"
msgstr "Du er ikkje styrar eller administrator for denne gruppa"
-#: lib/graphql/resolvers/comment.ex:59
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:59
msgid "You are not allowed to create a comment if not connected"
msgstr "Du har ikkje løyve til å skriva kommentarar viss du ikkje er kopla til"
-#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "Du har ikkje løyve til å laga eit straumteikn når du ikkje er kopla til"
-#: lib/graphql/resolvers/comment.ex:133
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Du har ikkje løyve til å sletta ein kommentar når du ikkje er kopla til"
-#: lib/graphql/resolvers/feed_token.ex:82
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Du har ikkje løyve til å sletta straumteikn når du ikkje er kopla til"
-#: lib/graphql/resolvers/comment.ex:93
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:93
msgid "You are not allowed to update a comment if not connected"
msgstr ""
"Du har ikkje løyve til å oppdatera kommentarar når du ikkje er kopla til"
+#, elixir-format
#: lib/graphql/resolvers/participant.ex:181
#: lib/graphql/resolvers/participant.ex:214
-#, elixir-format
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"Du kan ikkje forlata hendinga, fordi du er den einaste deltakaren som har "
"oppretta hendinga"
-#: lib/graphql/resolvers/member.ex:159
#, elixir-format
+#: lib/graphql/resolvers/member.ex:159
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Du kan ikkje gje deg sjølv ei deltakarrolle i denne gruppa, fordi du er den "
"einaste administratoren"
-#: lib/graphql/resolvers/comment.ex:121
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Du kan ikkje sletta denne kommentaren"
-#: lib/graphql/resolvers/event.ex:375
#, elixir-format
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Du kan ikkje sletta denne hendinga"
-#: lib/graphql/resolvers/member.ex:88
#, elixir-format
+#: lib/graphql/resolvers/member.ex:88
msgid "You cannot invite to this group"
msgstr "Du kan ikkje invitera til denne gruppa"
-#: lib/graphql/resolvers/feed_token.ex:76
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Du har ikkje løyve til å sletta dette teiknet"
-#: lib/graphql/resolvers/admin.ex:54
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:54
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
"Du må vera innlogga og ha ei moderatorrolle for å lista opp hendingsloggar"
-#: lib/graphql/resolvers/report.ex:28
#, elixir-format
+#: lib/graphql/resolvers/report.ex:28
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Du må vera innlogga og ha ei moderatorrolle for å lista opp rapportar"
-#: lib/graphql/resolvers/report.ex:107
#, elixir-format
+#: lib/graphql/resolvers/report.ex:107
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Du må vera innlogga og ha ei moderatorrolle for å oppdatera ein rapport"
-#: lib/graphql/resolvers/report.ex:45
#, elixir-format
+#: lib/graphql/resolvers/report.ex:45
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Du må vera innlogga og ha ei moderatorrolle for å lesa rapportar"
-#: lib/graphql/resolvers/admin.ex:246
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:246
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Du må vera innlogga og ha ei administratorrolle for å sjå admin-"
"innstillingane"
-#: lib/graphql/resolvers/admin.ex:230
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:230
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Du må vera innlogga og ha ei administratorrolle for å sjå statistikk på "
"styringspanelet"
-#: lib/graphql/resolvers/admin.ex:272
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:272
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Du må vera innlogga og ha ei administratorrolle for å lagra admin-"
"innstillingar"
-#: lib/graphql/resolvers/discussion.ex:90
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:90
msgid "You need to be logged-in to access discussions"
msgstr "Du må vera innlogga for å sjå ordskifte"
-#: lib/graphql/resolvers/resource.ex:96
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:96
msgid "You need to be logged-in to access resources"
msgstr "Du må vera innlogga for å sjå ressursane"
-#: lib/graphql/resolvers/event.ex:295
#, elixir-format
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Du må vera innlogga for å laga hendingar"
-#: lib/graphql/resolvers/post.ex:141
#, elixir-format
+#: lib/graphql/resolvers/post.ex:141
msgid "You need to be logged-in to create posts"
msgstr "Du må vera innlogga for å skriva innlegg"
-#: lib/graphql/resolvers/report.ex:79
#, elixir-format
+#: lib/graphql/resolvers/report.ex:79
msgid "You need to be logged-in to create reports"
msgstr "Du må vera innlogga for å rapportera"
-#: lib/graphql/resolvers/resource.ex:136
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Du må vera innlogga for å laga ressursar"
-#: lib/graphql/resolvers/event.ex:384
#, elixir-format
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Du må vera innlogga for å sletta ei hending"
-#: lib/graphql/resolvers/post.ex:214
#, elixir-format
+#: lib/graphql/resolvers/post.ex:214
msgid "You need to be logged-in to delete posts"
msgstr "Du må vera innlogga for å sletta innlegg"
-#: lib/graphql/resolvers/resource.ex:203
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Du må vera innlogga for å sletta ressursar"
-#: lib/graphql/resolvers/participant.ex:108
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:108
msgid "You need to be logged-in to join an event"
msgstr "Du må vera innlogga for å bli med på ei hending"
-#: lib/graphql/resolvers/participant.ex:225
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:225
msgid "You need to be logged-in to leave an event"
msgstr "Du må vera innlogga for å melda deg av ei hending"
-#: lib/graphql/resolvers/event.ex:341
#, elixir-format
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Du må vera innlogga for å oppdatera hendingar"
-#: lib/graphql/resolvers/post.ex:180
#, elixir-format
+#: lib/graphql/resolvers/post.ex:180
msgid "You need to be logged-in to update posts"
msgstr "Du må vera innlogga for å oppdatera innlegg"
-#: lib/graphql/resolvers/resource.ex:173
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Du må vera innlogga for å oppdatera ressursar"
-#: lib/graphql/resolvers/resource.ex:232
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Du må vera innlogga for å førehandsvisa ressursar"
-#: lib/graphql/resolvers/resource.ex:128
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "Opphavsressursen høyrer ikkje til denne gruppa"
-#: lib/mobilizon/users/user.ex:113
#, elixir-format
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "Dette passordet er for kort."
-#: lib/mobilizon/users/user.ex:141
#, elixir-format
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"Registreringsteiknet er allereie i bruk, dette ser ut som ein feil frå vår "
"side."
-#: lib/mobilizon/users/user.ex:108
#, elixir-format
+#: lib/mobilizon/users/user.ex:108
msgid "This email is already used."
msgstr "Denne eposten er allereie i bruk."
-#: lib/graphql/error.ex:97
#, elixir-format
+#: lib/graphql/error.ex:97
msgid "Post not found"
msgstr "Fann ikkje innlegget"
-#: lib/graphql/error.ex:84
#, elixir-format
+#: lib/graphql/error.ex:84
msgid "Invalid arguments passed"
msgstr "Ugyldige argument"
-#: lib/graphql/error.ex:90
#, elixir-format
+#: lib/graphql/error.ex:90
msgid "Invalid credentials"
msgstr "Ugyldig innlogging"
-#: lib/graphql/error.ex:88
#, elixir-format
+#: lib/graphql/error.ex:88
msgid "Reset your password to login"
msgstr "Nullstill passordet for å logga inn"
-#: lib/graphql/error.ex:95 lib/graphql/error.ex:100
#, elixir-format
+#: lib/graphql/error.ex:95 lib/graphql/error.ex:100
msgid "Resource not found"
msgstr "Fann ikkje ressursen"
-#: lib/graphql/error.ex:102
#, elixir-format
+#: lib/graphql/error.ex:102
msgid "Something went wrong"
msgstr "Noko gjekk gale"
-#: lib/graphql/error.ex:83
#, elixir-format
+#: lib/graphql/error.ex:83
msgid "Unknown Resource"
msgstr "Ukjend ressurs"
-#: lib/graphql/error.ex:93
#, elixir-format
+#: lib/graphql/error.ex:93
msgid "You don't have permission to do this"
msgstr "Du har ikkje løyve til å gjera detet"
-#: lib/graphql/error.ex:85
#, elixir-format
+#: lib/graphql/error.ex:85
msgid "You need to be logged in"
msgstr "Du må vera innlogga"
-#: lib/graphql/resolvers/member.ex:116
#, elixir-format
+#: lib/graphql/resolvers/member.ex:116
msgid "You can't accept this invitation with this profile."
msgstr "Du kan ikkje ta imot invitasjonar med denne profilen."
-#: lib/graphql/resolvers/member.ex:137
#, elixir-format
+#: lib/graphql/resolvers/member.ex:137
msgid "You can't reject this invitation with this profile."
msgstr "Du kan ikkje avslå invitasjonen med denne profilen."
-#: lib/graphql/resolvers/media.ex:71
#, elixir-format
+#: lib/graphql/resolvers/media.ex:71
msgid "File doesn't have an allowed MIME type."
msgstr "Fila har ingen tillaten MIME-type."
-#: lib/graphql/resolvers/group.ex:195
#, elixir-format
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "Profilen er ikkje administrator for gruppa"
-#: lib/graphql/resolvers/event.ex:330
#, elixir-format
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Du kan ikkje endra denne hendinga."
-#: lib/graphql/resolvers/event.ex:333
#, elixir-format
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Du kan ikkje kopla denne hendinga til denne profilen."
-#: lib/graphql/resolvers/member.ex:140
#, elixir-format
+#: lib/graphql/resolvers/member.ex:140
msgid "This invitation doesn't exist."
msgstr "Invitasjonen finst ikkje."
-#: lib/graphql/resolvers/member.ex:185
#, elixir-format
+#: lib/graphql/resolvers/member.ex:185
msgid "This member already has been rejected."
msgstr "Denne medlemen har allereie fått avslag."
-#: lib/graphql/resolvers/member.ex:192
#, elixir-format
+#: lib/graphql/resolvers/member.ex:192
msgid "You don't have the right to remove this member."
msgstr "Du har ikkje løyve til å fjerna denne medlemen."
-#: lib/mobilizon/actors/actor.ex:349
#, elixir-format
+#: lib/mobilizon/actors/actor.ex:349
msgid "This username is already taken."
msgstr "Dette brukarnamnet er oppteke."
-#: lib/graphql/resolvers/discussion.ex:87
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:87
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
"Du må gje anten ein ID eller ei stuttadresse for å få tilgang til ordskiftet"
-#: lib/graphql/resolvers/event.ex:284
#, elixir-format
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "Brukaren eig ikkje arrangørprofilen"
-#: lib/graphql/resolvers/participant.ex:93
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:93
msgid "Profile ID provided is not the anonymous profile one"
msgstr "Denne profil-IDen er ikkje den anonyme profilen"
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
-#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
#, elixir-format
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
+#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "Dette biletet er for stort"
-#: lib/web/views/utils.ex:34
#, elixir-format
+#: lib/web/views/utils.ex:34
msgid "Index file not found. You need to recompile the front-end."
msgstr "Fann ikkje indeksfila. Du må kompilera framsida på nytt."
-#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Greidde ikkje laga ressursen"
-#: lib/graphql/resolvers/user.ex:479
#, elixir-format
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "Ugyldig aktiveringslykjel"
-#: lib/graphql/resolvers/resource.ex:222
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "Greidde ikkje henta ressursdetaljane frå denne adressa."
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
#, elixir-format
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Moderatorprofilen har ikkje tilgang til denne hendinga"
-#: lib/graphql/resolvers/event.ex:278
#, elixir-format
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
"Organisatoren har ikkje løyve til å laga hendingar på vegner av denne gruppa"
-#: lib/graphql/resolvers/event.ex:321
#, elixir-format
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
"Denne profilen har ikkje løyve til å oppdatera hendingar på vegner av denne "
"gruppa"
-#: lib/graphql/resolvers/user.ex:163
#, elixir-format
+#: lib/graphql/resolvers/user.ex:163
msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
msgstr ""
"Eposten din er nekta å registrera seg, eller bruker ein epostvert me ikkje "
"godtek"
-#: lib/graphql/resolvers/comment.ex:128
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Fann ikkje hendinga"
-#: lib/graphql/resolvers/discussion.ex:129
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:129
msgid "Error while creating a discussion"
msgstr "Greidde ikkje laga ressursen"
-#: lib/graphql/resolvers/user.ex:602
#, elixir-format
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Greidde ikkje oppdatera rapporten"
-#: lib/graphql/resolvers/person.ex:307
#, elixir-format
+#: lib/graphql/resolvers/person.ex:307
msgid "Error while uploading pictures"
msgstr "Greidde ikkje oppdatera rapporten"
-#: lib/graphql/resolvers/participant.ex:190
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:190
msgid "Failed to leave the event"
msgstr "Greidde ikkje forlata hendinga"
-#: lib/graphql/resolvers/group.ex:191
#, elixir-format
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr "Greidde ikkje oppdatera gruppa"
-#: lib/graphql/resolvers/user.ex:456
#, elixir-format
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr "Greidde ikkje oppdatera epostadressa til brukaren"
-#: lib/graphql/resolvers/user.ex:475
#, elixir-format
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Greier ikkje godkjenna brukaren"
-#: lib/graphql/resolvers/participant.ex:146
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:146
msgid "The anonymous actor ID is invalid"
msgstr "ID-en til den anonyme brukaren er ugyldig"
-#: lib/graphql/resolvers/resource.ex:161
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr "Det var ein ukjend feil då ressursen vart oppdatert"
-#: lib/graphql/resolvers/comment.ex:84
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:84
msgid "You are not the comment creator"
msgstr "Du har ikkje skrive denne kommentaren"
-#: lib/graphql/resolvers/user.ex:404
#, elixir-format
+#: lib/graphql/resolvers/user.ex:404
msgid "You cannot change your password."
msgstr "Du kan ikkje endra passordet ditt."
-#: lib/graphql/resolvers/participant.ex:310
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr "Formatet er ikkje støtta"
-#: lib/graphql/resolvers/participant.ex:322
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
"Eit program som trengst for å eksportera til %{format} er ikkje installert"
-#: lib/graphql/resolvers/participant.ex:330
#, elixir-format
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr "Det var ein feil då eksporten vart lagra"
-#: lib/web/controllers/export_controller.ex:30
#, elixir-format
+#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr "Du kan ikkje eksportera til %{format} på denne nettstaden"
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr "Det var ein ukjend feil då ressursen vart oppdatert"
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/oc/LC_MESSAGES/default.po b/priv/gettext/oc/LC_MESSAGES/default.po
index 38a83149..607b095c 100644
--- a/priv/gettext/oc/LC_MESSAGES/default.po
+++ b/priv/gettext/oc/LC_MESSAGES/default.po
@@ -344,12 +344,12 @@ msgid "What information do we collect?"
msgstr "Quinas informacions reculem ?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon sus %{instance} : confirmatz vòstra adreça electronica"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon sus %{instance} : adreça electronica cambiada"
@@ -407,7 +407,7 @@ msgid "View the event on: %{link}"
msgstr "Veire l’eveniment actualizat sus : %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} vos a convidat a rejónher lo grop %{group}"
@@ -1142,7 +1142,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Vos an tirat del grop %{group}"
@@ -1191,7 +1191,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Lo grop %{group} foguèt suspendut sus %{instance}"
@@ -1454,17 +1454,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1489,7 +1489,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/oc/LC_MESSAGES/errors.po b/priv/gettext/oc/LC_MESSAGES/errors.po
index 23137d30..5f8da115 100644
--- a/priv/gettext/oc/LC_MESSAGES/errors.po
+++ b/priv/gettext/oc/LC_MESSAGES/errors.po
@@ -100,28 +100,28 @@ msgid "Cannot refresh the token"
msgstr "Actualizacion impossibla del geton"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Lo perfil actual es pas un membre d’aqueste grop"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Lo perfil actual es pas administrator del grop seleccionat"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Error en salvagardant los paramètres utilizaire"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Grop pas trobat"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Grop amb l’ID %{id} pas trobat"
@@ -133,7 +133,7 @@ msgstr ""
"invalid."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Membre pas trobat"
@@ -170,12 +170,12 @@ msgid "The current password is invalid"
msgstr "Lo mòt de santa clara actuau es invalid"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "Lo email nau sèm invalid"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "Lo email nau deb esser different"
@@ -185,8 +185,8 @@ msgid "The new password must be different"
msgstr "Lo mòt de santa clara nau deb esser different"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "Lo mòt de santa clara aprovedit es invalid"
@@ -213,37 +213,37 @@ msgid "Unable to validate user"
msgstr "Es impossible de validar l'utilizator"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "Utilizator déjà desactivat"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "L'utilizator demandat es pas conectat"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Essetz déjà membre d'aquest grop"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "Podetz pas quitar aquest grop perque essetz lo sol administrator"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Podetz pas rejónher aquest grop"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Podetz listar los grops sonque se essetz moderator."
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Debetz esser conectat per cambiar lo voste email"
@@ -253,27 +253,27 @@ msgid "You need to be logged-in to change your password"
msgstr "Debetz d'esser conectat per cambiar lo voste mòt de santa clara"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Debetz d'esser conectat per suprimir un grop"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Devetz d'esser conectat per suprimir lo voste compte"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Devetz d'esser conectat per rejónher un grop"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Devetz d'esser conectat per quitar un grop"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Devetz d'esser conectat per metre à jorn un grop"
@@ -350,7 +350,7 @@ msgid "Cannot remove the last identity of a user"
msgstr "Pòden pas suprimir la darrièra identitat d'un utilizator"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Comentari déjà suprimit"
@@ -375,15 +375,15 @@ msgid "Event id not found"
msgstr "ID d'eveniment non trobat"
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Eveniment non trobat"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "Un eveniment d'amb aquesta ID %{id} existís pas"
@@ -451,8 +451,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -469,7 +469,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -479,7 +479,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -540,7 +540,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -566,12 +566,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -631,7 +631,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -646,12 +646,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -661,7 +661,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -676,7 +676,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -686,27 +686,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -776,17 +776,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -816,7 +816,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -826,7 +826,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -837,33 +837,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Error mentre que sauvant lo rapòrt"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -873,7 +873,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Eveniment non trobat"
@@ -883,7 +883,7 @@ msgid "Error while creating a discussion"
msgstr "Error mentre que sauvant lo rapòrt"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Error mentre la mesa a jorn dèu rapòrt"
@@ -898,17 +898,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Es impossible de validar l'utilizator"
@@ -918,7 +918,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -933,17 +933,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -951,3 +951,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/pl/LC_MESSAGES/default.po b/priv/gettext/pl/LC_MESSAGES/default.po
index f7d9f93d..453673cd 100644
--- a/priv/gettext/pl/LC_MESSAGES/default.po
+++ b/priv/gettext/pl/LC_MESSAGES/default.po
@@ -343,12 +343,12 @@ msgid "What information do we collect?"
msgstr "Jakie informacje zbieramy?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon na %{instance}: potwierdź swój adres e-mail"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon na %{instance}: zmieniono e-mail"
@@ -409,7 +409,7 @@ msgid "View the event on: %{link}"
msgstr "Zobacz zaktualizowane wydarzenie na %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "Dostałeś(-aś) zaproszenie od %{inviter}, aby dołączyć do grupy %{group}"
@@ -1151,7 +1151,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Zostałeś(-aś) usunięty(-a) z grupy %{group}"
@@ -1204,7 +1204,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Grupa %{group} została zawieszona na %{instance}"
@@ -1468,17 +1468,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1503,7 +1503,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Serwer Mobilizon wydaje się tymczasowo nie działać."
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/pl/LC_MESSAGES/errors.po b/priv/gettext/pl/LC_MESSAGES/errors.po
index 056c450a..05089666 100644
--- a/priv/gettext/pl/LC_MESSAGES/errors.po
+++ b/priv/gettext/pl/LC_MESSAGES/errors.po
@@ -107,28 +107,28 @@ msgid "Cannot refresh the token"
msgstr "Nie można odświeżyć tokenu"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Obency profil nie jest członkiem tej grupy"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Obecny profil nie jest administratorem zaznaczonej grupy"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Błąd zapisywania ustawień użytkownika"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Nie odnaleziono grupy"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Nie odnaleziono grupy o ID %{id}"
@@ -139,7 +139,7 @@ msgstr ""
"Nie udało się uwierzytelnić. Adres e-mail bądź hasło jest nieprawidłowe."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Nie odnaleziono użytkownika"
@@ -177,12 +177,12 @@ msgid "The current password is invalid"
msgstr "Obecne hasło jest nieprawidłowe"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "Nowy adres e-mail nie wydaje się być prawidłowy"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "Nowy adres e-mail musi się różnić od obecnego"
@@ -192,8 +192,8 @@ msgid "The new password must be different"
msgstr "Nowe hasło musi różnić się od obecnego"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "Wprowadzone hasło jest nieprawidłowe"
@@ -220,38 +220,38 @@ msgid "Unable to validate user"
msgstr "Nie udało się zwalidować użytkownika"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "Użytkownik jest już wyłączony"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "Żądany użytkownik nie jest zalogowany"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Już jesteś członkiem tej grupy"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
"Nie możesz opuścić tej grupy, ponieważ jesteś jej jedynym administratorem"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Nie możesz dołączyć do tej grupy"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Nie masz dostępu do listy grup, jeżeli nie jesteś moderatorem."
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr "Musisz być zalogowany(-a), aby zmienić adres e-mail"
@@ -261,27 +261,27 @@ msgid "You need to be logged-in to change your password"
msgstr "Musisz być zalogowany(-a), aby zmienić hasło"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Musisz być zalogowany(-a), aby usunąć grupę"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Musisz być zalogowany(-a), aby usunąć konto"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Musisz być zalogowany(-a), aby dołączyć do grupy"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Musisz być zalogowany(-a), aby opuścić grupę"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Musisz być zalogowany(-a), aby zaktualizować grupę"
@@ -357,7 +357,7 @@ msgid "Cannot remove the last identity of a user"
msgstr "Nie można usunąć jedynej tożsamości użytkownika"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Komentarz jest już usunięty"
@@ -382,15 +382,15 @@ msgid "Event id not found"
msgstr "Nie znaleziono id wydarzenia"
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Nie znaleziono wydarzenia"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "Wydarzenie o ID %{id} nie istnieje"
@@ -458,8 +458,8 @@ msgstr "Profil jest już członkiem tej grupy"
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -476,7 +476,7 @@ msgid "Report not found"
msgstr "Nie znaleziono zgłoszenia"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "Zasób nie istnieje"
@@ -486,7 +486,7 @@ msgid "The event has already reached its maximum capacity"
msgstr "Wydarzenie już przekroczyło maksymalną zasobność"
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Ten token jest nieprawidłowy"
@@ -547,7 +547,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -575,12 +575,12 @@ msgstr ""
"administratorem"
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Nie możesz usunąć tego komentarza"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Nie możesz usunąć tego wydarzenia"
@@ -646,7 +646,7 @@ msgid "You need to be logged-in to access resources"
msgstr "Musisz być zalogowany(-a), aby uzyskać dostęp do zasobów"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr "Musisz być zalogowany(-a), aby móc utworzyć wydarzenia"
@@ -661,12 +661,12 @@ msgid "You need to be logged-in to create reports"
msgstr "Musisz być zalogowany(-a), aby utworzyć zgłoszenie"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Musisz być zalogowany(-a), aby utworzyć zasób"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr "Musisz być zalogowany(-a), aby usunąć wydarzenie"
@@ -676,7 +676,7 @@ msgid "You need to be logged-in to delete posts"
msgstr "Musisz być zalogowany(-a), aby usunąć wpis"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Musisz być zalogowany(-a), aby usunąć zasób"
@@ -691,7 +691,7 @@ msgid "You need to be logged-in to leave an event"
msgstr "Musisz być zalogowany(-a), aby opuścić wydarzenie"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Musisz być zalogowany(-a), aby zaktualizować wydarzenie"
@@ -701,27 +701,27 @@ msgid "You need to be logged-in to update posts"
msgstr "Musisz być zalogowany(-a), aby zaktualizować wpis"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Musisz być zalogowany(-a), aby zaktualizować zasób"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Musisz być zalogowany(-a), aby zobaczyć podgląd zasobu"
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "Nadrzędny zasób nie należy do tej grupy"
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "Wybrane hasło jest zbyt krótkie"
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"Token rejestracyjny jest już w użyciu, to wygląda na problem po naszej "
@@ -793,17 +793,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr "Plik nie ma dozwolonego typu MIME."
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "Profil nie jest administratorem grupy"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Nie możesz edytować tego wydarzenia."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Nie możesz przypisać tego wydarzenia do tego profilu."
@@ -833,7 +833,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -843,7 +843,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -854,33 +854,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Wystąpił błąd podczas zapisywania zgłoszenia"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Wskazany profil moderatora nie ma uprawnień dla tego wydarzenia"
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -890,7 +890,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Nie znaleziono wydarzenia"
@@ -900,7 +900,7 @@ msgid "Error while creating a discussion"
msgstr "Wystąpił błąd podczas zapisywania zgłoszenia"
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Wystąpił błąd podczas aktualizacji zgłoszenia"
@@ -915,17 +915,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Nie udało się zwalidować użytkownika"
@@ -935,7 +935,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -950,17 +950,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -968,3 +968,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/pt/LC_MESSAGES/default.po b/priv/gettext/pt/LC_MESSAGES/default.po
index a1621f6b..6ba33b2c 100644
--- a/priv/gettext/pt/LC_MESSAGES/default.po
+++ b/priv/gettext/pt/LC_MESSAGES/default.po
@@ -310,12 +310,12 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
@@ -373,7 +373,7 @@ msgid "View the event on: %{link}"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1046,7 +1046,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1089,7 +1089,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1349,17 +1349,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1384,7 +1384,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/pt/LC_MESSAGES/errors.po b/priv/gettext/pt/LC_MESSAGES/errors.po
index f1a3195e..8c0d7db6 100644
--- a/priv/gettext/pt/LC_MESSAGES/errors.po
+++ b/priv/gettext/pt/LC_MESSAGES/errors.po
@@ -93,28 +93,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -124,7 +124,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -161,12 +161,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -176,8 +176,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -202,37 +202,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -242,27 +242,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -338,7 +338,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -363,15 +363,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -439,8 +439,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -457,7 +457,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -467,7 +467,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -528,7 +528,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -554,12 +554,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -619,7 +619,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -634,12 +634,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -649,7 +649,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -664,7 +664,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -674,27 +674,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -764,17 +764,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -804,7 +804,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -814,7 +814,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -825,33 +825,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -861,7 +861,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -871,7 +871,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -886,17 +886,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -906,7 +906,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -921,17 +921,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -939,3 +939,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/pt_BR/LC_MESSAGES/default.po b/priv/gettext/pt_BR/LC_MESSAGES/default.po
index 723e3a9b..b844b59d 100644
--- a/priv/gettext/pt_BR/LC_MESSAGES/default.po
+++ b/priv/gettext/pt_BR/LC_MESSAGES/default.po
@@ -356,12 +356,12 @@ msgid "What information do we collect?"
msgstr "Quais informações coletamos?"
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon da instância %{instance}: confirma seu endereço de email"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon da instância %{instance}: email alterado"
@@ -419,7 +419,7 @@ msgid "View the event on: %{link}"
msgstr "Veja o evento atualizado em: %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
@@ -1123,7 +1123,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1166,7 +1166,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1461,17 +1461,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1496,7 +1496,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/pt_BR/LC_MESSAGES/errors.po b/priv/gettext/pt_BR/LC_MESSAGES/errors.po
index d124e271..990efd01 100644
--- a/priv/gettext/pt_BR/LC_MESSAGES/errors.po
+++ b/priv/gettext/pt_BR/LC_MESSAGES/errors.po
@@ -93,28 +93,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr ""
@@ -124,7 +124,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -161,12 +161,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -176,8 +176,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -202,37 +202,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -242,27 +242,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -338,7 +338,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -363,15 +363,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -439,8 +439,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -457,7 +457,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -467,7 +467,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -528,7 +528,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -554,12 +554,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -619,7 +619,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -634,12 +634,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -649,7 +649,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -664,7 +664,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -674,27 +674,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -764,17 +764,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -804,7 +804,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -814,7 +814,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -825,33 +825,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -861,7 +861,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -871,7 +871,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -886,17 +886,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -906,7 +906,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -921,17 +921,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -939,3 +939,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/ru/LC_MESSAGES/default.po b/priv/gettext/ru/LC_MESSAGES/default.po
index b9cac47d..6530c8d3 100644
--- a/priv/gettext/ru/LC_MESSAGES/default.po
+++ b/priv/gettext/ru/LC_MESSAGES/default.po
@@ -35,29 +35,27 @@ msgstr "Активировать мою учётную запись"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.text.eex:9
-#, elixir-format
msgid "Ask the community on Framacolibri"
msgstr "Обратиться к сообществу на Framacolibri"
-#: lib/web/templates/email/report.text.eex:15
#, elixir-format
+#: lib/web/templates/email/report.text.eex:15
msgid "Comments"
msgstr "Комментарии"
#, elixir-format
#: lib/web/templates/email/report.html.heex:72
#: lib/web/templates/email/report.text.eex:11
-#, elixir-format
msgid "Event"
msgstr "Мероприятие"
-#: lib/web/email/user.ex:48
#, elixir-format
+#: lib/web/email/user.ex:48
msgid "Instructions to reset your password on %{instance}"
msgstr "Инструкции по сбросу пароля на %{instance}"
-#: lib/web/templates/email/report.text.eex:21
#, elixir-format
+#: lib/web/templates/email/report.text.eex:21
msgid "Reason"
msgstr "Причина"
@@ -73,77 +71,75 @@ msgstr ""
"Сбросить пароль легко. Просто нажмите на кнопку ниже и следуйте инструкциям. "
"Это быстро."
-#: lib/web/email/user.ex:28
#, elixir-format
+#: lib/web/email/user.ex:28
msgid "Instructions to confirm your Mobilizon account on %{instance}"
msgstr "Инструкции по подтверждению учётной записи Mobilizon на %{instance}"
-#: lib/web/email/admin.ex:24
#, elixir-format
+#: lib/web/email/admin.ex:24
msgid "New report on Mobilizon instance %{instance}"
msgstr "Новый отчёт на Mobilizon узле %{instance}"
#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:51
#: lib/web/templates/email/before_event_notification.text.eex:4
-#, elixir-format
msgid "Go to event page"
msgstr "Перейти на страницу мероприятия"
-#: lib/web/templates/email/report.text.eex:1
#, elixir-format
+#: lib/web/templates/email/report.text.eex:1
msgid "New report from %{reporter} on %{instance}"
msgstr "Новый отчёт от %{reporter} на %{instance}"
-#: lib/web/templates/email/event_participation_approved.text.eex:1
#, elixir-format
+#: lib/web/templates/email/event_participation_approved.text.eex:1
msgid "Participation approved"
msgstr "Участие одобрено"
#, elixir-format
#: lib/web/templates/email/password_reset.html.heex:13
#: lib/web/templates/email/password_reset.text.eex:1
-#, elixir-format
msgid "Password reset"
msgstr "Сброс пароля"
-#: lib/web/templates/email/password_reset.text.eex:7
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:7
msgid "Resetting your password is easy. Just click the link below and follow the instructions. We'll have you up and running in no time."
msgstr ""
"Сбросить пароль легко. Просто нажмите на ссылку ниже и следуйте инструкциям. "
"Это быстро."
-#: lib/web/templates/email/registration_confirmation.text.eex:5
#, elixir-format
+#: lib/web/templates/email/registration_confirmation.text.eex:5
msgid "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email."
msgstr ""
"Вы создали аккаунт на% {host}, используя этот адрес электронной почты. Вы в "
"одном клике от его активации. Если это сделали не вы, просто проигнорируйте "
"это письмо."
-#: lib/web/email/participation.ex:108
#, elixir-format
+#: lib/web/email/participation.ex:108
msgid "Your participation to event %{title} has been approved"
msgstr "Ваше участие в мероприятии %{title} было одобрено"
-#: lib/web/email/participation.ex:68
#, elixir-format
+#: lib/web/email/participation.ex:68
msgid "Your participation to event %{title} has been rejected"
msgstr "Ваш запрос на участие в %{title} был отклонен"
-#: lib/web/email/event.ex:36
#, elixir-format
+#: lib/web/email/event.ex:36
msgid "Event %{title} has been updated"
msgstr "Мероприятие %{title} было обновлено"
-#: lib/web/templates/email/event_updated.text.eex:15
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:15
msgid "New title: %{title}"
msgstr "Новый заголовок: %{title}"
-#: lib/web/templates/email/password_reset.text.eex:5
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:5
msgid "You requested a new password for your account on %{instance}."
msgstr "Вы запросили новый пароль для своей учетной записи на %{instance}."
@@ -152,8 +148,8 @@ msgstr "Вы запросили новый пароль для своей уче
msgid "Warning"
msgstr "Предупреждение"
-#: lib/web/email/participation.ex:131
#, elixir-format
+#: lib/web/email/participation.ex:131
msgid "Confirm your participation to event %{title}"
msgstr "Подтвердите свое участие в мероприятии %{title}"
@@ -358,18 +354,18 @@ msgctxt "terms"
msgid "What information do we collect?"
msgstr "Какую информацию мы собираем?"
-#: lib/web/email/user.ex:177
#, elixir-format
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon на %{instance}: подтвердите свой адрес электронной почты"
-#: lib/web/email/user.ex:154
#, elixir-format
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon на %{instance}: адрес электронной почты изменен"
-#: lib/web/email/notification.ex:49
#, elixir-format
+#: lib/web/email/notification.ex:49
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] "Сегодня запланировано одно мероприятие"
@@ -379,34 +375,31 @@ msgstr[2] "Сегодня запланировано %{nb_events} меропри
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
-#, elixir-format
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "У вас сегодня одно мероприятие:"
msgstr[1] "У вас сегодня %{total} мероприятия:"
msgstr[2] "У вас сегодня %{total} мероприятий:"
-#: lib/web/templates/email/group_invite.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_invite.text.eex:3
msgid "%{inviter} just invited you to join their group %{group}"
msgstr "%{inviter} только что пригласил вас присоединиться к их группе %{group}"
#, elixir-format
#: lib/web/templates/email/group_invite.html.heex:13
#: lib/web/templates/email/group_invite.text.eex:1
-#, elixir-format
msgid "Come along!"
msgstr "Присоединяйтесь к нам!"
-#: lib/web/email/notification.ex:24
#, elixir-format
+#: lib/web/email/notification.ex:24
msgid "Don't forget to go to %{title}"
msgstr "Не забудь об участии в %{title}"
#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:38
#: lib/web/templates/email/before_event_notification.text.eex:3
-#, elixir-format
msgid "Get ready for %{title}"
msgstr "Будь готов к %{title}"
@@ -418,30 +411,29 @@ msgstr "Посмотреть мои группы"
#, elixir-format
#: lib/web/templates/email/group_invite.html.heex:45
#: lib/web/templates/email/group_invite.text.eex:5
-#, elixir-format
msgid "To accept this invitation, head over to your groups."
msgstr "Чтобы принять это приглашение, зайдите в свои группы."
-#: lib/web/templates/email/before_event_notification.text.eex:5
#, elixir-format
+#: lib/web/templates/email/before_event_notification.text.eex:5
msgid "View the event on: %{link}"
msgstr "Посмотреть мероприятие на: %{link}"
-#: lib/web/email/group.ex:33
#, elixir-format
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{Inviter} пригласил вас присоединиться к группе %{group}"
-#: lib/web/email/notification.ex:75
#, elixir-format
+#: lib/web/email/notification.ex:75
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] "На этой неделе запланировано одно мероприятие"
msgstr[1] "На этой неделе запланировано %{nb_events} мероприятия"
msgstr[2] "На этой неделе запланировано %{nb_events} мероприятий"
-#: lib/web/email/notification.ex:98
#, elixir-format
+#: lib/web/email/notification.ex:98
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] "Одна заявка на участие в мероприятии %{title} ожидает одобрения"
@@ -455,15 +447,14 @@ msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:38
#: lib/web/templates/email/notification_each_week.text.eex:3
-#, elixir-format
msgid "You have one event this week:"
msgid_plural "You have %{total} events this week:"
msgstr[0] "У вас одно мероприятие на этой неделе:"
msgstr[1] "На этой неделе у вас запланировано %{total} мероприятия:"
msgstr[2] "На этой неделе у вас запланировано %{total} мероприятий:"
-#: lib/service/metadata/utils.ex:53
#, elixir-format
+#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "Организатор мероприятия не добавил описания."
@@ -898,12 +889,11 @@ msgstr "Подтвердите мой адрес электронной почт
#, elixir-format
#: lib/web/templates/email/anonymous_participation_confirmation.html.heex:13
#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:1
-#, elixir-format
msgid "Confirm your e-mail"
msgstr "Подтвердите ваш адрес электронной почты"
-#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:3
#, elixir-format
+#: lib/web/templates/email/anonymous_participation_confirmation.text.eex:3
msgid "Hi there! You just registered to join this event: « %{title} ». Please confirm the e-mail address you provided:"
msgstr ""
"Привет! Вы только что зарегистрировались, чтобы присоединиться к мероприятию:"
@@ -913,7 +903,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.text.eex:8
-#, elixir-format
msgid "Need help? Is something not working as expected?"
msgstr "Нужна помощь? Что-то не работает?"
@@ -941,8 +930,8 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
"Вы запросили новый пароль для своей учетной записи на %{instance}."
-#: lib/web/templates/email/email.text.eex:5
#, elixir-format
+#: lib/web/templates/email/email.text.eex:5
msgid "Please do not use it for real purposes."
msgstr "Пожалуйста, используйте это только для тестовых целей."
@@ -952,7 +941,6 @@ msgstr "Пожалуйста, используйте это только для
#: lib/web/templates/email/event_updated.text.eex:24 lib/web/templates/email/notification_each_week.html.heex:70
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:70
#: lib/web/templates/email/on_day_notification.text.eex:14
-#, elixir-format
msgid "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgid_plural "Would you wish to cancel your attendance to one or several events, visit the event pages through the links above and click the « Attending » button."
msgstr[0] ""
@@ -970,7 +958,6 @@ msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
-#, elixir-format
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] "У вас есть ожидающий рассмотрения запрос на участие:"
@@ -981,8 +968,8 @@ msgstr[2] ""
"У вас есть %{number_participation_requests} ожидающих рассмотрения запросов "
"на участие:"
-#: lib/web/templates/email/email.text.eex:11
#, elixir-format
+#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} работает на платформе Mobilizon."
@@ -994,21 +981,18 @@ msgstr "%{instance} работает на платформе Mobilizon."
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:13
#: lib/web/templates/email/pending_participation_notification.text.eex:1
-#, elixir-format
msgid "A request is pending!"
msgstr "Заявка находится на рассмотрении!"
#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:13
#: lib/web/templates/email/before_event_notification.text.eex:1
-#, elixir-format
msgid "An event is upcoming!"
msgstr "Скоро начало мероприятия!"
#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:13
#: lib/web/templates/email/email_changed_new.text.eex:1
-#, elixir-format
msgid "Confirm new email"
msgstr "Подтвердите новый адрес электронной почты"
@@ -1017,15 +1001,14 @@ msgstr "Подтвердите новый адрес электронной по
msgid "End"
msgstr "Конец"
-#: lib/web/templates/email/event_updated.text.eex:21
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Конец %{ends_on}"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
-#, elixir-format
msgid "Event update!"
msgstr "Мероприятие обновлено!"
@@ -1037,7 +1020,6 @@ msgstr "Помеченные комментарии"
#, elixir-format
#: lib/web/templates/email/event_participation_approved.html.heex:45
#: lib/web/templates/email/event_participation_approved.text.eex:7
-#, elixir-format
msgid "Good news: one of the event organizers just approved your request. Update your calendar, because you're on the guest list now!"
msgstr ""
"Хорошие новости: один из организаторов мероприятия только что одобрил вашу "
@@ -1046,7 +1028,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:38
#: lib/web/templates/email/email_changed_new.text.eex:3
-#, elixir-format
msgid "Hi there! It seems like you wanted to change the email address linked to your account on %{instance}. If you still wish to do so, please click the button below to confirm the change. You will then be able to log in to %{instance} with this new email address."
msgstr ""
"Привет! Похоже, вы хотели изменить адрес электронной почты, связанный с "
@@ -1054,8 +1035,8 @@ msgstr ""
"это, нажмите кнопку ниже, чтобы подтвердить изменение. После этого вы "
"сможете войти в %{instance} с новым адресом электронной почты."
-#: lib/web/templates/email/email_changed_old.text.eex:3
#, elixir-format
+#: lib/web/templates/email/email_changed_old.text.eex:3
msgid "Hi there! Just a quick note to confirm that the email address linked to your account on %{host} has been changed from this one to:"
msgstr ""
"Привет! Мы просто хотели сообщить вам, что адрес электронной почты, который "
@@ -1064,7 +1045,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.heex:62
#: lib/web/templates/email/email_changed_old.text.eex:5
-#, elixir-format
msgid "If you did not trigger this change yourself, it is likely that someone has gained access to your %{host} account. Please log in and change your password immediately. If you cannot login, contact the admin on %{host}."
msgstr ""
"Если вы не активировали это изменение самостоятельно, вероятно, кто-то "
@@ -1072,8 +1052,8 @@ msgstr ""
"немедленно измените свой пароль. Если вам не удается войти в систему, "
"обратитесь к администратору %{host}."
-#: lib/web/templates/email/password_reset.text.eex:12
#, elixir-format
+#: lib/web/templates/email/password_reset.text.eex:12
msgid "If you didn't trigger the change yourself, please ignore this message. Your password won't be changed until you click the link above."
msgstr ""
"Если вы не активировали это изменение самостоятельно, проигнорируйте это "
@@ -1089,7 +1069,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/before_event_notification.html.heex:63
#: lib/web/templates/email/before_event_notification.text.eex:6
-#, elixir-format
msgid "If you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button."
msgstr ""
"Если вы хотите отменить свое участие, просто перейдите на страницу "
@@ -1098,7 +1077,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.text.eex:11
-#, elixir-format
msgid "Learn more about Mobilizon here!"
msgstr "Узнайте больше о Mobilizon!"
@@ -1116,21 +1094,18 @@ msgstr "Адрес местоположения был удален"
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
-#, elixir-format
msgid "Manage pending requests"
msgstr "Управление запросами в ожидании"
#, elixir-format
#: lib/web/templates/email/registration_confirmation.html.heex:13
#: lib/web/templates/email/registration_confirmation.text.eex:1
-#, elixir-format
msgid "Nearly there!"
msgstr "Почти готово!"
#, elixir-format
#: lib/web/templates/email/email_changed_old.html.heex:13
#: lib/web/templates/email/email_changed_old.text.eex:1
-#, elixir-format
msgid "New email confirmation"
msgstr "Подтверждение нового адреса электронной почты"
@@ -1147,7 +1122,6 @@ msgstr "Кто-то на %{instance} сообщил вам о следу
#, elixir-format
#: lib/web/templates/email/event_participation_rejected.html.heex:13
#: lib/web/templates/email/event_participation_rejected.text.eex:1
-#, elixir-format
msgid "Sorry! You're not going."
msgstr "Очень жаль! Вы не будете участвовать."
@@ -1156,34 +1130,31 @@ msgstr "Очень жаль! Вы не будете участвовать."
msgid "Start"
msgstr "Начало"
-#: lib/web/templates/email/event_updated.text.eex:18
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Начало %{begins_on}"
-#: lib/web/templates/email/event_updated.text.eex:3
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:3
msgid "There have been changes for %{title} so we'd thought we'd let you know."
msgstr "В %{title} произошли изменения, поэтому мы решили сообщить вам об этом."
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:55
#: lib/web/templates/email/event_updated.text.eex:11
-#, elixir-format
msgid "This event has been cancelled by its organizers. Sorry!"
msgstr "Мероприятие отменено организаторами. Очень жаль!"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:51
#: lib/web/templates/email/event_updated.text.eex:7
-#, elixir-format
msgid "This event has been confirmed"
msgstr "Мероприятие подтверждено"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:53
#: lib/web/templates/email/event_updated.text.eex:9
-#, elixir-format
msgid "This event has yet to be confirmed: organizers will let you know if they do confirm it."
msgstr ""
"Это мероприятие еще не подтверждено: организаторы сообщат вам, если "
@@ -1192,7 +1163,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/event_participation_rejected.html.heex:45
#: lib/web/templates/email/event_participation_rejected.text.eex:7
-#, elixir-format
msgid "Unfortunately, the organizers rejected your request."
msgstr "К сожалению, организаторы отклонили ваше участие."
@@ -1206,8 +1176,8 @@ msgstr "Проверьте свой адрес электронной почты
msgid "View report"
msgstr "Смотреть отчёт"
-#: lib/web/templates/email/report.text.eex:24
#, elixir-format
+#: lib/web/templates/email/report.text.eex:24
msgid "View report:"
msgstr "Смотреть отчёт:"
@@ -1222,22 +1192,20 @@ msgstr "Посетите страницу мероприятия"
msgid "Visit the updated event page"
msgstr "Посетите обновленную страницу мероприятия"
-#: lib/web/templates/email/event_updated.text.eex:23
#, elixir-format
+#: lib/web/templates/email/event_updated.text.eex:23
msgid "Visit the updated event page: %{link}"
msgstr "Посетите обновленную страницу мероприятия: %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
-#, elixir-format
msgid "What's up this week?"
msgstr "Что будет на этой неделе?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
-#, elixir-format
msgid "What's up today?"
msgstr "Что будет сегодня?"
@@ -1245,7 +1213,6 @@ msgstr "Что будет сегодня?"
#: lib/web/templates/email/event_participation_approved.html.heex:70
#: lib/web/templates/email/event_participation_approved.text.eex:11 lib/web/templates/email/event_participation_confirmed.html.heex:70
#: lib/web/templates/email/event_participation_confirmed.text.eex:6
-#, elixir-format
msgid "Would you wish to update or cancel your attendance, simply access the event page through the link above and click on the Attending button."
msgstr ""
"Если вы хотите обновить или отменить свое участие, просто перейдите на "
@@ -1254,7 +1221,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
-#, elixir-format
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
"Вы получили это письмо, потому что выбрали получение уведомлений об "
@@ -1262,14 +1228,14 @@ msgstr ""
"изменить настройки уведомлений в настройках своей учетной записи в разделе « "
"Уведомления »."
-#: lib/web/templates/email/event_participation_rejected.text.eex:5
#, elixir-format
+#: lib/web/templates/email/event_participation_rejected.text.eex:5
msgid "You issued a request to attend %{title}."
msgstr "Вы подали заявку на участие в %{title}."
+#, elixir-format
#: lib/web/templates/email/event_participation_approved.text.eex:5
#: lib/web/templates/email/event_participation_confirmed.text.eex:3
-#, elixir-format
msgid "You recently requested to attend %{title}."
msgstr "Вы недавно подали заявку на присоединение к %{title}."
@@ -1282,7 +1248,6 @@ msgstr "Вы примете участие!"
#, elixir-format
#: lib/web/templates/email/email_changed_new.html.heex:64
#: lib/web/templates/email/email_changed_new.text.eex:5
-#, elixir-format
msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
"Если вы не активировали изменение самостоятельно, проигнорируйте это "
@@ -1296,7 +1261,6 @@ msgstr "Пожалуйста, используйте это только дл
#, elixir-format
#: lib/web/templates/email/group_member_removal.html.heex:45
#: lib/web/templates/email/group_member_removal.text.eex:5
-#, elixir-format
msgid "If you feel this is an error, you may contact the group's administrators so that they can add you back."
msgstr ""
"Если вы считаете, что это ошибка, вы можете связаться с администраторами "
@@ -1305,17 +1269,16 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/group_member_removal.html.heex:13
#: lib/web/templates/email/group_member_removal.text.eex:1
-#, elixir-format
msgid "So long, and thanks for the fish!"
msgstr "Всего хорошего, и спасибо за рыбу!"
-#: lib/web/email/group.ex:63
#, elixir-format
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr "Вас исключили из группы %{group}"
-#: lib/web/templates/email/group_member_removal.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_member_removal.text.eex:3
msgid "You have been removed from group %{group}. You will not be able to access this group's private content anymore."
msgstr ""
"Вас исключили из группы %{group}. Вы больше не сможете получить доступ к "
@@ -1338,7 +1301,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:54
#: lib/web/templates/email/group_suspension.text.eex:7
-#, elixir-format
msgid "As this group was located on another instance, it will continue to work for other instances than this one."
msgstr ""
"Поскольку эта группа находилась на другом узле, она все равно будет работать "
@@ -1347,7 +1309,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:46
#: lib/web/templates/email/group_suspension.text.eex:5
-#, elixir-format
msgid "As this group was located on this instance, all of it's data has been irretrievably deleted."
msgstr ""
"Поскольку эта группа находилась на этом узле, все её содержимое было "
@@ -1356,20 +1317,19 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/group_suspension.html.heex:13
#: lib/web/templates/email/group_suspension.text.eex:1
-#, elixir-format
msgid "The group %{group} has been suspended on %{instance}!"
msgstr "Группа %{group} заблокирована на %{instance}!"
-#: lib/web/templates/email/group_suspension.text.eex:3
#, elixir-format
+#: lib/web/templates/email/group_suspension.text.eex:3
msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group."
msgstr ""
"Команда модераторов вашего узла приняла решение приостановить работу "
"%{group_name} (%{group_address}). Вы больше не являетесь участником этой "
"группы."
-#: lib/web/email/group.ex:97
#, elixir-format
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr "Группа %{group} заблокирована на %{instance}"
@@ -1557,8 +1517,8 @@ msgstr ""
"Групповой контент, отправляется на узлы всех участников группы, если эти "
"участники находятся на отличном от этого узле."
-#: lib/web/templates/email/event_participation_confirmed.text.eex:4
#, elixir-format
+#: lib/web/templates/email/event_participation_confirmed.text.eex:4
msgid "You have confirmed your participation. Update your calendar, because you're on the guest list now!"
msgstr ""
"Вы подтвердили свое участие. Обновите свой календарь, потому что теперь вы в "
@@ -1570,8 +1530,8 @@ msgstr ""
msgid "You recently requested to attend %{title}."
msgstr "Вы недавно запросили участие в мероприятии %{title}."
-#: lib/web/email/participation.ex:88
#, elixir-format
+#: lib/web/email/participation.ex:88
msgid "Your participation to event %{title} has been confirmed"
msgstr "Ваше участие в мероприятии %{title} одобрено"
@@ -1580,8 +1540,8 @@ msgstr "Ваше участие в мероприятии %{title} одобре
msgid "%{reporter} reported the following content."
msgstr "%{reporter} сообщил о следующем содержимом."
-#: lib/web/templates/email/report.text.eex:5
#, elixir-format
+#: lib/web/templates/email/report.text.eex:5
msgid "Group %{group} was reported"
msgstr "Группа %{group} сообщила"
@@ -1590,8 +1550,8 @@ msgstr "Группа %{group} сообщила"
msgid "Group reported"
msgstr "Группа сообщила"
-#: lib/web/templates/email/report.text.eex:7
#, elixir-format
+#: lib/web/templates/email/report.text.eex:7
msgid "Profile %{profile} was reported"
msgstr "Профиль %{profile} сообщил"
@@ -1607,23 +1567,23 @@ msgstr ""
"Вы подтвердили свое участие. Обновите свой календарь, потому что теперь вы в "
"списке гостей!"
-#: lib/mobilizon/posts/post.ex:99
#, elixir-format
+#: lib/mobilizon/posts/post.ex:99
msgid "A text is required for the post"
msgstr "Для публикации требуется текст"
-#: lib/mobilizon/posts/post.ex:98
#, elixir-format
+#: lib/mobilizon/posts/post.ex:98
msgid "A title is required for the post"
msgstr "Для публикации требуется заголовок"
-#: lib/web/templates/email/instance_follow.text.eex:3
#, elixir-format
+#: lib/web/templates/email/instance_follow.text.eex:3
msgid "%{name} (%{domain}) just requested to follow your instance."
msgstr "%{name} (%{domain}) только что попросил подписаться на ваш узел."
-#: lib/web/email/follow.ex:54
#, elixir-format
+#: lib/web/email/follow.ex:54
msgid "%{name} requests to follow your instance"
msgstr "%{name} просит подписаться на ваш узел"
@@ -1635,15 +1595,15 @@ msgstr ""
"вы согласитесь, то этот узел будет получать все публичные события вашего "
"узла."
-#: lib/web/templates/email/instance_follow.text.eex:4
#, elixir-format
+#: lib/web/templates/email/instance_follow.text.eex:4
msgid "If you accept, this instance will receive all of your public events."
msgstr ""
"Если вы согласитесь, то этот узел будет получать все публичные события "
"вашего узла."
-#: lib/web/email/follow.ex:48
#, elixir-format
+#: lib/web/email/follow.ex:48
msgid "Instance %{name} (%{domain}) requests to follow your instance"
msgstr "Узел %{name} (%{domain}) просит подписаться на ваш узел"
@@ -1655,21 +1615,18 @@ msgstr "Смотри настройки федерализации"
#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:52
#: lib/web/templates/email/instance_follow.text.eex:6
-#, elixir-format
msgid "To accept this invitation, head over to the instance's admin settings."
msgstr "Чтобы принять это приглашение, перейдите в админку узла."
#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:13
#: lib/web/templates/email/instance_follow.text.eex:1
-#, elixir-format
msgid "Want to connect?"
msgstr "Вы хотите подключиться?"
#, elixir-format
#: lib/web/templates/email/instance_follow.html.heex:45
#: lib/web/templates/email/instance_follow.text.eex:5
-#, elixir-format
msgid "Note: %{name} (%{domain}) following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too."
msgstr ""
"Примечание: Подписка %{name} (%{domain}) на вас не обязательно означает, что "
@@ -1713,28 +1670,27 @@ msgstr "Сожалеем, но с нашей стороны что-то пошл
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.text.eex:4
-#, elixir-format
msgid "This is a demonstration site to test Mobilizon."
msgstr "Это демонстрационная площадка для тестирования Mobilizon."
+#, elixir-format
#: lib/service/metadata/actor.ex:67 lib/service/metadata/actor.ex:75
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
-#, elixir-format
msgid "%{name}'s feed"
msgstr "Лента %{name}"
-#: lib/service/export/feed.ex:122
#, elixir-format
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr "Лента приватных мероприятий от %{actor} на %{instance}"
-#: lib/service/export/feed.ex:117
#, elixir-format
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr "Лента публичных мероприятий от %{actor} на %{instance}"
-#: lib/service/export/feed.ex:225
#, elixir-format
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr "Лента для %{email} на %{instance}"
@@ -1762,34 +1718,33 @@ msgstr "Технические подробности"
msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr "Сервер Mobilizon %{instance} временно недоступен."
-#: lib/service/export/feed.ex:75
#, elixir-format
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr "Публичная лента для %{instance}"
-#: lib/graphql/resolvers/user.ex:298
#, elixir-format
+#: lib/graphql/resolvers/user.ex:298
msgid "The password you have choosen is too short. Please make sure your password contains at least 6 charaters."
msgstr ""
"Выбранный вами пароль слишком короткий. Пожалуйста, убедитесь, что ваш "
"пароль содержит не менее 6 символов."
-#: lib/graphql/resolvers/user.ex:304
#, elixir-format
+#: lib/graphql/resolvers/user.ex:304
msgid "The token you provided is invalid. Make sure that the URL is exactly the one provided inside the email you got."
msgstr ""
"Предоставленный вами токен недействителен. Убедитесь, что URL-адрес - именно "
"тот, который указан в полученном вами электронном письме."
-#: lib/web/email/actor.ex:44
#, elixir-format
+#: lib/web/email/actor.ex:44
msgid "Your participation to %{event} has been cancelled!"
msgstr "Ваше участие в %{event} было отменено!"
#, elixir-format
#: lib/web/templates/email/actor_suspension_participants.html.heex:38
#: lib/web/templates/email/actor_suspension_participants.text.eex:3
-#, elixir-format
msgid "Your instance's moderation team has decided to suspend %{actor_name} (%{actor_address}). All of their events have been removed and your participation to event %{event} cancelled."
msgstr ""
"Команда модераторов вашего узла приняла решение приостановить работу "
@@ -1807,7 +1762,6 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/actor_suspension_participants.html.heex:13
#: lib/web/templates/email/actor_suspension_participants.text.eex:1
-#, elixir-format
msgid "Your participation to %{event} on %{instance} has been cancelled!"
msgstr "Ваше участие в %{event} на %{instance} было отменено!"
diff --git a/priv/gettext/ru/LC_MESSAGES/errors.po b/priv/gettext/ru/LC_MESSAGES/errors.po
index 6ff34d89..439eb4a3 100644
--- a/priv/gettext/ru/LC_MESSAGES/errors.po
+++ b/priv/gettext/ru/LC_MESSAGES/errors.po
@@ -101,240 +101,240 @@ msgstr "должно быть больше или равно %{number}"
msgid "must be equal to %{number}"
msgstr "должно быть равно %{number}"
-#: lib/graphql/resolvers/user.ex:107
#, elixir-format
+#: lib/graphql/resolvers/user.ex:107
msgid "Cannot refresh the token"
msgstr "Токен не может быть обновлен"
-#: lib/graphql/resolvers/group.ex:227
#, elixir-format
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Текущий профиль не является участником этой группы"
-#: lib/graphql/resolvers/group.ex:231
#, elixir-format
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Текущий профиль не является администратором выбранной группы"
-#: lib/graphql/resolvers/user.ex:588
#, elixir-format
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Ошибка при сохранении пользовательских настроек"
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
#, elixir-format
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Группа не найдена"
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
#, elixir-format
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Группа с ID %{id} не найдена"
-#: lib/graphql/resolvers/user.ex:85
#, elixir-format
+#: lib/graphql/resolvers/user.ex:85
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
"Не удалось пройти аутентификацию. Неверный адрес электронной почты или "
"пароль."
-#: lib/graphql/resolvers/group.ex:290
#, elixir-format
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Участник не найден"
-#: lib/graphql/resolvers/actor.ex:94
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:94
msgid "No profile found for the moderator user"
msgstr "Профиль модератора не найден"
-#: lib/graphql/resolvers/user.ex:253
#, elixir-format
+#: lib/graphql/resolvers/user.ex:253
msgid "No user to validate with this email was found"
msgstr ""
"Не найдено ни одного пользователя для подтверждения с этим адресом "
"электронной почты"
-#: lib/graphql/resolvers/person.ex:314 lib/graphql/resolvers/user.ex:278
#, elixir-format
+#: lib/graphql/resolvers/person.ex:314 lib/graphql/resolvers/user.ex:278
msgid "No user with this email was found"
msgstr "Пользователя с этим адресом электронной почты не найдено"
+#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:32 lib/graphql/resolvers/participant.ex:210 lib/graphql/resolvers/person.ex:236
#: lib/graphql/resolvers/person.ex:353 lib/graphql/resolvers/person.ex:380 lib/graphql/resolvers/person.ex:397
-#, elixir-format
msgid "Profile is not owned by authenticated user"
msgstr "Профиль не принадлежит аутентифицированному пользователю"
-#: lib/graphql/resolvers/user.ex:156
#, elixir-format
+#: lib/graphql/resolvers/user.ex:156
msgid "Registrations are not open"
msgstr "Регистрация не открыта"
-#: lib/graphql/resolvers/user.ex:407
#, elixir-format
+#: lib/graphql/resolvers/user.ex:407
msgid "The current password is invalid"
msgstr "Текущий пароль неверен"
-#: lib/graphql/resolvers/user.ex:452
#, elixir-format
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr "Новый адрес электронной почты недействителен"
-#: lib/graphql/resolvers/user.ex:449
#, elixir-format
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "Новый адрес электронной почты должен отличаться от текущего"
-#: lib/graphql/resolvers/user.ex:410
#, elixir-format
+#: lib/graphql/resolvers/user.ex:410
msgid "The new password must be different"
msgstr "Новый пароль должен отличаться от текущего"
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
#, elixir-format
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr "Введён неверный пароль"
-#: lib/graphql/resolvers/user.ex:414
#, elixir-format
+#: lib/graphql/resolvers/user.ex:414
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr ""
"Введенный пароль слишком короткий. Убедитесь, что ваш пароль состоит не "
"менее чем из 6 символов."
-#: lib/graphql/resolvers/user.ex:274
#, elixir-format
+#: lib/graphql/resolvers/user.ex:274
msgid "This user can't reset their password"
msgstr "Этот пользователь не может сбросить свой пароль"
-#: lib/graphql/resolvers/user.ex:81
#, elixir-format
+#: lib/graphql/resolvers/user.ex:81
msgid "This user has been disabled"
msgstr "Этот пользователь отключен"
-#: lib/graphql/resolvers/user.ex:232 lib/graphql/resolvers/user.ex:237
#, elixir-format
+#: lib/graphql/resolvers/user.ex:232 lib/graphql/resolvers/user.ex:237
msgid "Unable to validate user"
msgstr "Невозможно проверить пользователя"
-#: lib/graphql/resolvers/user.ex:496
#, elixir-format
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "Пользователь уже отключен"
-#: lib/graphql/resolvers/user.ex:563
#, elixir-format
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "Запрошенный пользователь не авторизован"
-#: lib/graphql/resolvers/group.ex:262
#, elixir-format
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Вы уже являетесь участником этой группы"
-#: lib/graphql/resolvers/group.ex:297
#, elixir-format
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
"Вы не можете покинуть эту группу, потому что вы её единственный администратор"
-#: lib/graphql/resolvers/group.ex:259
#, elixir-format
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Вы не можете присоединиться к этой группе"
-#: lib/graphql/resolvers/group.ex:111
#, elixir-format
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Только модератор может просматривать список групп."
-#: lib/graphql/resolvers/user.ex:461
#, elixir-format
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
"Вам необходимо войти в систему, чтобы изменить свой адрес электронной почты"
-#: lib/graphql/resolvers/user.ex:422
#, elixir-format
+#: lib/graphql/resolvers/user.ex:422
msgid "You need to be logged-in to change your password"
msgstr "Вам необходимо войти в систему, чтобы изменить свой пароль"
-#: lib/graphql/resolvers/group.ex:236
#, elixir-format
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Вам необходимо войти в систему, чтобы удалить группу"
-#: lib/graphql/resolvers/user.ex:523
#, elixir-format
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr "Вам необходимо войти в систему, чтобы удалить свою учетную запись"
-#: lib/graphql/resolvers/group.ex:267
#, elixir-format
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Вам необходимо войти в систему, чтобы присоединиться к группе"
-#: lib/graphql/resolvers/group.ex:302
#, elixir-format
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Вам необходимо войти в систему, чтобы покинуть группу"
-#: lib/graphql/resolvers/group.ex:200
#, elixir-format
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Вам необходимо войти в систему, чтобы обновить группу"
-#: lib/graphql/resolvers/user.ex:112
#, elixir-format
+#: lib/graphql/resolvers/user.ex:112
msgid "You need to have an existing token to get a refresh token"
msgstr "У вас должен быть существующий токен, чтобы получить токен обновления"
-#: lib/graphql/resolvers/user.ex:256 lib/graphql/resolvers/user.ex:281
#, elixir-format
+#: lib/graphql/resolvers/user.ex:256 lib/graphql/resolvers/user.ex:281
msgid "You requested again a confirmation email too soon"
msgstr "Вы слишком рано запросили новое письмо с подтверждением"
-#: lib/graphql/resolvers/user.ex:159
#, elixir-format
+#: lib/graphql/resolvers/user.ex:159
msgid "Your email is not on the allowlist"
msgstr "Ваш адрес электронной почты отсутствует в белом списке"
-#: lib/graphql/resolvers/actor.ex:100
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:100
msgid "Error while performing background task"
msgstr "Ошибка при выполнении фоновой задачи"
-#: lib/graphql/resolvers/actor.ex:32
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:32
msgid "No profile found with this ID"
msgstr "Профиль с этим ID не найден"
-#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:97
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:97
msgid "No remote profile found with this ID"
msgstr "Удалённый профиль с этим ID не найден"
-#: lib/graphql/resolvers/actor.ex:72
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:72
msgid "Only moderators and administrators can suspend a profile"
msgstr "Только модераторы и администраторы могут заблокировать профиль"
-#: lib/graphql/resolvers/actor.ex:105
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:105
msgid "Only moderators and administrators can unsuspend a profile"
msgstr "Только модераторы и администраторы могут разблокировать профиль"
-#: lib/graphql/resolvers/actor.ex:29
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:29
msgid "Only remote profiles may be refreshed"
msgstr "Обновлять можно только удаленные профили"
-#: lib/graphql/resolvers/actor.ex:64
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:64
msgid "Profile already suspended"
msgstr "Профиль уже заблокирован"
@@ -349,33 +349,33 @@ msgstr "Вашему узлу требуется действующий адре
msgid "Anonymous participation is not enabled"
msgstr "Анонимное участие не разрешено"
-#: lib/graphql/resolvers/person.ex:210
#, elixir-format
+#: lib/graphql/resolvers/person.ex:210
msgid "Cannot remove the last administrator of a group"
msgstr "Невозможно удалить последнего администратора группы"
-#: lib/graphql/resolvers/person.ex:207
#, elixir-format
+#: lib/graphql/resolvers/person.ex:207
msgid "Cannot remove the last identity of a user"
msgstr "Единственный идентификатор пользователя не может быть удален"
-#: lib/graphql/resolvers/comment.ex:125
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Комментарий уже удалён"
-#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:75
#, elixir-format
+#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:75
msgid "Discussion not found"
msgstr "Обсуждение не найдено"
-#: lib/graphql/resolvers/report.ex:63 lib/graphql/resolvers/report.ex:82
#, elixir-format
+#: lib/graphql/resolvers/report.ex:63 lib/graphql/resolvers/report.ex:82
msgid "Error while saving report"
msgstr "При сохранении отчёта произошла ошибка"
-#: lib/graphql/resolvers/report.ex:102
#, elixir-format
+#: lib/graphql/resolvers/report.ex:102
msgid "Error while updating report"
msgstr "При обновлении отчёта произошла ошибка"
@@ -384,16 +384,16 @@ msgstr "При обновлении отчёта произошла ошибка
msgid "Event id not found"
msgstr "Не найден id мероприятия"
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
#, elixir-format
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr "Мероприятие не найдено"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "Мероприятия с ID %{id} не существует"
@@ -402,19 +402,19 @@ msgstr "Мероприятия с ID %{id} не существует"
msgid "Internal Error"
msgstr "Внутренняя ошибка"
-#: lib/graphql/resolvers/discussion.ex:225
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:225
msgid "No discussion with ID %{id}"
msgstr "Обсуждения с ID %{id} нет"
+#, elixir-format
#: lib/graphql/resolvers/todos.ex:80 lib/graphql/resolvers/todos.ex:107
#: lib/graphql/resolvers/todos.ex:179 lib/graphql/resolvers/todos.ex:208 lib/graphql/resolvers/todos.ex:237
-#, elixir-format
msgid "No profile found for user"
msgstr "Профиль пользователя не найден"
-#: lib/graphql/resolvers/feed_token.ex:64
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Такого токена ленты не существует"
@@ -429,57 +429,57 @@ msgstr "У участника уже есть роль %{role}"
msgid "Participant not found"
msgstr "Участник не найден"
-#: lib/graphql/resolvers/person.ex:32
#, elixir-format
+#: lib/graphql/resolvers/person.ex:32
msgid "Person with ID %{id} not found"
msgstr "Человек с ID %{id} не найден"
-#: lib/graphql/resolvers/person.ex:56
#, elixir-format
+#: lib/graphql/resolvers/person.ex:56
msgid "Person with username %{username} not found"
msgstr "Не найдено человека с именем пользователя %{username}"
-#: lib/graphql/resolvers/post.ex:169 lib/graphql/resolvers/post.ex:203
#, elixir-format
+#: lib/graphql/resolvers/post.ex:169 lib/graphql/resolvers/post.ex:203
msgid "Post ID is not a valid ID"
msgstr "ID поста имеет недопустимое значение"
-#: lib/graphql/resolvers/post.ex:172 lib/graphql/resolvers/post.ex:206
#, elixir-format
+#: lib/graphql/resolvers/post.ex:172 lib/graphql/resolvers/post.ex:206
msgid "Post doesn't exist"
msgstr "Пост не существует"
-#: lib/graphql/resolvers/member.ex:82
#, elixir-format
+#: lib/graphql/resolvers/member.ex:82
msgid "Profile invited doesn't exist"
msgstr "Приглашенный профиль не существует"
-#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
#, elixir-format
+#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
msgid "Profile is already a member of this group"
msgstr "Профиль уже является участником этой группы"
+#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
-#, elixir-format
msgid "Profile is not member of group"
msgstr "Профиль не является членом группы"
-#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/person.ex:233
#, elixir-format
+#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/person.ex:233
msgid "Profile not found"
msgstr "Профиль не найден"
-#: lib/graphql/resolvers/report.ex:40
#, elixir-format
+#: lib/graphql/resolvers/report.ex:40
msgid "Report not found"
msgstr "Отчёт не найден"
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "Ресурс не существует"
@@ -491,38 +491,38 @@ msgstr ""
"участников"
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Этот токен недействителен"
-#: lib/graphql/resolvers/todos.ex:176 lib/graphql/resolvers/todos.ex:243
#, elixir-format
+#: lib/graphql/resolvers/todos.ex:176 lib/graphql/resolvers/todos.ex:243
msgid "Todo doesn't exist"
msgstr "Такого пункта в списке дел не существует"
+#, elixir-format
#: lib/graphql/resolvers/todos.ex:77 lib/graphql/resolvers/todos.ex:211
#: lib/graphql/resolvers/todos.ex:240
-#, elixir-format
msgid "Todo list doesn't exist"
msgstr "Списка дел не существует"
-#: lib/graphql/resolvers/feed_token.ex:73
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Токен не существует"
-#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Токен не является допустимым UUID"
-#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:415
#, elixir-format
+#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:415
msgid "User not found"
msgstr "Пользователь не найден"
-#: lib/graphql/resolvers/person.ex:310
#, elixir-format
+#: lib/graphql/resolvers/person.ex:310
msgid "You already have a profile for this user"
msgstr "У вас уже есть профиль для этого пользователя"
@@ -531,38 +531,38 @@ msgstr "У вас уже есть профиль для этого пользо
msgid "You are already a participant of this event"
msgstr "Вы уже являетесь участником этого мероприятия"
-#: lib/graphql/resolvers/member.ex:85
#, elixir-format
+#: lib/graphql/resolvers/member.ex:85
msgid "You are not a member of this group"
msgstr "Вы не состоите в этой группе"
-#: lib/graphql/resolvers/member.ex:155
#, elixir-format
+#: lib/graphql/resolvers/member.ex:155
msgid "You are not a moderator or admin for this group"
msgstr "Вы не модератор и не администратор этой группы"
-#: lib/graphql/resolvers/comment.ex:59
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:59
msgid "You are not allowed to create a comment if not connected"
msgstr "Вы не можете создать комментарий при отсутствии подключения"
-#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "Вы не можете создать токен ленты при отсутствии подключения"
-#: lib/graphql/resolvers/comment.ex:133
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Вы не можете удалить комментарий при отсутствии подключения"
-#: lib/graphql/resolvers/feed_token.ex:82
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Вы не можете удалить токен ленты при отсутствии подключения"
-#: lib/graphql/resolvers/comment.ex:93
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:93
msgid "You are not allowed to update a comment if not connected"
msgstr "Вы не можете обновить комментарий при отсутствии подключения"
@@ -574,126 +574,126 @@ msgstr ""
"Вы не можете покинуть мероприятие, потому что являетесь единственным "
"участником, создавшим его"
-#: lib/graphql/resolvers/member.ex:159
#, elixir-format
+#: lib/graphql/resolvers/member.ex:159
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Вы не можете назначить себе роль с меньшими правами для этой группы, потому "
"что вы единственный администратор"
-#: lib/graphql/resolvers/comment.ex:121
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Вы не можете удалить этот комментарий"
-#: lib/graphql/resolvers/event.ex:375
#, elixir-format
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Вы не можете удалить это мероприятие"
-#: lib/graphql/resolvers/member.ex:88
#, elixir-format
+#: lib/graphql/resolvers/member.ex:88
msgid "You cannot invite to this group"
msgstr "Вы не можете приглашать в эту группу"
-#: lib/graphql/resolvers/feed_token.ex:76
#, elixir-format
+#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "У вас нет прав на удаление этого токена"
-#: lib/graphql/resolvers/admin.ex:54
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:54
msgid "You need to be logged-in and a moderator to list action logs"
msgstr ""
"Для доступа к журналу активности вы должны войти в систему и иметь права "
"модератора"
-#: lib/graphql/resolvers/report.ex:28
#, elixir-format
+#: lib/graphql/resolvers/report.ex:28
msgid "You need to be logged-in and a moderator to list reports"
msgstr ""
"Для доступа к списку отчётов вы должны войти в систему и иметь права "
"модератора"
-#: lib/graphql/resolvers/report.ex:107
#, elixir-format
+#: lib/graphql/resolvers/report.ex:107
msgid "You need to be logged-in and a moderator to update a report"
msgstr ""
"Для обновления отчёта вы должны войти в систему и иметь права модератора"
-#: lib/graphql/resolvers/report.ex:45
#, elixir-format
+#: lib/graphql/resolvers/report.ex:45
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Для просмотра отчёта вы должны войти в систему и иметь права модератора"
-#: lib/graphql/resolvers/admin.ex:246
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:246
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
"Для доступа в админку вы должны войти в систему и иметь права администратора"
-#: lib/graphql/resolvers/admin.ex:230
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:230
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
"Для доступа к панели со статистикой вы должны войти в систему и иметь права "
"администратора"
-#: lib/graphql/resolvers/admin.ex:272
#, elixir-format
+#: lib/graphql/resolvers/admin.ex:272
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
"Для сохранения настроек в админке вы должны войти в систему и иметь права "
"администратора"
-#: lib/graphql/resolvers/discussion.ex:90
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:90
msgid "You need to be logged-in to access discussions"
msgstr "Вам необходимо войти в систему, чтобы получить доступ к обсуждениям"
-#: lib/graphql/resolvers/resource.ex:96
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:96
msgid "You need to be logged-in to access resources"
msgstr "Вам необходимо войти в систему, чтобы получить доступ к ресурсам"
-#: lib/graphql/resolvers/event.ex:295
#, elixir-format
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
"Вам необходимо войти в систему, чтобы иметь возможность создавать мероприятия"
-#: lib/graphql/resolvers/post.ex:141
#, elixir-format
+#: lib/graphql/resolvers/post.ex:141
msgid "You need to be logged-in to create posts"
msgstr ""
"Вам необходимо войти в систему, чтобы иметь возможность создавать публикации"
-#: lib/graphql/resolvers/report.ex:79
#, elixir-format
+#: lib/graphql/resolvers/report.ex:79
msgid "You need to be logged-in to create reports"
msgstr ""
"Вам необходимо войти в систему, чтобы иметь возможность создавать отчёты"
-#: lib/graphql/resolvers/resource.ex:136
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
"Вам необходимо войти в систему, чтобы иметь возможность создавать ресурсы"
-#: lib/graphql/resolvers/event.ex:384
#, elixir-format
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
"Вам необходимо войти в систему, чтобы иметь возможность удалить мероприятие"
-#: lib/graphql/resolvers/post.ex:214
#, elixir-format
+#: lib/graphql/resolvers/post.ex:214
msgid "You need to be logged-in to delete posts"
msgstr ""
"Вам необходимо войти в систему, чтобы иметь возможность удалять публикации"
-#: lib/graphql/resolvers/resource.ex:203
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Вам необходимо войти в систему, чтобы иметь возможность удалять ресурсы"
@@ -707,154 +707,154 @@ msgstr "Вам необходимо войти в систему, чтобы п
msgid "You need to be logged-in to leave an event"
msgstr "Вам необходимо войти в систему, чтобы покинуть мероприятие"
-#: lib/graphql/resolvers/event.ex:341
#, elixir-format
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr "Вам необходимо войти в систему, чтобы обновить мероприятие"
-#: lib/graphql/resolvers/post.ex:180
#, elixir-format
+#: lib/graphql/resolvers/post.ex:180
msgid "You need to be logged-in to update posts"
msgstr ""
"Вам необходимо войти в систему, чтобы иметь возможность обновлять публикации"
-#: lib/graphql/resolvers/resource.ex:173
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
"Вам необходимо войти в систему, чтобы иметь возможность обновлять ресурсы"
-#: lib/graphql/resolvers/resource.ex:232
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
"Вам необходимо войти в систему, чтобы получить доступ к предпросмотру "
"ресурсов"
-#: lib/graphql/resolvers/resource.ex:128
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "Родительский ресурс не принадлежит к этой группе"
-#: lib/mobilizon/users/user.ex:113
#, elixir-format
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "Выбран слишком короткий пароль."
-#: lib/mobilizon/users/user.ex:141
#, elixir-format
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
"Регистрационный токен уже используется. Похоже, что проблема с нашей стороны."
-#: lib/mobilizon/users/user.ex:108
#, elixir-format
+#: lib/mobilizon/users/user.ex:108
msgid "This email is already used."
msgstr "Этот электронный адрес уже используется."
-#: lib/graphql/error.ex:97
#, elixir-format
+#: lib/graphql/error.ex:97
msgid "Post not found"
msgstr "Пост не найден"
-#: lib/graphql/error.ex:84
#, elixir-format
+#: lib/graphql/error.ex:84
msgid "Invalid arguments passed"
msgstr "Переданы неверные аргументы"
-#: lib/graphql/error.ex:90
#, elixir-format
+#: lib/graphql/error.ex:90
msgid "Invalid credentials"
msgstr "Неверные учётные данные"
-#: lib/graphql/error.ex:88
#, elixir-format
+#: lib/graphql/error.ex:88
msgid "Reset your password to login"
msgstr "Сбросьте пароль для входа в систему"
-#: lib/graphql/error.ex:95 lib/graphql/error.ex:100
#, elixir-format
+#: lib/graphql/error.ex:95 lib/graphql/error.ex:100
msgid "Resource not found"
msgstr "Ресурс не найден"
-#: lib/graphql/error.ex:102
#, elixir-format
+#: lib/graphql/error.ex:102
msgid "Something went wrong"
msgstr "Что-то пошло не так"
-#: lib/graphql/error.ex:83
#, elixir-format
+#: lib/graphql/error.ex:83
msgid "Unknown Resource"
msgstr "Неизвестный ресурс"
-#: lib/graphql/error.ex:93
#, elixir-format
+#: lib/graphql/error.ex:93
msgid "You don't have permission to do this"
msgstr "У вас недостаточно для этого прав"
-#: lib/graphql/error.ex:85
#, elixir-format
+#: lib/graphql/error.ex:85
msgid "You need to be logged in"
msgstr "Вам необходимо войти в систему"
-#: lib/graphql/resolvers/member.ex:116
#, elixir-format
+#: lib/graphql/resolvers/member.ex:116
msgid "You can't accept this invitation with this profile."
msgstr "Вы не можете принять это приглашение из этого профиля."
-#: lib/graphql/resolvers/member.ex:137
#, elixir-format
+#: lib/graphql/resolvers/member.ex:137
msgid "You can't reject this invitation with this profile."
msgstr "Вы не можете отклонить это приглашение из этого профиля."
-#: lib/graphql/resolvers/media.ex:71
#, elixir-format
+#: lib/graphql/resolvers/media.ex:71
msgid "File doesn't have an allowed MIME type."
msgstr "Файл не имеет разрешенного MIME-типа."
-#: lib/graphql/resolvers/group.ex:195
#, elixir-format
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "Профиль не является администратором группы"
-#: lib/graphql/resolvers/event.ex:330
#, elixir-format
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Вы не можете редактировать это мероприятие."
-#: lib/graphql/resolvers/event.ex:333
#, elixir-format
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr "Вы не можете назначить это мероприятие этому профилю."
-#: lib/graphql/resolvers/member.ex:140
#, elixir-format
+#: lib/graphql/resolvers/member.ex:140
msgid "This invitation doesn't exist."
msgstr "Такого приглашения не существует."
-#: lib/graphql/resolvers/member.ex:185
#, elixir-format
+#: lib/graphql/resolvers/member.ex:185
msgid "This member already has been rejected."
msgstr "Этот участник уже был отклонён."
-#: lib/graphql/resolvers/member.ex:192
#, elixir-format
+#: lib/graphql/resolvers/member.ex:192
msgid "You don't have the right to remove this member."
msgstr "У вас нет прав на удаление этого участника."
-#: lib/mobilizon/actors/actor.ex:349
#, elixir-format
+#: lib/mobilizon/actors/actor.ex:349
msgid "This username is already taken."
msgstr "Это имя пользователя уже занято."
-#: lib/graphql/resolvers/discussion.ex:87
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:87
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
"Вы должны предоставить либо ID, либо короткое имя для доступа к обсуждению"
-#: lib/graphql/resolvers/event.ex:284
#, elixir-format
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr "Профиль организатора не принадлежит пользователю"
@@ -863,75 +863,75 @@ msgstr "Профиль организатора не принадлежит по
msgid "Profile ID provided is not the anonymous profile one"
msgstr "Указанный ID профиля не является анонимным"
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
-#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
#, elixir-format
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
+#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "Предоставленное изображение слишком большое"
-#: lib/web/views/utils.ex:34
#, elixir-format
+#: lib/web/views/utils.ex:34
msgid "Index file not found. You need to recompile the front-end."
msgstr "Индексный файл не найден. Вам нужно пересобрать фронтенд."
-#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "При создании ресурса произошла ошибка"
-#: lib/graphql/resolvers/user.ex:479
#, elixir-format
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "Неверный токен активации"
-#: lib/graphql/resolvers/resource.ex:222
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "Невозможно получить сведения о ресурсе по этому URL-адресу."
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Указанный профиль модератора не имеет доступа к этому событию"
-#: lib/graphql/resolvers/event.ex:278
#, elixir-format
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
"В профиле организатора нет разрешения на создание мероприятия от имени этой "
"группы"
-#: lib/graphql/resolvers/event.ex:321
#, elixir-format
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
"У этого профиля нет разрешения на обновление мероприятия от имени этой группы"
-#: lib/graphql/resolvers/user.ex:163
#, elixir-format
+#: lib/graphql/resolvers/user.ex:163
msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
msgstr ""
"Ваш адрес электронной почты был отклонен при регистрации или используется "
"запрещенная служба электронной почты"
-#: lib/graphql/resolvers/comment.ex:128
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Мероприятие не найдено"
-#: lib/graphql/resolvers/discussion.ex:129
#, elixir-format
+#: lib/graphql/resolvers/discussion.ex:129
msgid "Error while creating a discussion"
msgstr "При создании ресурса произошла ошибка"
-#: lib/graphql/resolvers/user.ex:602
#, elixir-format
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "При обновлении отчёта произошла ошибка"
-#: lib/graphql/resolvers/person.ex:307
#, elixir-format
+#: lib/graphql/resolvers/person.ex:307
msgid "Error while uploading pictures"
msgstr "При обновлении отчёта произошла ошибка"
@@ -940,18 +940,18 @@ msgstr "При обновлении отчёта произошла ошибка
msgid "Failed to leave the event"
msgstr "Не удалось покинуть мероприятие"
-#: lib/graphql/resolvers/group.ex:191
#, elixir-format
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr "Не удалось обновить группу"
-#: lib/graphql/resolvers/user.ex:456
#, elixir-format
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr "Не удалось обновить электронную почту пользователя"
-#: lib/graphql/resolvers/user.ex:475
#, elixir-format
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Невозможно проверить пользователя"
@@ -960,33 +960,33 @@ msgstr "Невозможно проверить пользователя"
msgid "The anonymous actor ID is invalid"
msgstr "ID анонимного актора недействителен"
-#: lib/graphql/resolvers/resource.ex:161
#, elixir-format
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr "Неизвестная ошибка при обновлении ресурса"
-#: lib/graphql/resolvers/comment.ex:84
#, elixir-format
+#: lib/graphql/resolvers/comment.ex:84
msgid "You are not the comment creator"
msgstr "Вы не автор комментария"
-#: lib/graphql/resolvers/user.ex:404
#, elixir-format
+#: lib/graphql/resolvers/user.ex:404
msgid "You cannot change your password."
msgstr "Вы не можете изменить свой пароль."
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -994,3 +994,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr "Неизвестная ошибка при обновлении ресурса"
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/gettext/sv/LC_MESSAGES/default.po b/priv/gettext/sv/LC_MESSAGES/default.po
index 7dbe6f01..5a9942a9 100644
--- a/priv/gettext/sv/LC_MESSAGES/default.po
+++ b/priv/gettext/sv/LC_MESSAGES/default.po
@@ -326,12 +326,12 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
-#: lib/web/email/user.ex:177
+#: lib/web/email/user.ex:175
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr "Mobilizon på %{instance}: bekräfta din e-postadress"
#, elixir-format
-#: lib/web/email/user.ex:154
+#: lib/web/email/user.ex:155
msgid "Mobilizon on %{instance}: email changed"
msgstr "Mobilizon på %{instance}: e-postadressen har ändrats"
@@ -389,7 +389,7 @@ msgid "View the event on: %{link}"
msgstr "Visa det uppdaterade evenemanget på %{link}"
#, elixir-format
-#: lib/web/email/group.ex:33
+#: lib/web/email/group.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr "%{inviter} har bjudit in dig till gruppen %{group}"
@@ -1071,7 +1071,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:63
+#: lib/web/email/group.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1114,7 +1114,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
-#: lib/web/email/group.ex:97
+#: lib/web/email/group.ex:95
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1377,17 +1377,17 @@ msgid "%{name}'s feed"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:122
+#: lib/service/export/feed.ex:115
msgid "%{actor}'s private events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:117
+#: lib/service/export/feed.ex:110
msgid "%{actor}'s public events feed on %{instance}"
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:225
+#: lib/service/export/feed.ex:219
msgid "Feed for %{email} on %{instance}"
msgstr ""
@@ -1412,7 +1412,7 @@ msgid "The Mobilizon server %{instance} seems to be temporarily down."
msgstr ""
#, elixir-format
-#: lib/service/export/feed.ex:75
+#: lib/service/export/feed.ex:67
msgid "Public feed for %{instance}"
msgstr ""
diff --git a/priv/gettext/sv/LC_MESSAGES/errors.po b/priv/gettext/sv/LC_MESSAGES/errors.po
index aaaf0ea4..8b108a3e 100644
--- a/priv/gettext/sv/LC_MESSAGES/errors.po
+++ b/priv/gettext/sv/LC_MESSAGES/errors.po
@@ -100,28 +100,28 @@ msgid "Cannot refresh the token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:227
+#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Den nuvarande profilen är inte med i den här gruppen"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:231
+#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:588
+#: lib/graphql/resolvers/user.ex:592
msgid "Error while saving user settings"
msgstr "Ett fel uppstod när användarinställningarna skulle sparas"
#, elixir-format
-#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:224
-#: lib/graphql/resolvers/group.ex:256 lib/graphql/resolvers/group.ex:293 lib/graphql/resolvers/member.ex:79
+#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
+#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Gruppen kunde inte hittas"
#, elixir-format
-#: lib/graphql/resolvers/group.ex:77 lib/graphql/resolvers/group.ex:81
+#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Gruppen med %{id} kunde inte hittas"
@@ -131,7 +131,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:290
+#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr ""
@@ -168,12 +168,12 @@ msgid "The current password is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:452
+#: lib/graphql/resolvers/user.ex:450
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:449
+#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr ""
@@ -183,8 +183,8 @@ msgid "The new password must be different"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:446 lib/graphql/resolvers/user.ex:515
-#: lib/graphql/resolvers/user.ex:518
+#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
+#: lib/graphql/resolvers/user.ex:522
msgid "The password provided is invalid"
msgstr ""
@@ -209,37 +209,37 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:496
+#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:563
+#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:262
+#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:297
+#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:259
+#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:111
+#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:461
+#: lib/graphql/resolvers/user.ex:465
msgid "You need to be logged-in to change your email"
msgstr ""
@@ -249,27 +249,27 @@ msgid "You need to be logged-in to change your password"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:236
+#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:523
+#: lib/graphql/resolvers/user.ex:527
msgid "You need to be logged-in to delete your account"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:267
+#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:302
+#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:200
+#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr ""
@@ -345,7 +345,7 @@ msgid "Cannot remove the last identity of a user"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:125
+#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr ""
@@ -370,15 +370,15 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
-#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:327
-#: lib/graphql/resolvers/event.ex:379
+#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
+#: lib/graphql/resolvers/event.ex:407
msgid "Event not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
-#: lib/graphql/resolvers/participant.ex:349
+#: lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr ""
@@ -446,8 +446,8 @@ msgstr ""
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
-#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:131
-#: lib/graphql/resolvers/resource.ex:164 lib/graphql/resolvers/resource.ex:198 lib/graphql/resolvers/todos.ex:58
+#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
+#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
@@ -464,7 +464,7 @@ msgid "Report not found"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:168 lib/graphql/resolvers/resource.ex:195
+#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr ""
@@ -474,7 +474,7 @@ msgid "The event has already reached its maximum capacity"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:283
+#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr ""
@@ -535,7 +535,7 @@ msgid "You are not allowed to create a feed token if not connected"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:133
+#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr ""
@@ -561,12 +561,12 @@ msgid "You can't set yourself to a lower member role for this group because you
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:121
+#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:375
+#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr ""
@@ -626,7 +626,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:295
+#: lib/graphql/resolvers/event.ex:313
msgid "You need to be logged-in to create events"
msgstr ""
@@ -641,12 +641,12 @@ msgid "You need to be logged-in to create reports"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:136
+#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:384
+#: lib/graphql/resolvers/event.ex:412
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -656,7 +656,7 @@ msgid "You need to be logged-in to delete posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:203
+#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr ""
@@ -671,7 +671,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:341
+#: lib/graphql/resolvers/event.ex:369
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -681,27 +681,27 @@ msgid "You need to be logged-in to update posts"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:173
+#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:232
+#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:128
+#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:113
+#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr ""
#, elixir-format
-#: lib/mobilizon/users/user.ex:141
+#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr ""
@@ -771,17 +771,17 @@ msgid "File doesn't have an allowed MIME type."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:195
+#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:330
+#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:333
+#: lib/graphql/resolvers/event.ex:361
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -811,7 +811,7 @@ msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:284
+#: lib/graphql/resolvers/event.ex:308
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -821,7 +821,7 @@ msgid "Profile ID provided is not the anonymous profile one"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:153 lib/graphql/resolvers/group.ex:183
+#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr ""
@@ -832,33 +832,33 @@ msgid "Index file not found. You need to recompile the front-end."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:125
+#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:479
+#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:222
+#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:171 lib/graphql/resolvers/participant.ex:253
-#: lib/graphql/resolvers/participant.ex:341
+#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
+#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:278
+#: lib/graphql/resolvers/event.ex:294
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/event.ex:321
+#: lib/graphql/resolvers/event.ex:349
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -868,7 +868,7 @@ msgid "Your e-mail has been denied registration or uses a disallowed e-mail prov
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/comment.ex:128
+#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr ""
@@ -878,7 +878,7 @@ msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:602
+#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr ""
@@ -893,17 +893,17 @@ msgid "Failed to leave the event"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/group.ex:191
+#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:456
+#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/user.ex:475
+#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr ""
@@ -913,7 +913,7 @@ msgid "The anonymous actor ID is invalid"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/resource.ex:161
+#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr ""
@@ -928,17 +928,17 @@ msgid "You cannot change your password."
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:310
+#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:322
+#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr ""
#, elixir-format
-#: lib/graphql/resolvers/participant.ex:330
+#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr ""
@@ -946,3 +946,23 @@ msgstr ""
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/group.ex:165
+msgid "Only admins can create groups"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/event.ex:301
+msgid "Only groups can create events"
+msgstr ""
+
+#, elixir-format, fuzzy
+#: lib/graphql/resolvers/event.ex:287
+msgid "Unknown error while creating event"
+msgstr ""
+
+#, elixir-format
+#: lib/graphql/resolvers/user.ex:460
+msgid "User cannot change email"
+msgstr ""
diff --git a/priv/repo/migrations/20211008084901_add_timezone_to_addresses.exs b/priv/repo/migrations/20211008084901_add_timezone_to_addresses.exs
new file mode 100644
index 00000000..b099b27d
--- /dev/null
+++ b/priv/repo/migrations/20211008084901_add_timezone_to_addresses.exs
@@ -0,0 +1,9 @@
+defmodule Mobilizon.Storage.Repo.Migrations.AddTimezoneToAddresses do
+ use Ecto.Migration
+
+ def change do
+ alter table(:addresses) do
+ add(:timezone, :string)
+ end
+ end
+end
diff --git a/test/service/geospatial/addok_test.exs b/test/service/geospatial/addok_test.exs
index bf698c9d..d9f0778b 100644
--- a/test/service/geospatial/addok_test.exs
+++ b/test/service/geospatial/addok_test.exs
@@ -28,6 +28,7 @@ defmodule Mobilizon.Service.Geospatial.AddokTest do
region: "69, Rhône, Auvergne-Rhône-Alpes",
locality: "Lyon",
description: "10 Rue Jangot",
+ timezone: "Europe/Paris",
postal_code: "69007",
street: "10 Rue Jangot",
geom: %Geo.Point{coordinates: {4.842569, 45.751718}, properties: %{}, srid: 4326}
@@ -54,6 +55,7 @@ defmodule Mobilizon.Service.Geospatial.AddokTest do
region: "69, Rhône, Auvergne-Rhône-Alpes",
locality: "Lyon",
description: "10 Rue Jangot",
+ timezone: "Europe/Paris",
postal_code: "69007",
street: "10 Rue Jangot",
geom: %Geo.Point{coordinates: {4.842569, 45.751718}, properties: %{}, srid: 4326}
diff --git a/test/service/geospatial/google_maps_test.exs b/test/service/geospatial/google_maps_test.exs
index ab8833c6..7f268c72 100644
--- a/test/service/geospatial/google_maps_test.exs
+++ b/test/service/geospatial/google_maps_test.exs
@@ -69,6 +69,7 @@ defmodule Mobilizon.Service.Geospatial.GoogleMapsTest do
country: "France",
postal_code: "69007",
street: "10 Rue Jangot",
+ timezone: "Europe/Paris",
geom: %Geo.Point{
coordinates: {4.8424032, 45.75164940000001},
properties: %{},
@@ -116,6 +117,7 @@ defmodule Mobilizon.Service.Geospatial.GoogleMapsTest do
country: "France",
postal_code: "69007",
street: "10bis Rue Jangot",
+ timezone: "Europe/Paris",
geom: %Geo.Point{
coordinates: {4.8424966, 45.751725},
properties: %{},
diff --git a/test/service/geospatial/map_quest_test.exs b/test/service/geospatial/map_quest_test.exs
index 4a1edf22..21464c49 100644
--- a/test/service/geospatial/map_quest_test.exs
+++ b/test/service/geospatial/map_quest_test.exs
@@ -55,6 +55,7 @@ defmodule Mobilizon.Service.Geospatial.MapQuestTest do
country: "FR",
postal_code: "69007",
street: "10 Rue Jangot",
+ timezone: "Europe/Paris",
geom: %Geo.Point{
coordinates: {4.842566, 45.751714},
properties: %{},
@@ -88,6 +89,7 @@ defmodule Mobilizon.Service.Geospatial.MapQuestTest do
country: "FR",
postal_code: "69007",
street: "10 Rue Jangot",
+ timezone: "Europe/Paris",
geom: %Geo.Point{
coordinates: {4.842569, 45.751718},
properties: %{},
diff --git a/test/service/geospatial/nominatim_test.exs b/test/service/geospatial/nominatim_test.exs
index 40d2bd95..4177c0fe 100644
--- a/test/service/geospatial/nominatim_test.exs
+++ b/test/service/geospatial/nominatim_test.exs
@@ -31,6 +31,7 @@ defmodule Mobilizon.Service.Geospatial.NominatimTest do
country: "France",
postal_code: "69007",
street: "10 Rue Jangot",
+ timezone: "Europe/Paris",
geom: %Geo.Point{
coordinates: {4.8425657, 45.7517141},
properties: %{},
@@ -66,6 +67,7 @@ defmodule Mobilizon.Service.Geospatial.NominatimTest do
country: "France",
postal_code: "69007",
street: "10 Rue Jangot",
+ timezone: "Europe/Paris",
geom: %Geo.Point{
coordinates: {4.8425657, 45.7517141},
properties: %{},
diff --git a/test/service/geospatial/photon_test.exs b/test/service/geospatial/photon_test.exs
index 7d3ba822..48cfebc4 100644
--- a/test/service/geospatial/photon_test.exs
+++ b/test/service/geospatial/photon_test.exs
@@ -30,6 +30,7 @@ defmodule Mobilizon.Service.Geospatial.PhotonTest do
country: "France",
postal_code: "69007",
street: "10 Rue Jangot",
+ timezone: "Europe/Paris",
geom: %Geo.Point{
coordinates: {4.8425657, 45.7517141},
properties: %{},
diff --git a/tsconfig.json b/tsconfig.json
index ac08cb25..5a682fcc 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,3 +1,3 @@
{
- "extends": "./js/tsconfig.json"
-}
\ No newline at end of file
+ "extends": "./js/tsconfig.json"
+}