Merge branch 'tz-improvements' into 'master'

TZ and emails improvements

See merge request framasoft/mobilizon!1081
This commit is contained in:
Thomas Citharel 2021-10-19 10:46:24 +00:00
commit 12e0b8a30f
101 changed files with 2551 additions and 1264 deletions

View file

@ -109,8 +109,7 @@ exunit:
variables:
MIX_ENV: test
before_script:
- mix deps.get
- mix tz_world.update
- mix deps.get && mix tz_world.update
- mix ecto.create
- mix ecto.migrate
script:
@ -210,19 +209,25 @@ package-app:
stage: package
variables: &release-variables
MIX_ENV: "prod"
APP_VERSION: "${CI_COMMIT_TAG}"
APP_ASSET: "${CI_PROJECT_NAME}_${APP_VERSION}_${ARCH}.tar.gz"
script: &release-script
- mix local.hex --force
- mix local.rebar --force
- mix deps.get
- mix phx.digest
- mix release --path release/mobilizon
- cd release/mobilizon && ln -s lib/mobilizon-*/priv priv
- cd release/mobilizon && ln -s lib/mobilizon-*/priv priv && cd ../../
- du -sh release/
- 'echo "Artifact: ${APP_ASSET}"'
- tar czf ${APP_ASSET} -C release mobilizon
- du -sh ${APP_ASSET}
only:
- tags@framasoft/mobilizon
artifacts:
expire_in: 30 days
paths:
- release
- ${APP_ASSET}
package-app-dev:
stage: package
@ -233,20 +238,16 @@ package-app-dev:
artifacts:
expire_in: 2 days
paths:
- release
- ${APP_ASSET}
release-upload:
stage: upload
image: framasoft/yakforms-assets-deploy:latest
rules: *tag-rules
variables:
APP_VERSION: "${CI_COMMIT_TAG}"
APP_ASSET: "${CI_PROJECT_NAME}_${APP_VERSION}_${ARCH}.tar.gz"
script:
- APP_VERSION="${CI_COMMIT_TAG}"
- APP_ASSET="${CI_PROJECT_NAME}_${APP_VERSION}_${ARCH}.tar.gz"
- 'echo "Artifact: ${APP_ASSET}"'
- tar czf ${APP_ASSET} -C release mobilizon
- ls -al ${APP_ASSET}
- eval `ssh-agent -s`
- ssh-add <(echo "${DEPLOYEMENT_KEY}" | base64 --decode -i)
- echo "put -r ${APP_ASSET}" | sftp -o "VerifyHostKeyDNS yes" ${DEPLOYEMENT_USER}@${DEPLOYEMENT_HOST}:public/

View file

@ -38,6 +38,10 @@ config :mobilizon, :cldr,
"sv"
]
config :tzdata, :data_dir, "/var/lib/mobilizon/tzdata"
config :tz_world, data_dir: "/var/lib/mobilizon/tz_world"
cond do
System.get_env("INSTANCE_CONFIG") &&
File.exists?("./config/#{System.get_env("INSTANCE_CONFIG")}") ->

View file

@ -5,7 +5,7 @@
"scripts": {
"serve": "vue-cli-service serve",
"build": "yarn run build:assets && yarn run build:pictures",
"test:unit": "LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 vue-cli-service test:unit",
"test:unit": "LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 TZ=UTC vue-cli-service test:unit",
"test:e2e": "vue-cli-service test:e2e",
"lint": "vue-cli-service lint",
"build:assets": "vue-cli-service build",

View file

@ -216,16 +216,18 @@ export default class App extends Vue {
// Set the focus to the router view
// https://marcus.io/blog/accessible-routing-vuejs
setTimeout(() => {
const focusTarget = this.routerView.$el as HTMLElement;
// Make focustarget programmatically focussable
focusTarget.setAttribute("tabindex", "-1");
const focusTarget = this.routerView?.$el as HTMLElement;
if (focusTarget) {
// Make focustarget programmatically focussable
focusTarget.setAttribute("tabindex", "-1");
// Focus element
focusTarget.focus();
// Focus element
focusTarget.focus();
// Remove tabindex from focustarget.
// Reason: https://axesslab.com/skip-links/#update-3-a-comment-from-gov-uk
focusTarget.removeAttribute("tabindex");
// Remove tabindex from focustarget.
// Reason: https://axesslab.com/skip-links/#update-3-a-comment-from-gov-uk
focusTarget.removeAttribute("tabindex");
}
}, 0);
}

View file

@ -3,6 +3,8 @@
@import "~bulma";
@import "~bulma-divider";
@import "~buefy/src/scss/buefy";
@import "styles/vue-announcer.scss";
@import "styles/vue-skip-to.scss";
// a {
// color: $violet-2;

View file

@ -1,6 +1,7 @@
<template>
<div>
<event-metadata-block
v-if="!event.options.isOnline"
:title="$t('Location')"
:icon="physicalAddress ? physicalAddress.poiInfos.poiIcon.icon : 'earth'"
>

View file

@ -34,6 +34,7 @@
@select="updateSelected"
v-bind="$attrs"
:id="id"
:disabled="disabled"
>
<template #default="{ option }">
<b-icon :icon="option.poiInfos.poiIcon.icon" />
@ -156,6 +157,7 @@ export default class FullAddressAutoComplete extends Mixins(
) {
@Prop({ required: false, default: "" }) label!: string;
@Prop({ required: false }) userTimezone!: string;
@Prop({ required: false, default: false, type: Boolean }) disabled!: boolean;
addressModalActive = false;

View file

@ -200,6 +200,7 @@ export default class ParticipationWithoutAccount extends Vue {
email: this.anonymousParticipation.email,
message: this.anonymousParticipation.message,
locale: this.$i18n.locale,
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
},
update: (
store: ApolloCache<{ joinEvent: IParticipant }>,

View file

@ -62,6 +62,7 @@ const EVENT_OPTIONS_FRAGMENT = gql`
commentModeration
showParticipationPrice
hideOrganizerWhenGroupEvent
isOnline
}
`;
@ -380,6 +381,7 @@ export const JOIN_EVENT = gql`
$email: String
$message: String
$locale: String
$timezone: String
) {
joinEvent(
eventId: $eventId
@ -387,6 +389,7 @@ export const JOIN_EVENT = gql`
email: $email
message: $message
locale: $locale
timezone: $timezone
) {
...ParticipantQuery
}

View file

@ -1202,5 +1202,6 @@
"{timezoneLongName} ({timezoneShortName})": "{timezoneLongName} ({timezoneShortName})",
"Back to top": "Back to top",
"Powered by Mobilizon": "Powered by Mobilizon",
"Instance follows": "Instance follows"
}
"Instance follows": "Instance follows",
"The event is fully online": "The event is fully online"
}

View file

@ -1308,5 +1308,6 @@
"{timezoneLongName} ({timezoneShortName})": "{timezoneLongName} ({timezoneShortName})",
"Back to top": "Retour en haut",
"Powered by Mobilizon": "Propulsé par Mobilizon",
"Instance follows": "Abonnements de l'instance"
}
"Instance follows": "Abonnements de l'instance",
"The event is fully online": "L'événement est entièrement en ligne"
}

View file

@ -0,0 +1,15 @@
/**
* Taken from https://github.com/vue-a11y/vue-announcer/blob/master/src/vue-announcer.vue because styles are inlined there
*/
.announcer {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}

View file

@ -0,0 +1,63 @@
@import "../variables.scss";
/**
* Taken from https://github.com/vue-a11y/vue-skip-to/blob/master/src/VueSkipTo.vue because styles are inlined there
*/
.vue-skip-to {
position: fixed;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
&.focused,
&:hover {
left: 0;
top: 0;
clip: auto;
height: auto;
width: auto;
background-color: $white;
border: 2px solid $violet-3;
}
&,
&__nav-list {
list-style-type: none;
}
&__nav > span,
&__link {
display: block;
padding: 8px 16px;
color: $violet-3;
font-size: 18px;
}
&__nav > span {
border-bottom: 2px solid $violet-3;
font-weight: bold;
}
&,
&__link {
text-decoration: none;
}
&__link:focus {
outline: none;
background-color: $violet-3;
color: #f2f2f2;
}
}

View file

@ -27,6 +27,7 @@ export interface IEventOptions {
showStartTime: boolean;
showEndTime: boolean;
timezone: string | null;
isOnline: boolean;
}
export class EventOptions implements IEventOptions {
@ -57,4 +58,6 @@ export class EventOptions implements IEventOptions {
showEndTime = true;
timezone = null;
isOnline = false;
}

View file

@ -81,10 +81,16 @@
{{ $t("Date parameters") }}
</b-button>
<full-address-auto-complete
v-model="eventPhysicalAddress"
:user-timezone="userActualTimezone"
/>
<div class="address">
<full-address-auto-complete
v-model="eventPhysicalAddress"
:user-timezone="userActualTimezone"
:disabled="isOnline"
/>
<b-switch class="is-online" v-model="isOnline">{{
$t("The event is fully online")
}}</b-switch>
</div>
<div class="field">
<label class="label">{{ $t("Description") }}</label>
@ -536,6 +542,15 @@ section {
}
}
}
.address {
::v-deep .address-autocomplete {
margin-bottom: 0 !important;
}
.is-online {
margin-bottom: 10px;
}
}
</style>
<style lang="scss">
.dialog .modal-card {
@ -1288,5 +1303,16 @@ export default class EditEvent extends Vue {
}
this.event.physicalAddress = address;
}
get isOnline(): boolean {
return this.event.options.isOnline;
}
set isOnline(isOnline: boolean) {
this.event.options = {
...this.event.options,
isOnline,
};
}
}
</script>

View file

@ -61,6 +61,7 @@ export const joinEventMock = {
email: "some@email.tld",
message: "a message long enough",
locale: "en_US",
timezone: "UTC",
};
export const eventNoCommentThreadsMock = {

View file

@ -114,7 +114,11 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do
"PropertyValue" => "sc:PropertyValue",
"value" => "sc:value",
"propertyID" => "sc:propertyID",
"inLanguage" => "sc:inLanguage"
"inLanguage" => "sc:inLanguage",
"timezone" => %{
"@id" => "mz:timezone",
"@type" => "sc:Text"
}
}
]
}

View file

@ -16,6 +16,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
alias Mobilizon.Federation.ActivityStream.Converter.Address, as: AddressConverter
alias Mobilizon.Federation.ActivityStream.Converter.EventMetadata, as: EventMetadataConverter
alias Mobilizon.Federation.ActivityStream.Converter.Media, as: MediaConverter
alias Mobilizon.Service.TimezoneDetector
alias Mobilizon.Web.Endpoint
import Mobilizon.Federation.ActivityStream.Converter.Utils,
@ -49,11 +50,11 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
def as_to_model_data(object) do
case maybe_fetch_actor_and_attributed_to_id(object) do
{:ok, %Actor{id: actor_id}, attributed_to} ->
address_id = get_address(object["location"])
address = get_address(object["location"])
tags = fetch_tags(object["tag"])
mentions = fetch_mentions(object["tag"])
visibility = get_visibility(object)
options = get_options(object)
options = get_options(object, address)
metadata = get_metdata(object)
[description: description, picture_id: picture_id, medias: medias] =
@ -82,7 +83,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
uuid: object["uuid"],
tags: tags,
mentions: mentions,
physical_address_id: address_id,
physical_address_id: if(address, do: address.id, else: nil),
updated_at: object["updated"],
publish_at: object["published"],
language: object["inLanguage"]
@ -118,9 +119,9 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
"published" => (event.publish_at || event.inserted_at) |> date_to_string(),
"updated" => event.updated_at |> date_to_string(),
"mediaType" => "text/html",
"startTime" => event.begins_on |> date_to_string(),
"startTime" => event.begins_on |> shift_tz(event.options.timezone) |> date_to_string(),
"joinMode" => to_string(event.join_options),
"endTime" => event.ends_on |> date_to_string(),
"endTime" => event.ends_on |> shift_tz(event.options.timezone) |> date_to_string(),
"tag" => event.tags |> build_tags(),
"maximumAttendeeCapacity" => event.options.maximum_attendee_capacity,
"repliesModerationOption" => event.options.comment_moderation,
@ -131,7 +132,8 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
"ical:status" => event.status |> to_string |> String.upcase(),
"id" => event.url,
"url" => event.url,
"inLanguage" => event.language
"inLanguage" => event.language,
"timezone" => event.options.timezone
}
|> maybe_add_physical_address(event)
|> maybe_add_event_picture(event)
@ -149,8 +151,8 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
end
# Get only elements that we have in EventOptions
@spec get_options(map) :: map
defp get_options(object) do
@spec get_options(map, Address.t() | nil) :: map
defp get_options(object, address) do
%{
maximum_attendee_capacity: object["maximumAttendeeCapacity"],
anonymous_participation: object["anonymousParticipationEnabled"],
@ -159,10 +161,29 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
object,
"repliesModerationOption",
if(Map.get(object, "commentsEnabled", true), do: :allow_all, else: :closed)
)
),
timezone: calculate_timezone(object, address)
}
end
defp calculate_timezone(%{"timezone" => timezone}, %Address{geom: geom}) do
TimezoneDetector.detect(
timezone,
geom,
"Etc/UTC"
)
end
defp calculate_timezone(_object, nil), do: nil
defp calculate_timezone(_object, %Address{geom: geom}) do
TimezoneDetector.detect(
nil,
geom,
"Etc/UTC"
)
end
defp get_metdata(%{"attachment" => attachments}) do
attachments
|> Enum.filter(&(&1["type"] == "PropertyValue"))
@ -171,7 +192,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
defp get_metdata(_), do: []
@spec get_address(map | binary | nil) :: integer | nil
@spec get_address(map | binary | nil) :: Address.t() | nil
defp get_address(address_url) when is_binary(address_url) do
get_address(%{"id" => address_url})
end
@ -180,8 +201,8 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
Logger.debug("Address with an URL, let's check against our own database")
case Addresses.get_address_by_url(url) do
%Address{id: address_id} ->
address_id
%Address{} = address ->
address
_ ->
Logger.debug("not in our database, let's try to create it")
@ -196,13 +217,13 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
defp get_address(nil), do: nil
@spec do_get_address(map) :: integer | nil
@spec do_get_address(map) :: Address.t() | nil
defp do_get_address(map) do
map = AddressConverter.as_to_model_data(map)
case Addresses.create_address(map) do
{:ok, %Address{id: address_id}} ->
address_id
{:ok, %Address{} = address} ->
address
_ ->
nil
@ -217,6 +238,13 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
defp date_to_string(nil), do: nil
defp date_to_string(%DateTime{} = date), do: DateTime.to_iso8601(date)
@spec shift_tz(DateTime.t(), String.t() | nil) :: DateTime.t()
defp shift_tz(%DateTime{} = date, timezone) when is_binary(timezone) do
DateTime.shift_zone!(date, timezone)
end
defp shift_tz(datetime, _tz), do: datetime
defp get_online_address(attachments) do
Enum.find_value(attachments, fn attachment ->
case attachment do

View file

@ -243,6 +243,8 @@ defmodule Mobilizon.GraphQL.Schema.EventType do
description:
"Whether to show or hide the person organizer when event is organized by a group"
)
field(:is_online, :boolean, description: "Whether the event is fully online")
end
@desc """
@ -294,6 +296,8 @@ defmodule Mobilizon.GraphQL.Schema.EventType do
description:
"Whether to show or hide the person organizer when event is organized by a group"
)
field(:is_online, :boolean, description: "Whether the event is fully online")
end
enum :event_metadata_type do

View file

@ -91,6 +91,7 @@ defmodule Mobilizon.GraphQL.Schema.Events.ParticipantType do
arg(:email, :string, description: "The anonymous participant's email")
arg(:message, :string, description: "The anonymous participant's message")
arg(:locale, :string, description: "The anonymous participant's locale")
arg(:timezone, :string, description: "The anonymous participant's timezone")
resolve(&Participant.actor_join_event/3)
end

View file

@ -14,10 +14,12 @@ defmodule Mobilizon do
import Cachex.Spec
alias Mix.Tasks.TzWorld.Update, as: TzWorldUpdate
alias Mobilizon.{Config, Storage, Web}
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Service.{ErrorPage, ErrorReporting}
alias Mobilizon.Service.Export.{Feed, ICalendar}
alias TzWorld.Backend.DetsWithIndexCache
@name Mix.Project.config()[:name]
@version Mix.Project.config()[:version]
@ -36,6 +38,10 @@ defmodule Mobilizon do
@spec start(:normal | {:takeover, node} | {:failover, node}, term) ::
{:ok, pid} | {:ok, pid, term} | {:error, term}
def start(_type, _args) do
# We update and reload TzWorld at runtime so that the data is not contained in releases
TzWorldUpdate.run(nil)
DetsWithIndexCache.handle_call(:reload_data, nil, nil)
children =
[
# supervisors

View file

@ -28,7 +28,8 @@ defmodule Mobilizon.Events.EventOptions do
show_start_time: boolean,
show_end_time: boolean,
timezone: String.t() | nil,
hide_organizer_when_group_event: boolean
hide_organizer_when_group_event: boolean,
is_online: boolean()
}
@attrs [
@ -43,7 +44,8 @@ defmodule Mobilizon.Events.EventOptions do
:show_start_time,
:show_end_time,
:timezone,
:hide_organizer_when_group_event
:hide_organizer_when_group_event,
:is_online
]
@primary_key false
@ -61,6 +63,7 @@ defmodule Mobilizon.Events.EventOptions do
field(:show_end_time, :boolean, default: true)
field(:timezone, :string)
field(:hide_organizer_when_group_event, :boolean, default: false)
field(:is_online, :boolean, default: false)
embeds_many(:offers, EventOffer)
embeds_many(:participation_condition, EventParticipationCondition)

View file

@ -738,6 +738,11 @@ defmodule Mobilizon.Events do
|> Repo.one()
end
@spec get_participant!(integer | String.t()) :: Participant.t()
def get_participant!(participant_id) do
Repo.get_by!(Participant, id: participant_id)
end
@doc """
Gets a single participation for an event and actor.

View file

@ -17,6 +17,7 @@ defmodule Mobilizon.Events.Participant do
@type t :: %__MODULE__{
id: String.t(),
role: ParticipantRole.t(),
code: String.t(),
url: String.t(),
event: Event.t(),
actor: Actor.t(),
@ -24,7 +25,8 @@ defmodule Mobilizon.Events.Participant do
}
@required_attrs [:url, :role, :event_id, :actor_id]
@attrs @required_attrs
@optional_attrs [:code]
@attrs @required_attrs ++ @optional_attrs
@timestamps_opts [type: :utc_datetime]
@ -32,6 +34,7 @@ defmodule Mobilizon.Events.Participant do
schema "participants" do
field(:role, ParticipantRole, default: :participant)
field(:url, :string)
field(:code, :string)
embeds_one(:metadata, Metadata, on_replace: :delete)
@ -64,6 +67,7 @@ defmodule Mobilizon.Events.Participant do
|> cast(attrs, @attrs)
|> cast_embed(:metadata)
|> ensure_url()
|> add_code()
|> validate_required(@required_attrs)
|> unique_constraint(:actor_id, name: :participants_event_id_actor_id_index)
end
@ -93,4 +97,25 @@ defmodule Mobilizon.Events.Participant do
@spec generate_url(String.t()) :: String.t()
defp generate_url(uuid), do: "#{Endpoint.url()}/join/event/#{uuid}"
@spec add_code(Ecto.Changeset.t()) :: Ecto.Changeset.t()
defp add_code(%Ecto.Changeset{} = changeset) do
case fetch_field(changeset, :code) do
{:data, nil} -> put_change(changeset, :code, generate_code())
{_, _code} -> changeset
:error -> put_change(changeset, :code, generate_code())
end
end
# No lookalike symbols
@symbols '6789BCDFGHJKLMNPQRTW'
@symbol_count Enum.count(@symbols) - 1
@code_length 6
@spec generate_code :: String.t()
defp generate_code do
for _ <- 1..@code_length,
into: "",
do: <<Enum.at(@symbols, :rand.uniform(@symbol_count))>>
end
end

View file

@ -15,7 +15,7 @@ defmodule Mobilizon.Events.Participant.Metadata do
locale: String.t()
}
@attrs [:email, :confirmation_token, :cancellation_token, :message, :locale]
@attrs [:email, :confirmation_token, :cancellation_token, :message, :locale, :timezone]
@derive Jason.Encoder
embedded_schema do
@ -24,6 +24,7 @@ defmodule Mobilizon.Events.Participant.Metadata do
field(:cancellation_token, :string)
field(:message, :string)
field(:locale, :string)
field(:timezone, :string)
end
@doc false

View file

@ -16,8 +16,13 @@ defmodule Mobilizon.Service.DateTime do
Mobilizon.Cldr.Time.to_string!(datetime, format: format, locale: locale_or_default(locale))
end
@spec datetime_tz_convert(DateTime.t(), String.t()) :: DateTime.t()
def datetime_tz_convert(%DateTime{} = datetime, timezone) do
@spec datetime_to_date_string(DateTime.t(), String.t(), to_string_format()) :: String.t()
def datetime_to_date_string(%DateTime{} = datetime, locale \\ "en", format \\ :short) do
Mobilizon.Cldr.Date.to_string!(datetime, format: format, locale: locale_or_default(locale))
end
@spec datetime_tz_convert(DateTime.t(), String.t() | nil) :: DateTime.t()
def datetime_tz_convert(%DateTime{} = datetime, timezone) when is_binary(timezone) do
case DateTime.shift_zone(datetime, timezone) do
{:ok, datetime_with_tz} ->
datetime_with_tz
@ -27,6 +32,8 @@ defmodule Mobilizon.Service.DateTime do
end
end
def datetime_tz_convert(%DateTime{} = datetime, nil), do: datetime
@spec datetime_relative(DateTime.t(), String.t()) :: String.t()
def datetime_relative(%DateTime{} = datetime, locale \\ "en") do
Relative.to_string!(datetime, Mobilizon.Cldr,
@ -200,4 +207,9 @@ defmodule Mobilizon.Service.DateTime do
DateTime.compare(DateTime.add(last_notification_sent, 3_600), DateTime.utc_now()) ==
:lt
end
@spec is_same_day?(DateTime.t(), DateTime.t()) :: boolean()
def is_same_day?(%DateTime{} = one, %DateTime{} = two) do
DateTime.to_date(one) == DateTime.to_date(two)
end
end

View file

@ -5,7 +5,7 @@ defmodule Mobilizon.Service.Export.ICalendar do
alias Mobilizon.Addresses.Address
alias Mobilizon.{Config, Events}
alias Mobilizon.Events.Event
alias Mobilizon.Events.{Event, EventOptions}
alias Mobilizon.Service.Export.Common
alias Mobilizon.Service.Formatter.HTML
@ -114,9 +114,9 @@ defmodule Mobilizon.Service.Export.ICalendar do
defp do_export_event(%Event{} = event) do
%ICalendar.Event{
summary: event.title,
dtstart: event.begins_on,
dtstart: begins_on(event),
dtstamp: event.publish_at || DateTime.utc_now(),
dtend: event.ends_on,
dtend: ends_on(event),
description: HTML.strip_tags(event.description),
uid: event.uuid,
url: event.url,
@ -130,4 +130,18 @@ defmodule Mobilizon.Service.Export.ICalendar do
defp vendor do
"Mobilizon #{Config.instance_version()}"
end
defp begins_on(%Event{begins_on: begins_on, options: %EventOptions{timezone: timezone}}) do
shift_tz(begins_on, timezone)
end
defp ends_on(%Event{ends_on: ends_on, options: %EventOptions{timezone: timezone}}) do
shift_tz(ends_on, timezone)
end
defp shift_tz(%DateTime{} = date, timezone) when is_binary(timezone) do
DateTime.shift_zone!(date, timezone)
end
defp shift_tz(%DateTime{} = date, _), do: date
end

View file

@ -3,11 +3,10 @@ defmodule Mobilizon.Service.Workers.Notification do
Worker to send notifications
"""
alias Mobilizon.{Actors, Events, Users}
alias Mobilizon.Actors.Actor
alias Mobilizon.Events
alias Mobilizon.Events.{Event, Participant}
alias Mobilizon.Storage.Page
alias Mobilizon.Users
alias Mobilizon.Users.{Setting, User}
alias Mobilizon.Web.Email.{Mailer, Notification}
@ -22,12 +21,19 @@ defmodule Mobilizon.Service.Workers.Notification do
def perform(%Job{
args: %{"op" => "before_event_notification", "participant_id" => participant_id}
}) do
with %Participant{actor: %Actor{user_id: user_id}, event: %Event{status: :confirmed}} =
participant <- Events.get_participant(participant_id),
%User{email: email, locale: locale, settings: %Setting{notification_before_event: true}} <-
Users.get_user_with_settings!(user_id) do
with %Participant{} = participant <- Events.get_participant(participant_id),
%Event{status: :confirmed} = event <-
Events.get_event_with_preload!(participant.event_id),
%Actor{user_id: user_id} = actor when not is_nil(user_id) <-
Actors.get_actor_with_preload!(participant.actor_id) do
%User{email: email, locale: locale, settings: %Setting{notification_before_event: true}} =
Users.get_user_with_settings!(user_id)
email
|> Notification.before_event_notification(participant, locale)
|> Notification.before_event_notification(
%Participant{participant | event: event, actor: actor},
locale
)
|> Mailer.send_email_later()
:ok
@ -50,7 +56,12 @@ defmodule Mobilizon.Service.Workers.Notification do
Enum.filter(participations, fn participation ->
participation.event.status == :confirmed
end),
true <- length(participations) > 0 do
true <- length(participations) > 0,
participations <-
Enum.map(participations, fn participation ->
%Event{} = event = Events.get_event_with_preload!(participation.event_id)
%Participant{participation | event: event}
end) do
user
|> Notification.on_day_notification(participations, total, locale)
|> Mailer.send_email_later()
@ -79,7 +90,12 @@ defmodule Mobilizon.Service.Workers.Notification do
Enum.filter(participations, fn participation ->
participation.event.status == :confirmed
end),
true <- length(participations) > 0 do
true <- length(participations) > 0,
participations <-
Enum.map(participations, fn participation ->
%Event{} = event = Events.get_event_with_preload!(participation.event_id)
%Participant{participation | event: event}
end) do
user
|> Notification.weekly_notification(participations, total, locale)
|> Mailer.send_email_later()
@ -99,7 +115,7 @@ defmodule Mobilizon.Service.Workers.Notification do
}
}) do
with %User{} = user <- Users.get_user(user_id),
{:ok, %Event{} = event} <- Events.get_event(event_id),
{:ok, %Event{} = event} <- Events.get_event_with_preload(event_id),
%Page{total: total} when total > 0 <-
Events.list_participants_for_event(event_id, [:not_approved]) do
user

View file

@ -18,7 +18,9 @@ defmodule Mobilizon.Web.Email do
|> put_header("Reply-To", Config.instance_email_reply_to())
|> maybe_put_date_header()
|> maybe_put_message_id()
|> assign(:jsonLDMetadata, nil)
|> assign(:instance_name, Config.instance_name())
|> assign(:offer_unsupscription, true)
|> put_html_layout({EmailView, "email.html"})
|> put_text_layout({EmailView, "email.text"})
end

View file

@ -14,15 +14,24 @@ defmodule Mobilizon.Web.Email.Event do
alias Mobilizon.Events.{Event, Participant}
alias Mobilizon.Storage.Repo
alias Mobilizon.Users.{Setting, User}
alias Mobilizon.Web.Email
alias Mobilizon.Web.JsonLD.ObjectView
@important_changes [:title, :begins_on, :ends_on, :status, :physical_address]
@spec event_updated(String.t(), Actor.t(), Event.t(), Event.t(), MapSet.t(), String.t()) ::
@spec event_updated(
Participant.t(),
String.t(),
Actor.t(),
Event.t(),
Event.t(),
MapSet.t(),
String.t()
) ::
Bamboo.Email.t()
def event_updated(
email,
%Participant{} = participant,
%Actor{} = actor,
%Event{} = old_event,
%Event{} = event,
@ -38,6 +47,11 @@ defmodule Mobilizon.Web.Email.Event do
title: old_event.title
)
json_ld =
"participation.json"
|> ObjectView.render(%{participant: %Participant{participant | event: event, actor: actor}})
|> Jason.encode!()
Email.base_email(to: {Actor.display_name(actor), email}, subject: subject)
|> assign(:locale, locale)
|> assign(:event, event)
@ -45,6 +59,7 @@ defmodule Mobilizon.Web.Email.Event do
|> assign(:changes, changes)
|> assign(:subject, subject)
|> assign(:timezone, timezone)
|> assign(:jsonLDMetadata, json_ld)
|> Email.add_event_attachment(event)
|> render(:event_updated)
end
@ -83,13 +98,14 @@ defmodule Mobilizon.Web.Email.Event do
MapSet.t()
) :: Bamboo.Email.t()
defp send_notification_for_event_update_to_participant(
{%Participant{} = _participant, %Actor{} = actor,
{%Participant{} = participant, %Actor{} = actor,
%User{locale: locale, email: email} = _user, %Setting{timezone: timezone}},
%Event{} = old_event,
%Event{} = event,
diff
) do
do_send_notification_for_event_update_to_participant(
participant,
email,
actor,
old_event,
@ -101,13 +117,14 @@ defmodule Mobilizon.Web.Email.Event do
end
defp send_notification_for_event_update_to_participant(
{%Participant{} = _participant, %Actor{} = actor,
{%Participant{} = participant, %Actor{} = actor,
%User{locale: locale, email: email} = _user, nil},
%Event{} = old_event,
%Event{} = event,
diff
) do
do_send_notification_for_event_update_to_participant(
participant,
email,
actor,
old_event,
@ -119,7 +136,8 @@ defmodule Mobilizon.Web.Email.Event do
end
defp send_notification_for_event_update_to_participant(
{%Participant{metadata: %{email: email}} = _participant, %Actor{} = actor, nil, nil},
{%Participant{metadata: %{email: email} = participant_metadata} = participant,
%Actor{} = actor, nil, nil},
%Event{} = old_event,
%Event{} = event,
diff
@ -128,17 +146,19 @@ defmodule Mobilizon.Web.Email.Event do
locale = Gettext.get_locale()
do_send_notification_for_event_update_to_participant(
participant,
email,
actor,
old_event,
event,
diff,
"Etc/UTC",
Map.get(participant_metadata, :timezone, "Etc/UTC"),
locale
)
end
@spec do_send_notification_for_event_update_to_participant(
Participant.t(),
String.t(),
Actor.t(),
Event.t(),
@ -148,6 +168,7 @@ defmodule Mobilizon.Web.Email.Event do
String.t()
) :: Bamboo.Email.t()
defp do_send_notification_for_event_update_to_participant(
participant,
email,
actor,
old_event,
@ -157,7 +178,7 @@ defmodule Mobilizon.Web.Email.Event do
locale
) do
email
|> Email.Event.event_updated(actor, old_event, event, diff, timezone, locale)
|> Email.Event.event_updated(participant, actor, old_event, event, diff, timezone, locale)
|> Email.Mailer.send_email_later()
end
end

View file

@ -10,6 +10,7 @@ defmodule Mobilizon.Web.Email.Notification do
alias Mobilizon.Events.{Event, Participant}
alias Mobilizon.Users.{Setting, User}
alias Mobilizon.Web.Email
alias Mobilizon.Web.JsonLD.ObjectView
@spec before_event_notification(String.t(), Participant.t(), String.t()) ::
Bamboo.Email.t()
@ -30,6 +31,7 @@ defmodule Mobilizon.Web.Email.Notification do
|> assign(:locale, locale)
|> assign(:participant, participant)
|> assign(:subject, subject)
|> assign(:jsonLDMetadata, build_json_ld(participant))
|> Email.add_event_attachment(event)
|> render(:before_event_notification)
end
@ -57,6 +59,7 @@ defmodule Mobilizon.Web.Email.Notification do
|> assign(:total, total)
|> assign(:timezone, timezone)
|> assign(:subject, subject)
|> assign(:jsonLDMetadata, build_json_ld(participations))
|> render(:on_day_notification)
end
@ -83,6 +86,7 @@ defmodule Mobilizon.Web.Email.Notification do
|> assign(:total, total)
|> assign(:timezone, timezone)
|> assign(:subject, subject)
|> assign(:jsonLDMetadata, build_json_ld(participations))
|> render(:notification_each_week)
end
@ -110,4 +114,17 @@ defmodule Mobilizon.Web.Email.Notification do
|> assign(:subject, subject)
|> render(:pending_participation_notification)
end
@spec build_json_ld(Participant.t()) :: String.t()
defp build_json_ld(%Participant{} = participant) do
"participation.json"
|> ObjectView.render(%{participant: participant})
|> Jason.encode!()
end
defp build_json_ld(participations) when is_list(participations) do
participations
|> Enum.map(&ObjectView.render("participation.json", %{participant: &1}))
|> Jason.encode!()
end
end

View file

@ -8,11 +8,11 @@ defmodule Mobilizon.Web.Email.Participation do
import Mobilizon.Web.Gettext
alias Mobilizon.Actors.Actor
alias Mobilizon.Config
alias Mobilizon.{Config, Events, Users}
alias Mobilizon.Events.{Event, Participant}
alias Mobilizon.Users
alias Mobilizon.Users.User
alias Mobilizon.Web.Email
alias Mobilizon.Web.JsonLD.ObjectView
@doc """
Send participation emails to local user
@ -59,7 +59,7 @@ defmodule Mobilizon.Web.Email.Participation do
def participation_updated(
email,
%Participant{event: event, role: :rejected},
%Participant{event: event, role: :rejected} = participant,
locale
) do
Gettext.put_locale(locale)
@ -73,13 +73,15 @@ defmodule Mobilizon.Web.Email.Participation do
Email.base_email(to: email, subject: subject)
|> assign(:locale, locale)
|> assign(:event, event)
|> assign(:jsonLDMetadata, json_ld(participant))
|> assign(:subject, subject)
|> render(:event_participation_rejected)
end
def participation_updated(
email,
%Participant{event: %Event{join_options: :free} = event, role: :participant},
%Participant{event: %Event{join_options: :free} = event, role: :participant} =
participant,
locale
) do
Gettext.put_locale(locale)
@ -94,12 +96,13 @@ defmodule Mobilizon.Web.Email.Participation do
|> assign(:locale, locale)
|> assign(:event, event)
|> assign(:subject, subject)
|> assign(:jsonLDMetadata, json_ld(participant))
|> render(:event_participation_confirmed)
end
def participation_updated(
email,
%Participant{event: event, role: :participant},
%Participant{event: event, role: :participant} = participant,
locale
) do
Gettext.put_locale(locale)
@ -114,6 +117,7 @@ defmodule Mobilizon.Web.Email.Participation do
|> assign(:locale, locale)
|> assign(:event, event)
|> assign(:subject, subject)
|> assign(:jsonLDMetadata, json_ld(participant))
|> Email.add_event_attachment(event)
|> render(:event_participation_approved)
end
@ -136,7 +140,16 @@ defmodule Mobilizon.Web.Email.Participation do
Email.base_email(to: email, subject: subject)
|> assign(:locale, locale)
|> assign(:participant, participant)
|> assign(:jsonLDMetadata, json_ld(participant))
|> assign(:subject, subject)
|> render(:anonymous_participation_confirmation)
end
defp json_ld(participant) do
event = Events.get_event_with_preload!(participant.event_id)
"participation.json"
|> ObjectView.render(%{participant: %Participant{participant | event: event}})
|> Jason.encode!()
end
end

View file

@ -34,6 +34,7 @@ defmodule Mobilizon.Web.Email.User do
|> assign(:locale, locale)
|> assign(:token, confirmation_token)
|> assign(:subject, subject)
|> assign(:offer_unsupscription, false)
|> render(:registration_confirmation)
end
@ -54,6 +55,7 @@ defmodule Mobilizon.Web.Email.User do
|> assign(:locale, locale)
|> assign(:token, reset_password_token)
|> assign(:subject, subject)
|> assign(:offer_unsupscription, false)
|> render(:password_reset)
end
@ -161,6 +163,7 @@ defmodule Mobilizon.Web.Email.User do
|> assign(:locale, user_locale)
|> assign(:subject, subject)
|> assign(:new_email, unconfirmed_email)
|> assign(:offer_unsupscription, false)
|> render(:email_changed_old)
end
@ -181,6 +184,7 @@ defmodule Mobilizon.Web.Email.User do
|> assign(:locale, user_locale)
|> assign(:subject, subject)
|> assign(:token, confirmation_token)
|> assign(:offer_unsupscription, false)
|> render(:email_changed_new)
end

View file

@ -0,0 +1,8 @@
<%= if @event.options.timezone == nil do %>
<%= @date |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale , :short) %>
<% else %>
<strong><%= @date |> datetime_tz_convert(@event.options.timezone) |> datetime_to_string(@locale, :short) %></strong><br />
<%= if @event.options.timezone != @timezone do %>
<span style="font-size: 13px;"><%= gettext "🌐 %{timezone} %{offset}", timezone: @event.options.timezone, offset: @date |> datetime_tz_convert(@event.options.timezone) |> Cldr.DateTime.Formatter.zone_gmt() %></span>
<% end %>
<% end %>

View file

@ -0,0 +1 @@
<%= if @event.options.timezone == nil do %><%= @date |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %><% else %><%= if @event.options.timezone != @timezone do %><%= gettext "%{date_time} (%{timezone} %{offset})", date_time: @date |> datetime_tz_convert(@event.options.timezone) |> datetime_to_string(@locale), timezone: @event.options.timezone, offset: @date |> datetime_tz_convert(@event.options.timezone) |> Cldr.DateTime.Formatter.zone_gmt() %><% else %><%= gettext "%{date_time} (in your timezone %{timezone} %{offset})", date_time: @date |> datetime_tz_convert(@event.options.timezone) |> datetime_to_string(@locale), timezone: @event.options.timezone, offset: @date |> datetime_tz_convert(@event.options.timezone) |> Cldr.DateTime.Formatter.zone_gmt() %><% end %><% end %>

View file

@ -0,0 +1,14 @@
<%= cond do %>
<%= @end_date == nil -> %>
<%= render("date/event_tz_date.html", date: @start_date, event: @event, timezone: @timezone, locale: @locale) %>
<% is_same_day?(@start_date, @end_date) -> %>
<strong><%= gettext "On %{date} from %{start_time} to %{end_time}", date: datetime_to_date_string(@start_date, @locale), start_time: datetime_to_time_string(@start_date, @locale), end_time: datetime_to_time_string(@end_date, @locale) %></strong><br />
<%= if @event.options.timezone != @timezone do %>
<span style="font-size: 13px;"><%= gettext "🌐 %{timezone} %{offset}", timezone: @event.options.timezone, offset: Cldr.DateTime.Formatter.zone_gmt(@start_date) %></span>
<% end %>
<% true -> %>
<strong><%= gettext "From the %{start} to the %{end}", start: datetime_to_string(@start_date, @locale, :short), end: datetime_to_string(@end_date, @locale, :short) %></strong><br />
<%= if @event.options.timezone != @timezone do %>
<span style="font-size: 13px;"><%= gettext "🌐 %{timezone} %{offset}", timezone: @event.options.timezone, offset: Cldr.DateTime.Formatter.zone_gmt(@start_date) %></span>
<% end %>
<% end %>

View file

@ -1,6 +1,3 @@
<!-- THIS EMAIL WAS BUILT AND TESTED WITH LITMUS http://litmus.com -->
<!-- IT WAS RELEASED UNDER THE MIT LICENSE https://opensource.org/licenses/MIT -->
<!-- QUESTIONS? TWEET US @LITMUSAPP -->
<!DOCTYPE html>
<html lang={"#{ @locale }"}>
<head>
@ -41,6 +38,11 @@
/* ANDROID CENTER FIX */
div[style*="margin: 16px 0;"] { margin: 0 !important; }
</style>
<%= if @jsonLDMetadata do %>
<script type="application/ld+json">
<%= @jsonLDMetadata |> raw %>
</script>
<% end %>
</head>
<body style="background-color: #ECEBF2; margin: 0 !important; padding: 0 !important;mso-line-height-rule: exactly;">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
@ -56,7 +58,7 @@
<tr>
<td align="center" valign="top" style="padding: 40px 10px 40px 10px;">
<a href={"#{ Mobilizon.Web.Endpoint.url() }"} target="_blank">
<img alt={"#{ @instance_name }"} src={"#{ "#{Mobilizon.Web.Endpoint.url()}/img/mobilizon_logo.png" }"} width="366" height="108" style="display: block; width: 366px; max-width: 366px; min-width: 366px; font-family: 'Roboto', Helvetica, Arial, sans-serif; color: #ffffff; font-size: 18px;" border="0">
<img alt={"#{ @instance_name }"} src={"#{ "#{Mobilizon.Web.Endpoint.url()}/img/mobilizon_logo.png" }"} width="340" height="108" style="display: block; width: 340px; max-width: 370px; min-width: 340px; font-family: 'Roboto', Helvetica, Arial, sans-serif; color: #ffffff; font-size: 18px;" border="0">
</a>
</td>
</tr>
@ -140,6 +142,11 @@
<tr>
<td bgcolor="#ECEBF2" align="center" style="padding: 30px 30px 30px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 18px;" >
<p style="margin: 0;">
<%= if @offer_unsupscription do %>
<a href={"#{Mobilizon.Web.Endpoint.url()}/settings/notifications"}>
<%= gettext("Manage your notification settings") %>
</a>
<% end %>
<%= gettext("<b>%{instance}</b> is powered by Mobilizon.", instance: @instance_name) |> raw %><br />
<a href="https://joinmobilizon.org"><%= gettext "Learn more about Mobilizon here!" %></a>
</p>

View file

@ -74,7 +74,7 @@
<%= gettext "Start" %>
</td>
<td bgcolor="#ffffff" align="left">
<b><%= @event.begins_on |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %></b>
<%= render("date/event_tz_date.html", event: @event, date: @event.begins_on, timezone: @timezone, locale: @locale) %>
</td>
</tr>
<% end %>
@ -84,7 +84,7 @@
<%= gettext "End" %>
</td>
<td bgcolor="#ffffff" align="left">
<b><%= @event.ends_on |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %></b>
<%= render("date/event_tz_date.html", event: @event, date: @event.ends_on, timezone: @timezone, locale: @locale) %>
</td>
</tr>
<% end %>

View file

@ -14,11 +14,9 @@
<%= if MapSet.member?(@changes, :title) do %>
<%= gettext "New title: %{title}", title: @event.title %>
<% end %>
<%= if MapSet.member?(@changes, :begins_on) do %>
<%= gettext "Start %{begins_on}", begins_on: @event.begins_on |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %>
<%= if MapSet.member?(@changes, :begins_on) do %><%= render("date/event_tz_date.text", event: @event, date: @event.begins_on, timezone: @timezone, locale: @locale) %>
<% end %>
<%= if MapSet.member?(@changes, :ends_on) && !is_nil(@event.ends_on) do %>
<%= gettext "End %{ends_on}", ends_on: @event.ends_on |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %>
<%= if MapSet.member?(@changes, :ends_on) && !is_nil(@event.ends_on) do %><%= render("date/event_tz_date.text", event: @event, date: @event.ends_on, timezone: @timezone, locale: @locale) %>
<% end %>
<%= gettext "Visit the updated event page: %{link}", link: Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid) %>
<%= ngettext "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button.", "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.", 1 %>

View file

@ -10,7 +10,7 @@
<tr>
<td bgcolor="#ffffff" align="center" valign="top" style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;">
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext "What's up this week?" %>
<%= gettext "On the agenda this week" %>
</h1>
</td>
</tr>
@ -40,27 +40,17 @@
</td>
</tr>
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<td bgcolor="#ffffff" align="left" style="padding: 20px 15px 0px 15px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<%= if @total > 1 do %>
<ul style="margin: 0;">
<ul style="margin: 0;padding: 0;list-style-type: none;">
<%= for participation <- @participations do %>
<li>
<strong>
<%= participation.event.begins_on |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %>
</strong>
<a href={"#{ Routes.page_url(Mobilizon.Web.Endpoint, :event, participation.event.uuid) }"} target="_blank">
<%= participation.event.title %>
</a>
<li style="padding: 0; border: 1px solid rgba(0,0,0,.125); border-radius: .25rem; margin-bottom: 10px">
<%= render("participation/event_card.html", event: participation.event, timezone: @timezone, locale: @locale) %>
</li>
<% end %>
</ul>
<% else %>
<strong>
<%= @participation.event.begins_on |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %>
</strong>
<a href={"#{ Routes.page_url(Mobilizon.Web.Endpoint, :event, @participation.event.uuid) }"} target="_blank">
<%= @participation.event.title %>
</a>
<%= render("participation/event_card.html", event: @participation.event, timezone: @timezone, locale: @locale) %>
<% end %>
</td>
</tr>

View file

@ -1,11 +1,11 @@
<%= gettext "What's up this week?" %>
<%= gettext "On the agenda this week" %>
==
<%= ngettext "You have one event this week:", "You have %{total} events this week:", @total, total: @total %>
<%= if @total > 1 do %>
<%= for participation <- @participations do %>
- <%= participation.event.begins_on |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %> - <%= participation.event.title %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, participation.event.uuid) %>
- <%= render("date/event_tz_date.text", event: participation.event, date: participation.event.begins_on, timezone: @timezone, locale: @locale) %> - <%= participation.event.title %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, participation.event.uuid) %>
<% end %>
<% else %>
<%= @participation.event.begins_on |> datetime_tz_convert(@timezone) |> datetime_to_string(@locale) %> - <%= @participation.event.title %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @participation.event.uuid) %>
<%= render("date/event_tz_date.text", event: @participation.event, date: @participation.event.begins_on, timezone: @timezone, locale: @locale) %> - <%= @participation.event.title %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @participation.event.uuid) %>
<% end %>
<%= ngettext "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button.", "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.", @total %>

View file

@ -45,22 +45,12 @@
<ul style="margin: 0;">
<%= for participation <- @participations do %>
<li>
<strong>
<%= participation.event.begins_on |> DateTime.shift_zone!(@timezone) |> datetime_to_time_string(@locale) %>
</strong>
<a href={"#{ Routes.page_url(Mobilizon.Web.Endpoint, :event, participation.event.uuid) }"} target="_blank">
<%= participation.event.title %>
</a>
<%= render("participation/event_card.html", event: participation.event, timezone: @timezone, locale: @locale) %>
</li>
<% end %>
</ul>
<% else %>
<strong>
<%= @participation.event.begins_on |> DateTime.shift_zone!(@timezone) |> datetime_to_time_string(@locale) %>
</strong>
<a href={"#{ Routes.page_url(Mobilizon.Web.Endpoint, :event, @participation.event.uuid) }"} target="_blank">
<%= @participation.event.title %>
</a>
<%= render("participation/event_card.html", event: @participation.event, timezone: @timezone, locale: @locale) %>
<% end %>
</td>
</tr>

View file

@ -1,14 +1,11 @@
<%= gettext "What's up today?" %>
==
<%= ngettext "You have one event today:", "You have %{total} events today:", @total, total: @total %>
<%= if @total > 1 do %>
<%= for participation <- @participations do %>
- <%= participation.event.begins_on |> DateTime.shift_zone!(@timezone) |> datetime_to_time_string(@locale) %> - <%= participation.event.title %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, participation.event.uuid) %>
- <%= render("date/event_tz_date.text", event: participation.event, date: participation.event.begins_on, timezone: @timezone, locale: @locale) %> - <%= participation.event.title %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, participation.event.uuid) %>
<% end %>
<% else %>
<%= DateTime.shift_zone!(@participation.event.begins_on, @timezone) |> datetime_to_time_string(@locale) %> - <%= @participation.event.title %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @participation.event.uuid) %>
<%= render("date/event_tz_date.text", event: @participation.event, date: @participation.event.begins_on, timezone: @timezone, locale: @locale) %> - <%= @participation.event.title %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @participation.event.uuid) %>
<% end %>
<%= ngettext "Would you wish to cancel your attendance, visit the event page through the link above and click the « Attending » button.", "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.", @total %>

View file

@ -0,0 +1,91 @@
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; width: 100%; display: table; margin: 0; padding: 0; border: 0;">
<thead style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<div style="vertical-align: baseline; border-bottom-color: rgb(224,224,224); border-bottom-style: solid; margin: 0; padding: 0; border-width: 0 0 1px;">
</div>
</td>
</tr>
</thead>
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 16px 0; border: 0;" valign="middle" align="left">
<div style="vertical-align: baseline; margin: 0 0 0 10px; padding: 0; border: 0;">
<div class="event__content_info" style="vertical-align: baseline; display: inline-block; margin: 0; padding: 0; border: 0;">
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<!-- row for datetime -->
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 24px 0; border: 0;" valign="baseline" align="left">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAAAf0lEQVRIx2NgGEDwH4opUsdEa1eiW+DNwMDwBM1F/wlgZHWPGRgYPPFZ+JgIAwnhR8gGMmIJT2oAuLl0jwOqAxZCXiQRYATx0A+iAYsDfABbUsYZZ0M/iIa+BeREMkmZkO5B9ARKk1tUMzBAinycwJOBsjrhEQMDgwetQ2WYAQCSDEUsvZlgYAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0xMC0xNFQxNDo1MTowNyswMDowMCvAzKIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMTAtMTRUMTQ6NTE6MDcrMDA6MDBanXQeAAAAAElFTkSuQmCC" style="outline: none; text-decoration: none; width: 21px; max-width: 100%; clear: both; display: block; vertical-align: baseline; margin: 0; padding: 0; border: 0;">
</td>
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 0 12px; border: 0;" valign="top" align="left">
<p style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: 300; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<%= render("date/event_tz_date_range.html", event: @event, start_date: datetime_tz_convert(@event.begins_on, @event.options.timezone), end_date: datetime_tz_convert(@event.ends_on, @event.options.timezone), timezone: @timezone, locale: @locale) %>
</p>
</td>
</tr>
<!-- row for datetime end -->
<%= if @event.physical_address do %>
<!-- venue block -->
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 24px 0; border: 0;" valign="baseline" align="left">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAABHklEQVRIx+XUsUoDQRQF0EMUtNPGYGsULMTeNuonqJ8SsNZ/kLSW/kEaLQykMvoJNoKdGkWCQrTYDS6b3c1O1i4XbjHz3rt35u2+YR5Qxznu8RGzj7M4VgnHGOAnhwMcVREfFYiPOZrFpD7l5Gm+YS1LaCHH4BSHqb1XXOIOW1hOxJYwxE3ZGzykTviCjUS8ERsmc/ohLXpPFV9k5LRNfvAJ1HIMvkrk1abUFKKX0aJGIr6Z0aJeltBijsEt9hLrVVGPr+L1CVYyakpjR/lfdMzdEAPoBoh3Q8XhIMBgfxYD6JQQ78wqTjSxnwXiQ2xXMYBWgUGrqjjRQGW16lr+WxaMOp4S4s9Y/y/xMZr4jtksWxRyxUfRk9HxN9FzgF/m1ZTuGrd6hAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0xMC0xNFQxNDo1Mjo0NyswMDowMES9eVsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMTAtMTRUMTQ6NTI6NDcrMDA6MDA14MHnAAAAAElFTkSuQmCC" style="outline: none; text-decoration: none; width: 21px; max-width: 100%; clear: both; display: block; vertical-align: baseline; margin: 0; padding: 0; border: 0;">
</td>
<td class="m_8261046153705514309event__content_local" style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="top" align="left">
<p style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: 300; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<%= render_address(@event.physical_address) %>
</p>
</td>
</tr>
<!-- venue block end -->
<% end %>
<%= if @event.options.is_online do %>
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 24px 0; border: 0;" valign="baseline" align="left">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAABWUlEQVRIx+WUP04CURDGf5pIQsROOAMHsNSgVmpp9AZ6AG1MiA1CsZ6DCxiwMx5BtKNQGs2uLf9aFov9DC8s++ftNiZOMpmdnW/mm8x78+A/SAVoAa/AVNoDmorlknNgDMwjdAyc5Snuq9ADUAM2pftARzE/C0nF6PwmBlcXZgSUbQhaRucABeAe8AAXcPQPoCvsnQ3Bm5Jq8h3C83cUO5DfsyGYKKkk31tB8K3YFosDD8l6BME8wQeYya7FYCIJBrI7su0VmPYSZoCFNNVRR36BYOYu4UN+FLZhQ2Be03oM7laYIbBtQwDB8vwuWpfgtpSkh0bnPnBqW9wkGRH9VAzzFC/KlgmW6IXg+k703TDGUrQtfgK8A7spsHvAh3JSyQbQN8bwBFwAVRaPXRW4BJ4NXF+5iXIdM/MkvUpD4OUgcJeLrdrkGdklVe4x8JWh+0/gKEdzf1R+ADQolKDXzQqjAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTEwLTE1VDEzOjA5OjAzKzAwOjAwbhSTzgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0xMC0xNVQxMzowOTowMyswMDowMB9JK3IAAAAASUVORK5CYII=" style="outline: none; text-decoration: none; width: 21px; max-width: 100%; clear: both; display: block; vertical-align: baseline; margin: 0; padding: 0; border: 0;">
</td>
<td class="m_8261046153705514309event__content_local" style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="top" align="left">
<p style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: 300; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<%= gettext "Online event" %>
</p>
</td>
</tr>
<% end %>
</tbody>
</table>
</div>
<div class="event__content_attend" style="vertical-align: middle; margin: 0; padding: 0; border: 0;">
<table class="button btn-attend event__content_position" style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; width: auto; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: 500; line-height: 1.3; font-size: 16px; border-radius: 4px; margin: 0; padding: 0px; border: none;" valign="middle" bgcolor="FE3859" align="center">
<a href={Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)} style="color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: bold; text-align: left; line-height: 14px; text-decoration: none; vertical-align: baseline; font-size: 16px; display: inline-block; border-radius: 3px; white-space: nowrap; margin: 0; padding: 12px 32px; border: none;" target="_blank">
<%= gettext("Manage your participation") %>
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
<tfoot style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<div style="vertical-align: baseline; border-bottom-color: rgb(224,224,224); border-bottom-style: solid; margin: 0; padding: 0; border-width: 0 0 1px;">
</div>
</td>
</tr>
</tfoot>
</table>

View file

@ -0,0 +1,12 @@
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; width: 100%; display: table; height: 180px; margin: 0 0 24px; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<a href={Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)} style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: normal; text-align: left; line-height: 1.3; text-decoration: none; vertical-align: baseline; margin: 0; padding: 0; border: 0;" target="_blank">
<div class="event-intro__banner_photo" style={"vertical-align: baseline; height: 180px; background: url(#{@event.picture.file.url}) center 40% / cover; margin: -1px -1px 10px; padding: 0; border: 0;"}>
</div>
</a>
</td>
</tr>
</tbody>
</table>

View file

@ -0,0 +1,33 @@
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; width: 100%; display: table; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<div style="vertical-align: baseline; width: 100%; margin: 0 0 0 10px; padding: 0; border: 0;display: flex;">
<%= cond do %>
<% @event.attributed_to != nil and @event.attributed_to.avatar != nil && @event.attributed_to.avatar.url != nil -> %>
<img style="float: left;border-radius: 75%;margin-right: 8px;max-width: 30px;margin-top: auto;margin-bottom: auto;" src={@event.attributed_to.avatar.url}>
<% @event.organizer_actor.avatar != nil and @event.organizer_actor.avatar.url != nil -> %>
<img style="float: left;border-radius: 75%;margin-right: 8px;max-width: 30px;margin-top: auto;margin-bottom: auto;" src={@event.organizer_actor.avatar.url}>
<% true -> %>
<% end %>
<div class="event-info__title" style="vertical-align: top; float: left; width: 75%; margin: 0; padding: 0; border: 0;">
<a href={Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)} style="color: rgb(66,81,90); font-family: Helvetica,Arial,sans-serif; font-weight: 700; text-align: left; line-height: 1.4; text-decoration: none; vertical-align: baseline; font-size: 22px; letter-spacing: 0.2px; margin: 0 0 30px; padding: 0; border: 0;" target="_blank">
<%= @event.title %>
</a>
<p style="color: rgb(254,56,89); font-family: Helvetica,Arial,sans-serif; font-weight: 400; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<%= if @event.attributed_to do %>
<a href={Routes.page_url(:actor, Mobilizon.Actors.Actor.preferred_username_and_domain(@event.attributed_to))} style="color: rgb(254,56,89); font-family: Helvetica,Arial,sans-serif; font-weight: normal; text-align: left; line-height: 1.3; text-decoration: none; vertical-align: baseline; margin: 0; padding: 0; border: 0;" target="_blank">
<%= @event.attributed_to.name || @event.attributed_to.preferred_username %>
</a>
<% else %>
<span style="color: rgb(254,56,89); font-family: Helvetica,Arial,sans-serif; font-weight: normal; text-align: left; line-height: 1.3; text-decoration: none; vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<%= @event.organizer_actor.name || @event.organizer_actor.preferred_username %>
</span>
<% end %>
</p>
</div>
</div>
</td>
</tr>
</tbody>
</table>

View file

@ -0,0 +1,24 @@
<%= if @event.picture do %>
<!-- event image -->
<%= render("participation/card/_picture.html", event: @event) %>
<!-- event image end -->
<% end %>
<%= render("participation/card/_title.html", event: @event) %>
<%= render("participation/card/_metadata.html", event: @event, timezone: @timezone, locale: @locale) %>
<%= if @event.description do %>
<div class="event-working" style="vertical-align: baseline; width: 450px; margin: 0 0 0 10px; padding: 7.5px 0 15px; border: 0;">
<p style="color: rgb(46,62,72); font-family: Helvetica,Arial,sans-serif; font-weight: 700; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0 0 7.5px; border: 0;" align="left">
<%= gettext("Details") %>
</p>
<p class="event-working__detail" style="color: rgb(87,100,108); font-family: Helvetica,Arial,sans-serif; font-weight: 300; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<%= process_description(@event.description) %>
</p>
<%= if String.length(@event.description) > 200 do %>
<p style="color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<a href={Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)} style="color: rgb(254,56,89); font-family: Helvetica,Arial,sans-serif; font-weight: 400; text-align: left; line-height: 1.5; text-decoration: none; vertical-align: baseline; font-size: 16px; margin: 0; padding: 0; border: 0;" target="_blank">
<%= gettext("Read more") %>
</a>
</p>
<% end %>
</div>
<% end %>

View file

@ -57,7 +57,7 @@
<td bgcolor="#ffffff" align="center" style="padding: 20px 30px 60px 30px;">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" style="border-radius: 3px;" bgcolor="#474467"><a href={"#{ "#{Mobilizon.Web.Endpoint.url()}/password-reset/#{@token}" }"} target="_blank" style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #474467; display: inline-block;">
<td align="center" style="border-radius: 3px;" bgcolor="#474467"><a href={"#{Mobilizon.Web.Endpoint.url()}/password-reset/#{@token}"} target="_blank" style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #474467; display: inline-block;">
<%= gettext "Reset Password" %>
</a></td>
</tr>

View file

@ -1,8 +1,10 @@
defmodule Mobilizon.Web.EmailView do
use Mobilizon.Web, :view
alias Mobilizon.Service.Address
alias Mobilizon.Service.DateTime, as: DateTimeRenderer
import Mobilizon.Web.Gettext
import Mobilizon.Service.Metadata.Utils, only: [process_description: 1]
defdelegate datetime_to_string(datetime, locale \\ "en", format \\ :medium),
to: DateTimeRenderer
@ -10,6 +12,11 @@ defmodule Mobilizon.Web.EmailView do
defdelegate datetime_to_time_string(datetime, locale \\ "en", format \\ :short),
to: DateTimeRenderer
defdelegate datetime_to_date_string(datetime, locale \\ "en", format \\ :short),
to: DateTimeRenderer
defdelegate datetime_tz_convert(datetime, timezone), to: DateTimeRenderer
defdelegate datetime_relative(datetime, locale \\ "en"), to: DateTimeRenderer
defdelegate render_address(address), to: Address
defdelegate is_same_day?(one, two), to: DateTimeRenderer
end

View file

@ -3,10 +3,11 @@ defmodule Mobilizon.Web.JsonLD.ObjectView do
alias Mobilizon.Actors.Actor
alias Mobilizon.Addresses.Address
alias Mobilizon.Events.Event
alias Mobilizon.Events.{Event, Participant, ParticipantRole}
alias Mobilizon.Posts.Post
alias Mobilizon.Web.Endpoint
alias Mobilizon.Web.JsonLD.ObjectView
alias Mobilizon.Web.Router.Helpers, as: Routes
@spec render(String.t(), map()) :: map()
def render("group.json", %{group: %Actor{} = group}) do
@ -25,6 +26,13 @@ defmodule Mobilizon.Web.JsonLD.ObjectView do
"name" => Actor.display_name(event.organizer_actor)
}
organizer =
if event.organizer_actor.avatar do
Map.put(organizer, "image", event.organizer_actor.avatar.url)
else
organizer
end
json_ld = %{
"@context" => "https://schema.org",
"@type" => "Event",
@ -94,6 +102,35 @@ defmodule Mobilizon.Web.JsonLD.ObjectView do
}
end
def render("participation.json", %{
participant: %Participant{} = participant
}) do
res = %{
"@context" => "http://schema.org",
"@type" => "EventReservation",
"underName" => %{
"@type" => "Person",
"name" => participant.actor.name || participant.actor.preferred_username
},
"reservationFor" => render("event.json", %{event: participant.event}),
"reservationStatus" => reservation_status(participant.role),
"modifiedTime" => participant.updated_at,
"modifyReservationUrl" => Routes.page_url(Endpoint, :event, participant.event.uuid)
}
if participant.code do
Map.put(res, "reservationNumber", participant.code)
else
res
end
end
@spec reservation_status(ParticipantRole.t()) :: String.t()
defp reservation_status(:rejected), do: "https://schema.org/ReservationCancelled"
defp reservation_status(:not_confirmed), do: "https://schema.org/ReservationPending"
defp reservation_status(:not_approved), do: "https://schema.org/ReservationHold"
defp reservation_status(_), do: "https://schema.org/ReservationConfirmed"
@spec render_location(map()) :: map() | nil
defp render_location(%{physical_address: %Address{} = address}),
do: render_one(address, ObjectView, "place.json", as: :address)

View file

@ -201,12 +201,13 @@ defmodule Mobilizon.Mixfile do
{:html_entities, "~> 0.5"},
{:sweet_xml, "~> 0.7"},
{:web_push_encryption, "~> 0.3"},
{:eblurhash, "~> 1.2"},
{:eblurhash, "1.2.0"},
{:struct_access, "~> 1.1.2"},
{:paasaa, "~> 0.5.0"},
{:nimble_csv, "~> 1.1"},
{:export, "~> 0.1.0"},
{:tz_world, "~> 0.5.0"},
{:tz_world, "~> 0.7.0"},
{:tzdata, "~> 1.1"},
# Dev and test dependencies
{:phoenix_live_reload, "~> 1.2", only: [:dev, :e2e]},
{:ex_machina, "~> 2.3", only: [:dev, :test]},

View file

@ -20,18 +20,18 @@
"cowlib": {:hex, :cowlib, "2.11.0", "0b9ff9c346629256c42ebe1eeb769a83c6cb771a6ee5960bd110ab0b9b872063", [:make, :rebar3], [], "hexpm", "2b3e9da0b21c4565751a6d4901c20d1b4cc25cbb7fd50d91d2ab6dd287bc86a9"},
"credo": {:hex, :credo, "1.5.6", "e04cc0fdc236fefbb578e0c04bd01a471081616e741d386909e527ac146016c6", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "4b52a3e558bd64e30de62a648518a5ea2b6e3e5d2b164ef5296244753fc7eb17"},
"dataloader": {:hex, :dataloader, "1.0.7", "58351b335673cf40601429bfed6c11fece6ce7ad169b2ac0f0fe83e716587391", [:mix], [{:ecto, ">= 0.0.0", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm", "12bf66478e4a5085d09dc96932d058c206ee8c219cc7691d12a40dc35c8cefaa"},
"db_connection": {:hex, :db_connection, "2.4.0", "d04b1b73795dae60cead94189f1b8a51cc9e1f911c234cc23074017c43c031e5", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ad416c21ad9f61b3103d254a71b63696ecadb6a917b36f563921e0de00d7d7c8"},
"db_connection": {:hex, :db_connection, "2.4.1", "6411f6e23f1a8b68a82fa3a36366d4881f21f47fc79a9efb8c615e62050219da", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ea36d226ec5999781a9a8ad64e5d8c4454ecedc7a4d643e4832bf08efca01f00"},
"decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"},
"dialyxir": {:hex, :dialyxir, "1.1.0", "c5aab0d6e71e5522e77beff7ba9e08f8e02bad90dfbeffae60eaf0cb47e29488", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "07ea8e49c45f15264ebe6d5b93799d4dd56a44036cf42d0ad9c960bc266c0b9a"},
"doctor": {:hex, :doctor, "0.18.0", "114934c1740239953208a39db617699b7e2660770e81129d7f95cdf7837ab766", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "829c88c365f72c0666e443ea670ffb6f180de7b90c23d536edabdd8c722b88f4"},
"earmark": {:hex, :earmark, "1.4.16", "2188754e590a3c379fdd2783bb44eedd8c54968fa0256b6f336f6d56b089d793", [:mix], [{:earmark_parser, ">= 1.4.16", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "46f853f7ae10bee06923430dca522ba9dcbdc6b7a9729748e8dd5344d21b8418"},
"earmark_parser": {:hex, :earmark_parser, "1.4.16", "607709303e1d4e3e02f1444df0c821529af1c03b8578dfc81bb9cf64553d02b9", [:mix], [], "hexpm", "69fcf696168f5a274dd012e3e305027010658b2d1630cef68421d6baaeaccead"},
"eblurhash": {:hex, :eblurhash, "1.2.1", "36b187459244f5374bb7f47fd0b3001ee3f74d72b18bb04b00cdb7080cdf70f2", [:rebar3], [], "hexpm", "c0b168e734562f8edf1f0abf145b95f93e7657187e1bfaacc32a5714921e920b"},
"eblurhash": {:hex, :eblurhash, "1.2.0", "ff461979542fcb1bfd428aaba6ee56e544975f6d657aa3dfcf3e314b1d1c2517", [:rebar3], [], "hexpm", "8fa6b740f1630adc0a3e425dbbb4ff92d036e62eb973e7a06676226137a10aa7"},
"ecto": {:hex, :ecto, "3.7.1", "a20598862351b29f80f285b21ec5297da1181c0442687f9b8329f0445d228892", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d36e5b39fc479e654cffd4dbe1865d9716e4a9b6311faff799b6f90ab81b8638"},
"ecto_autoslug_field": {:hex, :ecto_autoslug_field, "3.0.0", "37fbc2f07e6691136afff246f2cf5b159ad395b665a55d06db918975fd2397db", [:mix], [{:ecto, ">= 3.7.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:slugger, ">= 0.3.0", [hex: :slugger, repo: "hexpm", optional: false]}], "hexpm", "8ec252c7cf85f13132062f56a484d6a0ef1f981f7be9ce4ad7e9546dd8c0cc0f"},
"ecto_enum": {:hex, :ecto_enum, "1.4.0", "d14b00e04b974afc69c251632d1e49594d899067ee2b376277efd8233027aec8", [:mix], [{:ecto, ">= 3.0.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "> 3.0.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:mariaex, ">= 0.0.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "8fb55c087181c2b15eee406519dc22578fa60dd82c088be376d0010172764ee4"},
"ecto_shortuuid": {:hex, :ecto_shortuuid, "0.1.3", "d36aede64edf256e4b769be2ad15a8ad5d9d1ff8ad46befe39e8cb4489abcd05", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:shortuuid, "~> 2.1.1", [hex: :shortuuid, repo: "hexpm", optional: false]}], "hexpm", "d215c8ced7125265de94d55abc696125942caef33439cf281fafded9744a4294"},
"ecto_sql": {:hex, :ecto_sql, "3.7.0", "2fcaad4ab0c8d76a5afbef078162806adbe709c04160aca58400d5cbbe8eeac6", [:mix], [{:db_connection, "~> 2.2", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.7.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.4.0 or ~> 0.5.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a26135dfa1d99bf87a928c464cfa25bba6535a4fe761eefa56077a4febc60f70"},
"ecto_sql": {:hex, :ecto_sql, "3.7.1", "8de624ef50b2a8540252d8c60506379fbbc2707be1606853df371cf53df5d053", [:mix], [{:db_connection, "~> 2.2", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.7.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.4.0 or ~> 0.5.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "2b42a32e2ce92f64aba5c88617891ab3b0ba34f3f3a503fa20009eae1a401c81"},
"elixir_feed_parser": {:hex, :elixir_feed_parser, "2.1.0", "bb96fb6422158dc7ad59de62ef211cc69d264acbbe63941a64a5dce97bbbc2e6", [:mix], [{:timex, "~> 3.4", [hex: :timex, repo: "hexpm", optional: false]}], "hexpm", "2d3c62fe7b396ee3b73d7160bc8fadbd78bfe9597c98c7d79b3f1038d9cba28f"},
"elixir_make": {:hex, :elixir_make, "0.6.2", "7dffacd77dec4c37b39af867cedaabb0b59f6a871f89722c25b28fcd4bd70530", [:mix], [], "hexpm", "03e49eadda22526a7e5279d53321d1cced6552f344ba4e03e619063de75348d9"},
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
@ -58,7 +58,7 @@
"fast_sanitize": {:hex, :fast_sanitize, "0.2.2", "3cbbaebaea6043865dfb5b4ecb0f1af066ad410a51470e353714b10c42007b81", [:mix], [{:fast_html, "~> 2.0", [hex: :fast_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "69f204db9250afa94a0d559d9110139850f57de2b081719fbafa1e9a89e94466"},
"file_info": {:hex, :file_info, "0.0.4", "2e0e77f211e833f38ead22cb29ce53761d457d80b3ffe0ffe0eb93880b0963b2", [:mix], [{:mimetype_parser, "~> 0.1.2", [hex: :mimetype_parser, repo: "hexpm", optional: false]}], "hexpm", "50e7ad01c2c8b9339010675fe4dc4a113b8d6ca7eddce24d1d74fd0e762781a5"},
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
"floki": {:hex, :floki, "0.31.0", "f05ee8a8e6a3ced4e62beeb2c79a63bc8e12ab98fbaaf6e6a3d9b76b1278e23f", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "b05afa372f5c345a5bf240ac25ea1f0f3d5fcfd7490ac0beeb4a203f9444891e"},
"floki": {:hex, :floki, "0.32.0", "f915dc15258bc997d49be1f5ef7d3992f8834d6f5695270acad17b41f5bcc8e2", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "1c5a91cae1fd8931c26a4826b5e2372c284813904c8bacb468b5de39c7ececbd"},
"gen_smtp": {:hex, :gen_smtp, "1.1.1", "bf9303c31735100631b1d708d629e4c65944319d1143b5c9952054f4a1311d85", [:rebar3], [{:hut, "1.3.0", [hex: :hut, repo: "hexpm", optional: false]}, {:ranch, ">= 1.7.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "51bc50cc017efd4a4248cbc39ea30fb60efa7d4a49688986fafad84434ff9ab7"},
"geo": {:hex, :geo, "3.4.2", "834f106e4ba072f5917920bd7ece42cfe1caa03c7fb278f85ea5d0905c8dc153", [:mix], [{:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "0a9fdad0d5197678cbac85e1dac674528bd90fa923398679a174b541cdf0ec68"},
"geo_postgis": {:hex, :geo_postgis, "3.4.0", "67815cc9b3db12e378e7a96d0f77d3bc2188534aba4d2c2229e3ebf8370f9d52", [:mix], [{:geo, "~> 3.4", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0 or ~> 4.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm", "23563946ef6e5c747380e6a7a0493b0a631e91d0452314ee7e33354f4fdf5230"},
@ -85,7 +85,7 @@
"junit_formatter": {:hex, :junit_formatter, "3.3.0", "bd7914d92885f7cf949dbe1dc6bacf76badfb2c1f5f7b3f9433c20e5b6ec42c8", [:mix], [], "hexpm", "4d040410925324b155ae4c7d41e884a0cdebe53b917bee4f22adf152e987a666"},
"linkify": {:hex, :linkify, "0.5.1", "6dc415cbc948b2f6ecec7cb226aab7ba9d3a1815bb501ae33e042334d707ecee", [:mix], [], "hexpm", "a3128c7e22fada4aa7214009501d8131e1fa3faf2f0a68b33dba379dc84ff944"},
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"},
"makeup_elixir": {:hex, :makeup_elixir, "0.15.1", "b5888c880d17d1cc3e598f05cdb5b5a91b7b17ac4eaf5f297cb697663a1094dd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "db68c173234b07ab2a07f645a5acdc117b9f99d69ebf521821d89690ae6c6ec8"},
"makeup_elixir": {:hex, :makeup_elixir, "0.15.2", "dc72dfe17eb240552857465cc00cce390960d9a0c055c4ccd38b70629227e97c", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "fd23ae48d09b32eff49d4ced2b43c9f086d402ee4fd4fcb2d7fad97fa8823e75"},
"makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"},
"meck": {:hex, :meck, "0.9.2", "85ccbab053f1db86c7ca240e9fc718170ee5bda03810a6292b5306bf31bae5f5", [:rebar3], [], "hexpm", "81344f561357dc40a8344afa53767c32669153355b626ea9fcbc8da6b3045826"},
"metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"},
@ -96,7 +96,7 @@
"mmdb2_decoder": {:hex, :mmdb2_decoder, "3.0.0", "54828676a36e75e9a25bc9a0bb0598d4c7fcc767bf0b40674850b22e05b7b6cc", [:mix], [], "hexpm", "359dc9242915538d1dceb9f6d96c72201dca76ce62e49d22e2ed1e86f20bea8e"},
"mock": {:hex, :mock, "0.3.7", "75b3bbf1466d7e486ea2052a73c6e062c6256fb429d6797999ab02fa32f29e03", [:mix], [{:meck, "~> 0.9.2", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm", "4da49a4609e41fd99b7836945c26f373623ea968cfb6282742bcb94440cf7e5c"},
"mogrify": {:hex, :mogrify, "0.9.1", "a26f107c4987477769f272bd0f7e3ac4b7b75b11ba597fd001b877beffa9c068", [:mix], [], "hexpm", "134edf189337d2125c0948bf0c228fdeef975c594317452d536224069a5b7f05"},
"mox": {:hex, :mox, "1.0.0", "4b3c7005173f47ff30641ba044eb0fe67287743eec9bd9545e37f3002b0a9f8b", [:mix], [], "hexpm", "201b0a20b7abdaaab083e9cf97884950f8a30a1350a1da403b3145e213c6f4df"},
"mox": {:hex, :mox, "1.0.1", "b651bf0113265cda0ba3a827fcb691f848b683c373b77e7d7439910a8d754d6e", [:mix], [], "hexpm", "35bc0dea5499d18db4ef7fe4360067a59b06c74376eb6ab3bd67e6295b133469"},
"nimble_csv": {:hex, :nimble_csv, "1.1.0", "b1dba4a86be9e03065c9de829050468e591f569100332db949e7ce71be0afc25", [:mix], [], "hexpm", "e986755bc302832cac429be6deda0fc9d82d3c82b47abefb68b3c17c9d949a3f"},
"nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"},
"nimble_pool": {:hex, :nimble_pool, "0.1.0", "ffa9d5be27eee2b00b0c634eb649aa27f97b39186fec3c493716c2a33e784ec6", [:mix], [], "hexpm", "343a1eaa620ddcf3430a83f39f2af499fe2370390d4f785cd475b4df5acaf3f9"},
@ -115,7 +115,7 @@
"plug": {:hex, :plug, "1.12.1", "645678c800601d8d9f27ad1aebba1fdb9ce5b2623ddb961a074da0b96c35187d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d57e799a777bc20494b784966dc5fbda91eb4a09f571f76545b72a634ce0d30b"},
"plug_cowboy": {:hex, :plug_cowboy, "2.5.2", "62894ccd601cf9597e2c23911ff12798a8a18d237e9739f58a6b04e4988899fe", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ea6e87f774c8608d60c8d34022a7d073bd7680a0a013f049fc62bf35efea1044"},
"plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"},
"postgrex": {:hex, :postgrex, "0.15.11", "50abbb50f33d22d79af402e549b9a566ba4f0451b4f5fd39b72d9bbd49743d24", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "6f0e5c3ea10f97468f5ff852277cb207f068399eb68b0c06c142ef68a4e82952"},
"postgrex": {:hex, :postgrex, "0.15.12", "9ee623448310a6ea8543c1207379aea072d699b738b89549f05248b5807302d1", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "1234a9cda8803ca5026dd1512d9fa171c78dd9a27ed3ffd2ca2c5d5753af8922"},
"progress_bar": {:hex, :progress_bar, "2.0.1", "7b40200112ae533d5adceb80ff75fbe66dc753bca5f6c55c073bfc122d71896d", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "2519eb58a2f149a3a094e729378256d8cb6d96a259ec94841bd69fdc71f18f87"},
"ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
"remote_ip": {:hex, :remote_ip, "1.0.0", "3d7fb45204a5704443f480cee9515e464997f52c35e0a60b6ece1f81484067ae", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "9e9fcad4e50c43b5234bb6a9629ed6ab223f3ed07147bd35470e4ee5c8caf907"},
@ -131,7 +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"},
"tz_world": {:hex, :tz_world, "0.7.1", "c6e2d7fe4ee8119563f7dc75808c7067d39441b143b6f26dbb7be31791ea5f41", [: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.3", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "8932d76b2e5b7113e6f5773465b75c3bb7d04693b59a842657c164cdb85b4bcf"},
"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"},

View file

@ -31,7 +31,7 @@ msgid "Activate my account"
msgstr "تنشيط حسابي"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "أطلب مِن المجتمَع على Framacolibri"
@ -110,7 +110,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr ""
@ -120,7 +120,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "تم تحديث الفعالية %{title}"
@ -135,12 +135,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "تنبيه"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr ""
@ -335,7 +335,7 @@ msgstr[5] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -744,7 +744,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr ""
@ -777,9 +777,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -807,7 +807,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} هو خادم موبيليزون Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "%{instance} هو خادم موبيليزون Mobilizon."
@ -834,11 +834,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -891,7 +886,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "تعلّم المزيد عن Mobilizon."
@ -946,11 +941,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -1007,16 +997,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1060,7 +1044,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1245,7 +1229,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "لقد قمتَ بتقديم طلب للمشاركة في فعالية %{title}."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr ""
@ -1368,7 +1352,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1534,3 +1518,55 @@ msgstr "تم قبول المشاركة"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -982,7 +982,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -28,7 +28,7 @@ msgid "Activate my account"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr ""
@ -107,7 +107,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr ""
@ -117,7 +117,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr ""
@ -132,12 +132,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr ""
@ -329,7 +329,7 @@ msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -726,7 +726,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr ""
@ -759,9 +759,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -783,7 +783,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr ""
@ -810,11 +810,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -867,7 +862,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr ""
@ -922,11 +917,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -983,16 +973,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1036,7 +1020,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1221,7 +1205,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr ""
@ -1344,7 +1328,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1510,3 +1494,55 @@ msgstr ""
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -956,7 +956,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -32,7 +32,7 @@ msgid "Activate my account"
msgstr "Activa el meu compte"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Pregunta a la comunitat a Framacolibri"
@ -117,7 +117,7 @@ msgstr ""
"'activar-lo. Si no l'has creat tu, ignora aquest mail."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "T'han aprovat la participació a %{title}"
@ -127,7 +127,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "T'han denegat la participació a %{title}"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "S'ha actualitzat {%title}"
@ -142,12 +142,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Algú ha soŀlicitat a %{instance} una contrasenya nova."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Alerta"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Confirma que participaràs a l'activitat %{title}"
@ -372,7 +372,7 @@ msgstr[1] "%{nb_events} activitats planificades avui"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Tens una activitat avui:"
@ -892,7 +892,7 @@ msgstr ""
"confirma l'adreça de correu que has introduït:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Necessites ajuda? Alguna cosa no funciona?"
@ -926,9 +926,9 @@ msgstr "No ho facis servir més que proves, sisplau"
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -954,7 +954,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} és un servidor de Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "%{instance} és un servidor de Mobilizon."
@ -981,11 +981,6 @@ msgstr "Confirma la nova adreça"
msgid "End"
msgstr "Final"
#, 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
@ -1055,7 +1050,7 @@ msgstr ""
"l'enllaç de dalt i clica al botó de participació."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Per aprendre més de Mobilizon."
@ -1110,11 +1105,6 @@ msgstr "Ho sentim! No hi podràs anar."
msgid "Start"
msgstr "Inici"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Inici %{starts_on}"
#, 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."
@ -1173,16 +1163,10 @@ msgid "Visit the updated event page"
msgstr "Vés a la pàgina d'activitat actualitzada"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Vés a l'activitat actualitzada a %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Què hi ha aquesta setmana?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1232,7 +1216,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr "Si no has fet tu aquest canvi, pots ignorar aquest missatge."
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "<b>No ho facis servir més que proves, sisplau.</b>"
@ -1460,7 +1444,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Has soŀlicitat participar a l'activitat %{title}."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "T'han aprovat la participació a %{title}"
@ -1596,7 +1580,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr "Ho sentim, s'ha produït un error al nostre costat."
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Aquesta és una web de proves per provar la beta de Mobilizon."
@ -1766,3 +1750,55 @@ msgstr "S'ha aprovat la participació"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Una activitat planificada per aquesta setmana"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -957,7 +957,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -28,7 +28,7 @@ msgid "Activate my account"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr ""
@ -107,7 +107,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr ""
@ -117,7 +117,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr ""
@ -132,12 +132,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr ""
@ -329,7 +329,7 @@ msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -726,7 +726,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr ""
@ -759,9 +759,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -783,7 +783,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr ""
@ -810,11 +810,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -867,7 +862,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr ""
@ -922,11 +917,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -983,16 +973,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1036,7 +1020,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1221,7 +1205,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr ""
@ -1344,7 +1328,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1510,3 +1494,55 @@ msgstr ""
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -956,7 +956,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -33,7 +33,7 @@ msgid "Activate my account"
msgstr "Mein Konto aktivieren"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Richte deine Fragen an die Gemeinschaft auf Framacolibri"
@ -119,7 +119,7 @@ msgstr ""
"E-Mail bitte."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Deine Teilnahme an der Veranstaltung %{title}wurde akzeptiert"
@ -129,7 +129,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Deine Teilnahme an der Veranstaltung %{title}wurde abgelehnt"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Veranstaltung %{title} wurde aktualisiert"
@ -145,12 +145,12 @@ msgstr ""
"Du hast ein neues Passwort für deinen Account auf %{instance} angefragt."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Warnung"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Meine Teilnahme an der Veranstaltung %{title} zusagen"
@ -378,7 +378,7 @@ msgstr[1] "%{nb_events} wurden heute geplannt"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Du hast heute ein Event:"
@ -922,7 +922,7 @@ msgstr ""
"angegebene E-Mail Adresse:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Brauchst Du Hilfe? Funktioniert etwas nicht richtig?"
@ -959,9 +959,9 @@ msgstr "Bitte verwenden Sie es nicht für reale Zwecke."
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -986,7 +986,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} ist ein Mobilizon-Server."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> ist ein Mobilizon-Server."
@ -1013,11 +1013,6 @@ msgstr "Neue E-Mail bestätigen"
msgid "End"
msgstr "Ende"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Ende %{ends_on}"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -1088,7 +1083,7 @@ msgstr ""
"auf die Veranstaltungs-Seite und klicke auf den Teilnahme-Button."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Lerne mehr über Mobilizon!"
@ -1145,11 +1140,6 @@ msgstr "Schade! Sie sind nicht dabei."
msgid "Start"
msgstr "Start"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Start %{begins_on}"
#, 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."
@ -1211,16 +1201,10 @@ msgid "Visit the updated event page"
msgstr "Besuchen Sie die aktualisierte Veranstaltungsseite"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Zeige die aktualisierte Veranstaltung unter: %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Was gibt's diese Woche?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1274,7 +1258,7 @@ msgstr ""
"diese Meldung."
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "<b>Bitte verwenden Sie es nicht für reale Zwecke.</b>"
@ -1561,7 +1545,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Du hast angefragt, an der Veranstaltung <b>%{title}</b> teilzunehmen."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Deine Teilnahme an der Veranstaltung %{title}wurde akzeptiert"
@ -1700,7 +1684,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr "Es tut uns leid, aber auf unserer Seite ist etwas schief gelaufen."
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Dies ist eine Demo-Seite, um die Beta-Version von Mobilizon zu testen."
@ -1878,3 +1862,55 @@ msgstr "Teilnahme bestätigt"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Ein Event ist für diese Woche geplant"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -986,7 +986,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -14,7 +14,7 @@ msgid "Activate my account"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr ""
@ -93,7 +93,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr ""
@ -103,7 +103,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr ""
@ -118,12 +118,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr ""
@ -314,7 +314,7 @@ msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -707,7 +707,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr ""
@ -740,9 +740,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -762,7 +762,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr ""
@ -789,11 +789,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -846,7 +841,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr ""
@ -901,11 +896,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -962,16 +952,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1015,7 +999,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1200,7 +1184,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr ""
@ -1323,7 +1307,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1489,3 +1473,55 @@ msgstr ""
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -37,7 +37,7 @@ msgid "Activate my account"
msgstr "Activate my account"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Ask the community on Framacolibri"
@ -116,7 +116,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr "You created an account on %{host} with this email address. You are one click away from activating it."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Your participation to event %{title} has been approved"
@ -126,7 +126,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Your participation to event %{title} has been rejected"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Event %{title} has been updated"
@ -141,12 +141,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "You requested a new password for your account on %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Warning"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Confirm your participation to event %{title}"
@ -367,7 +367,7 @@ msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -760,7 +760,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Need some help? Something not working properly?"
@ -793,9 +793,9 @@ msgstr "Please do not use it in any real way"
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] "If you need to cancel your participation, just access the event page through link above and click on the participation button."
@ -815,7 +815,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} is a Mobilizon server."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "%{instance} is a Mobilizon server."
@ -842,11 +842,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -899,7 +894,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr "If you need to cancel your participation, just access the event page through link above and click on the participation button."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Learn more about Mobilizon."
@ -954,11 +949,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -1015,16 +1005,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "View the updated event on: %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1068,7 +1052,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "Please do not use it in any real way"
@ -1253,7 +1237,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "You requested to participate in event %{title}."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Your participation to event %{title} has been approved"
@ -1376,7 +1360,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "This is a demonstration site to test the beta version of Mobilizon."
@ -1542,3 +1526,55 @@ msgstr "Participant"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -960,7 +960,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -937,8 +937,8 @@ msgid "Please do not use it for real purposes."
msgstr "Por favor no lo use de ninguna manera real."
#: 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/anonymous_participation_confirmation.text.eex:6 lib/web/templates/email/event_updated.html.heex:147
#: lib/web/templates/email/event_updated.text.eex:29 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
@ -1837,3 +1837,55 @@ msgstr "Participación aprobada"
#, elixir-format
msgid "Anonymous participant"
msgstr "Participante anónimo"
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Un evento programado para hoy"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -32,7 +32,7 @@ msgid "Activate my account"
msgstr "Aktivoi tilini"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Kysy yhteisöltä Framacolibrissa"
@ -118,7 +118,7 @@ msgstr ""
"huomiotta."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Osallistumisesi tapahtumaan %{title} on hyväksytty"
@ -128,7 +128,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Osallistumisesi tapahtumaan %{title) on hylätty"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Tapahtumaa %{title} on päivitetty"
@ -143,12 +143,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Pyysit uutta salasanaa tilillesi palvelimella %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Varoitus"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Vahvista osallistumisesi tapahtumaan %{title}"
@ -368,7 +368,7 @@ msgstr[1] "%{nb_events} suunniteltua tapahtumaa tänään"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Sinulla on tänään yksi tapahtuma:"
@ -885,7 +885,7 @@ msgstr ""
"sähköpostiosoite:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Tarvitsetko apua? Eikö kaikki toimi niin kuin pitäisi?"
@ -921,9 +921,9 @@ msgstr "Älä käytä todellisiin tarkoituksiin."
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -948,7 +948,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} on Mobilizon-palvelin."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> on Mobilizon-palvelin."
@ -975,11 +975,6 @@ msgstr "Vahvista sähköpostiosoite"
msgid "End"
msgstr "Päättyy"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Päättyy %{ends_on}"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -1048,7 +1043,7 @@ msgstr ""
"linkistä ja napsauta siellä osallistumispainiketta."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Lue lisää Mobilizonista."
@ -1103,11 +1098,6 @@ msgstr "Valitettavasti et pääse mukaan."
msgid "Start"
msgstr "Alkaa"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Alkaa %{begins_on}"
#, 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."
@ -1166,16 +1156,10 @@ msgid "Visit the updated event page"
msgstr "Käy päivitetyllä tapahtumasivulla"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Katso päivitetty tapahtuma: %{linkki}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Mitä tällä viikolla tapahtuu?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1225,7 +1209,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr "Jos et tehnyt vaihtoa itse, voit jättää tämän viestin huomiotta."
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "<b>Älä käytä todellisiin tarkoituksiin.</b>"
@ -1496,7 +1480,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Lähetit pyynnön osallistua tapahtumaan <b>%{title}</b>."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Osallistumisesi tapahtumaan %{title} on hyväksytty"
@ -1632,7 +1616,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr "Pahoittelemme, tapahtui virhe palvelimen päässä."
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Tämä on koekäyttöön tarkoitettu Mobilizonin esittelysivu."
@ -1804,3 +1788,55 @@ msgstr "Osallistuminen hyväksytty"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Yksi suunniteltu tapahtuma tällä viikolla"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -963,7 +963,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -96,701 +96,879 @@ msgstr "doit être supérieur ou égal à %{number}"
msgid "must be equal to %{number}"
msgstr "doit être égal à %{number}"
#, elixir-format
#: lib/graphql/resolvers/user.ex:107
msgid "Cannot refresh the token"
msgstr "Impossible de rafraîchir le jeton"
#, elixir-format
#: 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"
#, elixir-format
#: 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é"
#, elixir-format
#: 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:242 lib/graphql/resolvers/group.ex:274
#: lib/graphql/resolvers/group.ex:311 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 "Groupe non trouvé"
#, elixir-format
#: 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é"
#, elixir-format
#: lib/graphql/resolvers/user.ex:85
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."
#, elixir-format
#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Membre non trouvé"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:94
msgid "No profile found for the moderator user"
msgstr "Aucun profil trouvé pour l'utilisateur modérateur"
#, elixir-format
#: lib/graphql/resolvers/user.ex:253
msgid "No user to validate with this email was found"
msgstr "Aucun·e utilisateur·ice à valider avec cet email n'a été trouvé·e"
#, elixir-format
#: lib/graphql/resolvers/person.ex:314 lib/graphql/resolvers/user.ex:278
msgid "No user with this email was found"
msgstr "Aucun·e utilisateur·ice avec cette adresse e-mail n'a été trouvé·e"
#: 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
#: 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
msgid "Profile is not owned by authenticated user"
msgstr "Le profil n'est pas possédé par l'utilisateur connecté"
#, elixir-format
#: lib/graphql/resolvers/user.ex:156
msgid "Registrations are not open"
msgstr "Les inscriptions ne sont pas ouvertes"
#, elixir-format
#: lib/graphql/resolvers/user.ex:407
msgid "The current password is invalid"
msgstr "Le mot de passe actuel est invalid"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/user.ex:453
msgid "The new email must be different"
msgstr "La nouvelle adresse e-mail doit être différente"
#, elixir-format
#: lib/graphql/resolvers/user.ex:410
msgid "The new password must be different"
msgstr "Le nouveau mot de passe doit être différent"
#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519 lib/graphql/resolvers/user.ex:522
#, 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 "Le mot de passe fourni est invalide"
#, 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 ""
"Le mot de passe que vous avez choisi est trop court. Merci de vous assurer que votre mot de passe contienne au moins "
"6 caractères."
#, elixir-format
#: lib/graphql/resolvers/user.ex:274
msgid "This user can't reset their password"
msgstr "Cet·te utilisateur·ice ne peut pas réinitialiser son mot de passe"
#, elixir-format
#: lib/graphql/resolvers/user.ex:81
msgid "This user has been disabled"
msgstr "Cet·te utilisateur·ice a été désactivé·e"
#, elixir-format
#: lib/graphql/resolvers/user.ex:232 lib/graphql/resolvers/user.ex:237
msgid "Unable to validate user"
msgstr "Impossible de valider l'utilisateur·ice"
#, elixir-format
#: lib/graphql/resolvers/user.ex:500
msgid "User already disabled"
msgstr "L'utilisateur·ice est déjà désactivé·e"
#, elixir-format
#: lib/graphql/resolvers/user.ex:567
msgid "User requested is not logged-in"
msgstr "L'utilisateur·ice demandé·e n'est pas connecté·e"
#, elixir-format
#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Vous êtes déjà membre de ce groupe"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Vous ne pouvez pas rejoindre ce groupe"
#, elixir-format
#: 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."
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/user.ex:422
msgid "You need to be logged-in to change your password"
msgstr "Vous devez être connecté·e pour changer votre mot de passe"
#, elixir-format
#: 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"
#, elixir-format
#: 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"
#, elixir-format
#: 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"
#, elixir-format
#: 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"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/user.ex:112
msgid "You need to have an existing token to get a refresh token"
msgstr "Vous devez avoir un jeton existant pour obtenir un jeton de rafraîchissement"
#, elixir-format
#: lib/graphql/resolvers/user.ex:256 lib/graphql/resolvers/user.ex:281
msgid "You requested again a confirmation email too soon"
msgstr "Vous avez à nouveau demandé un email de confirmation trop vite"
#, elixir-format
#: lib/graphql/resolvers/user.ex:159
msgid "Your email is not on the allowlist"
msgstr "Votre adresse e-mail n'est pas sur la liste d'autorisations"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:100
msgid "Error while performing background task"
msgstr "Erreur lors de l'exécution d'une tâche d'arrière-plan"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:32
msgid "No profile found with this ID"
msgstr "Aucun profil trouvé avec cet ID"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:97
msgid "No remote profile found with this ID"
msgstr "Aucun profil distant trouvé avec cet ID"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:72
msgid "Only moderators and administrators can suspend a profile"
msgstr "Seul·es les modérateur·ice et les administrateur·ices peuvent suspendre un profil"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:105
msgid "Only moderators and administrators can unsuspend a profile"
msgstr "Seul·es les modérateur·ice et les administrateur·ices peuvent annuler la suspension d'un profil"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:29
msgid "Only remote profiles may be refreshed"
msgstr "Seuls les profils distants peuvent être rafraîchis"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:64
msgid "Profile already suspended"
msgstr "Le profil est déjà suspendu"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:96
msgid "A valid email is required by your instance"
msgstr "Une adresse e-mail valide est requise par votre instance"
#: lib/graphql/resolvers/participant.ex:90 lib/graphql/resolvers/participant.ex:143
#, elixir-format
#: lib/graphql/resolvers/participant.ex:90
#: lib/graphql/resolvers/participant.ex:143
msgid "Anonymous participation is not enabled"
msgstr "La participation anonyme n'est pas activée"
#, elixir-format
#: lib/graphql/resolvers/person.ex:210
msgid "Cannot remove the last administrator of a group"
msgstr "Impossible de supprimer le ou la dernier·ère administrateur·ice d'un groupe"
#, elixir-format
#: lib/graphql/resolvers/person.ex:207
msgid "Cannot remove the last identity of a user"
msgstr "Impossible de supprimer le dernier profil d'un·e utilisateur·ice"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Le commentaire est déjà supprimé"
#, elixir-format
#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:75
msgid "Discussion not found"
msgstr "Discussion non trouvée"
#, elixir-format
#: lib/graphql/resolvers/report.ex:63 lib/graphql/resolvers/report.ex:82
msgid "Error while saving report"
msgstr "Erreur lors de la sauvegarde du signalement"
#, elixir-format
#: lib/graphql/resolvers/report.ex:102
msgid "Error while updating report"
msgstr "Erreur lors de la mise à jour du signalement"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:131
msgid "Event id not found"
msgstr "ID de l'événement non trouvé"
#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355 lib/graphql/resolvers/event.ex:407
#, elixir-format
#: 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:336
#, 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:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "L'événement avec cet ID %{id} n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:103
msgid "Internal Error"
msgstr "Erreur interne"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:225
msgid "No discussion with ID %{id}"
msgstr "Aucune discussion avec l'ID %{id}"
#: 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
#: 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
msgid "No profile found for user"
msgstr "Aucun profil trouvé pour l'utilisateur modérateur"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Aucun jeton de flux correspondant"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:259
msgid "Participant already has role %{role}"
msgstr "Le ou la participant·e a déjà le rôle %{role}"
#: lib/graphql/resolvers/participant.ex:187 lib/graphql/resolvers/participant.ex:220
#: lib/graphql/resolvers/participant.ex:263
#, elixir-format
#: lib/graphql/resolvers/participant.ex:187
#: lib/graphql/resolvers/participant.ex:220 lib/graphql/resolvers/participant.ex:263
msgid "Participant not found"
msgstr "Participant·e non trouvé·e"
#, elixir-format
#: lib/graphql/resolvers/person.ex:32
msgid "Person with ID %{id} not found"
msgstr "Personne avec l'ID %{id} non trouvé"
#, elixir-format
#: lib/graphql/resolvers/person.ex:56
msgid "Person with username %{username} not found"
msgstr "Personne avec le nom %{name} non trouvé"
#, elixir-format
#: lib/graphql/resolvers/post.ex:169 lib/graphql/resolvers/post.ex:203
msgid "Post ID is not a valid ID"
msgstr "L'ID du billet n'est pas un ID valide"
#, elixir-format
#: lib/graphql/resolvers/post.ex:172 lib/graphql/resolvers/post.ex:206
msgid "Post doesn't exist"
msgstr "Le billet n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/member.ex:82
msgid "Profile invited doesn't exist"
msgstr "Le profil invité n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
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: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
#: 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: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"
msgstr "Le profil n'est pas un·e membre du groupe"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/person.ex:233
msgid "Profile not found"
msgstr "Profile non trouvé"
#, elixir-format
#: lib/graphql/resolvers/report.ex:40
msgid "Report not found"
msgstr "Groupe non trouvé"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "La ressource n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:124
msgid "The event has already reached its maximum capacity"
msgstr "L'événement a déjà atteint sa capacité maximale"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Ce jeton est invalide"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:176 lib/graphql/resolvers/todos.ex:243
msgid "Todo doesn't exist"
msgstr "Ce todo n'existe pas"
#: lib/graphql/resolvers/todos.ex:77 lib/graphql/resolvers/todos.ex:211 lib/graphql/resolvers/todos.ex:240
#, elixir-format
#: lib/graphql/resolvers/todos.ex:77 lib/graphql/resolvers/todos.ex:211
#: lib/graphql/resolvers/todos.ex:240
msgid "Todo list doesn't exist"
msgstr "Cette todo-liste n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Ce jeton n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Ce jeton n'est pas un UUID valide"
#, elixir-format
#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:415
msgid "User not found"
msgstr "Utilisateur·ice non trouvé·e"
#, elixir-format
#: lib/graphql/resolvers/person.ex:310
msgid "You already have a profile for this user"
msgstr "Vous avez déjà un profil pour cet utilisateur"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:134
msgid "You are already a participant of this event"
msgstr "Vous êtes déjà un·e participant·e à cet événement"
#, elixir-format
#: lib/graphql/resolvers/member.ex:85
msgid "You are not a member of this group"
msgstr "Vous n'êtes pas membre de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
msgid "You are not a moderator or admin for this group"
msgstr "Vous n'êtes pas administrateur·ice ou modérateur·ice de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:59
msgid "You are not allowed to create a comment if not connected"
msgstr "Vous n'êtes pas autorisé·e à créer un commentaire si non connecté·e"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:41
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"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Vous n'êtes pas autorisé·e à supprimer un jeton de flux si non connecté·e"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:93
msgid "You are not allowed to update a comment if not connected"
msgstr "Vous n'êtes pas autorisé·e à mettre à jour un commentaire si non connecté·e"
#: lib/graphql/resolvers/participant.ex:181 lib/graphql/resolvers/participant.ex:214
#, elixir-format
#: lib/graphql/resolvers/participant.ex:181
#: lib/graphql/resolvers/participant.ex:214
msgid "You can't leave event because you're the only event creator participant"
msgstr "Vous ne pouvez pas quitter cet événement car vous en êtes le ou la seule créateur·ice participant"
#, 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 ""
"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"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Vous ne pouvez pas supprimer ce commentaire"
#, elixir-format
#: lib/graphql/resolvers/event.ex:403
msgid "You cannot delete this event"
msgstr "Vous ne pouvez pas supprimer cet événement"
#, elixir-format
#: lib/graphql/resolvers/member.ex:88
msgid "You cannot invite to this group"
msgstr "Vous ne pouvez pas rejoindre ce groupe"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Vous n'avez pas la permission de supprimer ce jeton"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:54
msgid "You need to be logged-in and a moderator to list action logs"
msgstr "Vous devez être connecté·e et une modérateur·ice pour lister les journaux de modération"
#, elixir-format
#: lib/graphql/resolvers/report.ex:28
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Vous devez être connecté·e et une modérateur·ice pour lister les signalements"
#, elixir-format
#: lib/graphql/resolvers/report.ex:107
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Vous devez être connecté·e et une modérateur·ice pour modifier un signalement"
#, elixir-format
#: lib/graphql/resolvers/report.ex:45
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Vous devez être connecté·e pour et une modérateur·ice pour visionner un signalement"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:246
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr "Vous devez être connecté·e et un·e administrateur·ice pour accéder aux paramètres administrateur"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:230
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr "Vous devez être connecté·e et un·e administrateur·ice pour accéder aux panneau de statistiques"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:272
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr "Vous devez être connecté·e et un·e administrateur·ice pour sauvegarder les paramètres administrateur"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:90
msgid "You need to be logged-in to access discussions"
msgstr "Vous devez être connecté·e pour accéder aux discussions"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:96
msgid "You need to be logged-in to access resources"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/post.ex:141
msgid "You need to be logged-in to create posts"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#, elixir-format
#: lib/graphql/resolvers/report.ex:79
msgid "You need to be logged-in to create reports"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#, elixir-format
#: 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"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/post.ex:214
msgid "You need to be logged-in to delete posts"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:108
msgid "You need to be logged-in to join an event"
msgstr "Vous devez être connecté·e pour rejoindre un événement"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:225
msgid "You need to be logged-in to leave an event"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/post.ex:180
msgid "You need to be logged-in to update posts"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
#, elixir-format
#: 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"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "La ressource parente n'appartient pas à ce groupe"
#, elixir-format
#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "Le mot de passe choisi est trop court."
#, 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 "Le jeton d'inscription est déjà utilisé, cela ressemble à un problème de notre côté."
#, elixir-format
#: lib/mobilizon/users/user.ex:108
msgid "This email is already used."
msgstr "Cette adresse e-mail est déjà utilisée."
#, elixir-format
#: lib/graphql/error.ex:97
msgid "Post not found"
msgstr "Billet non trouvé"
#, elixir-format
#: lib/graphql/error.ex:84
msgid "Invalid arguments passed"
msgstr "Paramètres fournis invalides"
#, elixir-format
#: lib/graphql/error.ex:90
msgid "Invalid credentials"
msgstr "Identifiants invalides"
#, elixir-format
#: lib/graphql/error.ex:88
msgid "Reset your password to login"
msgstr "Réinitialiser votre mot de passe pour vous connecter"
#, elixir-format
#: lib/graphql/error.ex:95 lib/graphql/error.ex:100
msgid "Resource not found"
msgstr "Ressource non trouvée"
#, elixir-format
#: lib/graphql/error.ex:102
msgid "Something went wrong"
msgstr "Quelque chose s'est mal passé"
#, elixir-format
#: lib/graphql/error.ex:83
msgid "Unknown Resource"
msgstr "Ressource inconnue"
#, elixir-format
#: lib/graphql/error.ex:93
msgid "You don't have permission to do this"
msgstr "Vous n'avez pas la permission de faire ceci"
#, elixir-format
#: lib/graphql/error.ex:85
msgid "You need to be logged in"
msgstr "Vous devez être connecté·e"
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
msgid "You can't accept this invitation with this profile."
msgstr "Vous ne pouvez pas accepter cette invitation avec ce profil."
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
msgid "You can't reject this invitation with this profile."
msgstr "Vous ne pouvez pas rejeter cette invitation avec ce profil."
#, elixir-format
#: lib/graphql/resolvers/media.ex:71
msgid "File doesn't have an allowed MIME type."
msgstr "Le fichier n'a pas un type MIME autorisé."
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/event.ex:358
msgid "You can't edit this event."
msgstr "Vous ne pouvez pas éditer cet événement."
#, elixir-format
#: 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."
#, elixir-format
#: lib/graphql/resolvers/member.ex:140
msgid "This invitation doesn't exist."
msgstr "Cette invitation n'existe pas."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
msgid "This member already has been rejected."
msgstr "Ce·tte membre a déjà été rejetté·e."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
msgid "You don't have the right to remove this member."
msgstr "Vous n'avez pas les droits pour supprimer ce·tte membre."
#, elixir-format
#: lib/mobilizon/actors/actor.ex:349
msgid "This username is already taken."
msgstr "Cet identifiant est déjà pris."
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:87
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"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:93
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: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
#, 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 "L'image fournie est trop lourde"
#, elixir-format
#: lib/web/views/utils.ex:34
msgid "Index file not found. You need to recompile the front-end."
msgstr "Fichier d'index non trouvé. Vous devez recompiler le front-end."
#, elixir-format
#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Erreur lors de la création de la resource"
#, elixir-format
#: lib/graphql/resolvers/user.ex:483
msgid "Invalid activation token"
msgstr "Jeton d'activation invalide"
#, elixir-format
#: 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:173 lib/graphql/resolvers/participant.ex:253 lib/graphql/resolvers/participant.ex:328
#, 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 "Le profil modérateur fourni n'a pas de permissions sur cet événement"
#, 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 "Le profil de l'organisateur⋅ice n'a pas la permission de créer un événement au nom de ce groupe"
#, 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 "Ce profil n'a pas la permission de mettre à jour un événement au nom du groupe"
#, elixir-format
#: lib/graphql/resolvers/user.ex:163
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"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Commentaire non trouvé"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:129
msgid "Error while creating a discussion"
msgstr "Erreur lors de la création de la discussion"
#, elixir-format
#: lib/graphql/resolvers/user.ex:606
msgid "Error while updating locale"
msgstr "Erreur lors de la mise à jour des options linguistiques"
#, elixir-format
#: lib/graphql/resolvers/person.ex:307
msgid "Error while uploading pictures"
msgstr "Erreur lors du téléversement des images"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:190
msgid "Failed to leave the event"
msgstr "Impossible de quitter l'événement"
#, elixir-format
#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr "Impossible de mettre à jour le groupe"
#, elixir-format
#: lib/graphql/resolvers/user.ex:447
msgid "Failed to update user email"
msgstr "Impossible de mettre à jour l'adresse e-mail de utilisateur"
#, elixir-format
#: lib/graphql/resolvers/user.ex:479
msgid "Failed to validate user email"
msgstr "Impossible de valider l'adresse e-mail de l'utilisateur·ice"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:146
msgid "The anonymous actor ID is invalid"
msgstr "L'ID de l'acteur anonyme est invalide"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr "Erreur inconnue lors de la mise à jour de la resource"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:84
msgid "You are not the comment creator"
msgstr "Vous n'êtes pas le ou la createur⋅ice du commentaire"
#, elixir-format
#: lib/graphql/resolvers/user.ex:404
msgid "You cannot change your password."
msgstr "Vous ne pouvez pas changer votre mot de passe."
#, elixir-format
#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr "Format non supporté"
#, elixir-format
#: 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"
#, elixir-format
#: 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"
#, elixir-format
#: 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"
#, elixir-format
#: lib/graphql/resolvers/group.ex:165
msgid "Only admins can create groups"
msgstr "Seul⋅es les administrateur⋅ices peuvent créer des groupes"
#, elixir-format
#: lib/graphql/resolvers/event.ex:301
msgid "Only groups can create events"
msgstr "Seuls les groupes peuvent créer des événements"
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr "Erreur inconnue lors de la création de l'événement"
#, elixir-format
#: lib/graphql/resolvers/user.ex:460
msgid "User cannot change email"
msgstr "L'utilisateur ne peut changer son adresse e-mail"

View file

@ -32,7 +32,7 @@ msgid "Activate my account"
msgstr "Activar a miña conta"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Pregunta á comunidade en Framacolibri"
@ -117,7 +117,7 @@ msgstr ""
"activalo. Se non foches ti, por favor ignora este email."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Foi aprobada a túa participación no evento %{title}"
@ -127,7 +127,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Foi rexeitada a túa participación no evento %{title}"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Actualizouse o evento %{title}"
@ -143,12 +143,12 @@ msgstr ""
"Solicitaches un novo contrasinal para a túa conta na instancia %{instance]."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Aviso"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Confirma a túa participación no evento %{title}"
@ -370,7 +370,7 @@ msgstr[1] "%{nb_events} eventos previstos hoxe"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Hoxe tes un evento:"
@ -881,7 +881,7 @@ msgstr ""
"confirma o email proporcionado:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Precisas axuda? Algo non funciona como agardabas?"
@ -917,9 +917,9 @@ msgstr "Por favor, non o utilices nun entorno de produción."
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -945,7 +945,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} funciona grazas a Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> funciona grazas a Mobilizon."
@ -972,11 +972,6 @@ msgstr "Confirma o novo email"
msgid "End"
msgstr "Fin"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Remata o %{ends_on}"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -1045,7 +1040,7 @@ msgstr ""
"da ligazón superior e preme no botón « Participar »."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Coñece máis acerca de Mobilizon!"
@ -1102,11 +1097,6 @@ msgstr "Lamentámos que non participes."
msgid "Start"
msgstr "Inicio"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Comeza en %{begins_on}"
#, 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."
@ -1165,16 +1155,10 @@ msgid "Visit the updated event page"
msgstr "Visita a páxina do evento actualizada"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Visita a páxina do evento actualizada: %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Que acontece nesta semana?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1223,7 +1207,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr "Se non propiciaches ti o cambio, por favor ignora esta mensaxe."
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "<b>Por favor, non o uses para eventos reais.</b>"
@ -1495,7 +1479,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Recentemente solicitaches participar en <b>%{title}</b>."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Confirmouse a túa participación no evento %{title}"
@ -1627,7 +1611,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr "Lamentámolo, pero algo está a fallar pola nosa parte."
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Este é un sitio web de exemplo para probar Mobilizon."
@ -1804,3 +1788,55 @@ msgstr "Participación aprobada"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Un evento previsto nesta semana"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -977,7 +977,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -37,7 +37,7 @@ msgid "Activate my account"
msgstr "Saját fiók aktiválása"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Kérdezze meg a közösséget a Framacolibrin"
@ -124,7 +124,7 @@ msgstr ""
"kívül a levelet."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Jóváhagyták a részvételét a(z) %{title} eseményen"
@ -134,7 +134,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Elutasították a részvételét a(z) %{title} eseményen"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "A(z) %{title} esemény frissítésre került"
@ -149,12 +149,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Új jelszót kért a(z) %{instance} példányon lévő fiókjához."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Figyelmeztetés"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Erősítse meg a részvételét a(z) %{title} eseményen"
@ -376,7 +376,7 @@ msgstr[1] "%{nb_events} tervezett esemény ma"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Egy eseménye van ma:"
@ -771,7 +771,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr ""
@ -804,9 +804,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -826,7 +826,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr ""
@ -853,11 +853,6 @@ msgstr "Új e-mail-cím megerősítése"
msgid "End"
msgstr "Befejezés"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Befejezés: %{ends_on}"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -910,7 +905,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr ""
@ -967,11 +962,6 @@ msgstr "Sajnáljuk! Ön nem megy."
msgid "Start"
msgstr "Kezdés"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Kezdés: %{begins_on}"
#, 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."
@ -1028,16 +1018,10 @@ msgid "Visit the updated event page"
msgstr "A frissített eseményoldal felkeresése"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "A frissített eseményoldal felkeresése: %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Mi lesz a héten?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1081,7 +1065,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1266,7 +1250,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr ""
@ -1389,7 +1373,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1555,3 +1539,55 @@ msgstr "Részvétel jóváhagyva"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Egy esemény tervezve a héten"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -997,7 +997,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -33,7 +33,7 @@ msgid "Activate my account"
msgstr "Aktifkan akun saya"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Bertanya ke komunitas di Framacolibri"
@ -112,7 +112,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Keikutsertaan Anda pada acara %{title} telah diterima"
@ -122,7 +122,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Keikutsertaan Anda pada acara %{title} telah ditolak"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Acara %{title} telah diperbarui"
@ -137,12 +137,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Peringatan"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Konfirmasi keikutsertaan Anda pada acara %{title}"
@ -346,7 +346,7 @@ msgstr[0] "%{nb_events} acara direncanakan hari ini"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Anda memiliki %{total} acara hari ini:"
@ -753,7 +753,7 @@ msgstr ""
"Harap konfirmasi alamat surel yang Anda berikan:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Butuh bantuan? Ada yang tidak bekerja sesuai ekspektasi?"
@ -786,9 +786,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -806,7 +806,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} didukung oleh Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> didukung oleh Mobilizon."
@ -833,11 +833,6 @@ msgstr "Konfirmasi surel baru"
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -890,7 +885,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Pelajari lebih lanjut tentang Mobilizon di sini!"
@ -945,11 +940,6 @@ msgstr "Maaf! Anda tidak ikut."
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -1008,16 +998,10 @@ msgid "Visit the updated event page"
msgstr "Kunjungi halaman acara yang sudah diperbarui"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Kunjungi halaman acara yang sudah diperbarui: %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Ada apa pekan ini?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1061,7 +1045,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1249,7 +1233,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr ""
@ -1372,7 +1356,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1538,3 +1522,55 @@ msgstr ""
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "%{nb_events} acara direncanakan pekan ini"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -951,7 +951,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -32,7 +32,7 @@ msgid "Activate my account"
msgstr "Attiva il mio account"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Chiedi alla comunità su Framacolibri"
@ -117,7 +117,7 @@ msgstr ""
"dall'attivarlo. Se non sei tu ignora questo messaggio."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "La tua partecipazione all'evento %{title} è stata approvata"
@ -127,7 +127,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "La tua partecipazione all'evento %{title} è stata rifiutata"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "L'evento %{title} è stato aggiornato"
@ -142,12 +142,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Hai richiesto una nuova password per il tuo account su %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Avviso"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Conferma la tua partecipazione all'evento %{title}"
@ -371,7 +371,7 @@ msgstr[1] "%{nb_events} eventi programmati oggi"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Hai un evento oggi:"
@ -904,7 +904,7 @@ msgstr ""
"Conferma l'indirizzo e-mail che hai fornito:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Bisogno di aiuto? Qualcosa non funziona correttamente?"
@ -941,9 +941,9 @@ msgstr "Si prega di non usarlo per scopi reali."
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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 +970,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "% {instance} è alimentata da Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> è alimentata da Mobilizon."
@ -997,11 +997,6 @@ msgstr "Conferma il nuovo indirizzo e-mail"
msgid "End"
msgstr "Fine"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Fine %{ends_on}"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -1071,7 +1066,7 @@ msgstr ""
"tramite il link in alto e fai clic sul pulsante «Partecipanti»."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Scopri di più su Mobilizon qui!"
@ -1128,11 +1123,6 @@ msgstr "Peccato! Non ci sei andato."
msgid "Start"
msgstr "Inizio"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Inizio %{begins_on}"
#, 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."
@ -1194,16 +1184,10 @@ msgid "Visit the updated event page"
msgstr "Visita la pagina dell'evento aggiornata"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Visita la pagina dell'evento aggiornata:% {link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Che succede questa settimana?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1254,7 +1238,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr "Se non hai attivato tu stesso la modifica, ignora questo messaggio."
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "<b> Si prega di non utilizzarlo per scopi reali. </b>"
@ -1537,7 +1521,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Recentemente hai richiesto di partecipare <b>%{title}</b>."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "La tua partecipazione all'evento %{title} è stata confermata"
@ -1672,7 +1656,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr "Siamo spiacenti, ma qualcosa è andato storto da parte nostra."
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Questo è un sito di prova per testare Mobilizon."
@ -1845,3 +1829,55 @@ msgstr "Partecipazione approvata"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Un evento in programma questa settimana"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -974,7 +974,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -30,7 +30,7 @@ msgid "Activate my account"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr ""
@ -109,7 +109,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr ""
@ -119,7 +119,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr ""
@ -134,12 +134,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr ""
@ -329,7 +329,7 @@ msgstr[0] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -718,7 +718,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr ""
@ -751,9 +751,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -771,7 +771,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr ""
@ -798,11 +798,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -855,7 +850,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr ""
@ -910,11 +905,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -971,16 +961,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1024,7 +1008,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1209,7 +1193,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr ""
@ -1332,7 +1316,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1498,3 +1482,55 @@ msgstr ""
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -944,7 +944,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -33,7 +33,7 @@ msgid "Activate my account"
msgstr "Activeer mijn account"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Vragen aan de gemeenschap op Framacolibri"
@ -118,7 +118,7 @@ msgstr ""
"klik van de activering. Gelieve deze email te negeren als u dit niet was."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Uw deelname aan het evenement %{title} is goedgekeurd"
@ -128,7 +128,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Uw deelname aan het evenement %{title} is afgewezen"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Evenement %{title} is bijgewerkt"
@ -143,12 +143,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "U hebt een nieuw wachtwoord aangevraagd voor uw account op %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Waarschuwing"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr ""
@ -339,7 +339,7 @@ msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -732,7 +732,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Hulp nodig? Werkt iets niet juist?"
@ -767,9 +767,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -793,7 +793,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} is een Mobilizonserver."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "%{instance} is een Mobilizonserver."
@ -820,11 +820,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -879,7 +874,7 @@ msgstr ""
"via de link hierboven, en klikt u op de deelnameknop."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Leer meer over Mobilizon."
@ -934,11 +929,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -995,16 +985,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Bekijk het bijgewerkte evenement op: %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1048,7 +1032,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1233,7 +1217,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "U hebt gevraagd om deel te nemen aan het evenement %{title}."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Uw deelname aan het evenement %{title} is goedgekeurd"
@ -1357,7 +1341,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Dit is een demosite om de bètaversie van Mobilizon te testen."
@ -1523,3 +1507,55 @@ msgstr "Deelname goedgekeurd"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -950,7 +950,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -32,7 +32,7 @@ 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.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Spør brukarsamfunnet på Framacolibri"
@ -118,7 +118,7 @@ msgstr ""
"berre oversjå denne eposten."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Deltakinga di på hendinga %{title} er godkjent"
@ -128,7 +128,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Deltakinga di på hendinga %{title} er avslegen"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Hendinga %{title} er oppdatert"
@ -143,12 +143,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Du ba om eit nytt passord for brukarkontoen din på %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Åtvaring"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Stadfest at du vil delta på hendinga %{title}"
@ -365,7 +365,7 @@ 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
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Du har ei hending i dag:"
@ -877,7 +877,7 @@ msgstr ""
"epostadressa du skreiv inn:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Treng du hjelp, eller er det noko som ikkje verkar slik du venta?"
@ -912,9 +912,9 @@ 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -940,7 +940,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} er ein Mobilizon-nettstad."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> er ein Mobilizon-nettstad."
@ -967,11 +967,6 @@ msgstr "Stadfest ny epostadresse"
msgid "End"
msgstr "Slutt"
#, 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
@ -1040,7 +1035,7 @@ msgstr ""
"og klkka på «Deltek»-knappen."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Lær meir om Mobilizon her!"
@ -1096,11 +1091,6 @@ msgstr "Orsak! Du er ikkje påmeld."
msgid "Start"
msgstr "Start"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Startar %{begins_on}"
#, 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."
@ -1159,16 +1149,10 @@ msgid "Visit the updated event page"
msgstr "Sjå på den oppdaterte hendingssida"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
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
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
@ -1218,7 +1202,7 @@ msgstr ""
"Viss du ikkje endra dette sjølv, kan du trygt sjå bort frå denne meldinga."
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "<b>Ikkje bruk det på ordentleg.</b>"
@ -1493,7 +1477,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Du ba nett om å vera med på <b>%{title}</b>."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Me har stadfesta at du deltek på hendinga %{title}"
@ -1628,7 +1612,7 @@ 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.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Dette er ei demoside for å prøva ut Mobilizon."
@ -1803,3 +1787,55 @@ msgstr "Deltakinga er godkjend"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr "Anonym deltakar"
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Ei planlagd hending denne veka"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -994,7 +994,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr "Det var ein ukjend feil då ressursen vart oppdatert"

View file

@ -31,7 +31,7 @@ msgid "Activate my account"
msgstr "Activar mon compte"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Demandatz a la comunautat sus Framacolibri"
@ -110,7 +110,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr "Avètz creat un compte sus %{host} amb aquesta adreça electronica. Sètz a un clic de lactivar."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Vòstra participacion a leveniment %{title} es estada aprovada"
@ -120,7 +120,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Vòstra participacion a leveniment %{title} es estada regetada"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Leveniment %{title} es estat actualizat"
@ -135,12 +135,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Avètz demandat un nòu senhal per vòstre compte sus %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Avertiment"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Confirmatz vòstra participacion a leveniment %{title}"
@ -362,7 +362,7 @@ msgstr[1] "%{nb_events} eveniments previstes uèi"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Avètz un eveniment uèi:"
@ -800,7 +800,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Besonh dajuda? Quicòm truca?"
@ -837,9 +837,9 @@ msgstr "Mercés de lutilizar pas dun biais 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -865,7 +865,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} es una instància Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> es una instància Mobilizon."
@ -892,11 +892,6 @@ msgstr "Confirmatz vòstra adreça electronica"
msgid "End"
msgstr "Fin"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Fin %{ends_on}"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -952,7 +947,7 @@ msgstr ""
"participacion."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Ne saber mai tocant Mobilizon."
@ -1007,11 +1002,6 @@ msgstr ""
msgid "Start"
msgstr "Debuta"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Debuta %{begins_on}"
#, 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."
@ -1071,16 +1061,10 @@ msgid "Visit the updated event page"
msgstr "Veire la pagina de l'eveniment mes a jorn"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Veire leveniment actualizat sus : %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Qué de nòu aquesta setmana?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1125,7 +1109,7 @@ msgstr ""
"Savètz pas demandat aquesta modificacion, mercés dignorar aqueste messatge."
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "<b>Mercés de lutilizar pas dun biais real.</b>"
@ -1318,7 +1302,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Avètz demandat de participar a leveniment <b>%{title}</b>."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Vòstra participacion a leveniment %{title} es estada aprovada"
@ -1441,7 +1425,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1608,3 +1592,55 @@ msgstr "Participacion aprovada"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Un eveniment previst aquesta setmana"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -962,7 +962,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -34,7 +34,7 @@ msgid "Activate my account"
msgstr "Aktywuj moje konto"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Zapytaj społeczność na Framacolibri"
@ -120,7 +120,7 @@ msgstr ""
"e-mail."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Twój udział w wydarzeniu %{title} został zatwierdzony"
@ -130,7 +130,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Twój udział w wydarzeniu %(title} został odrzucony"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Wydarzenie %{title} zostało zaktualizowane"
@ -145,12 +145,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Poprosiłeś(-aś) o nowe hasło do swojego konta na %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Ostrzeżenie"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Potwierdź swoje uczestnictwo w wydarzeniu %{title}"
@ -362,7 +362,7 @@ msgstr[2] "%{nv_events} wydareń zaplanowanych na dzisiaj"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Masz dzisiaj jedno wydarzenie:"
@ -795,7 +795,7 @@ msgstr ""
"„%{title}”. Potwierdź wprowadzony adres e-mail:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Potrzebujesz pomocy? Coś nie działa prawidłowo?"
@ -830,9 +830,9 @@ msgstr "Nie używaj go do żadnych rzeczywistych celów"
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -864,7 +864,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} jest serwerem Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "%{instance} jest serwerem Mobilizon."
@ -891,11 +891,6 @@ msgstr "Potwierdź nowy e-mail"
msgid "End"
msgstr "Koniec"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr "Koniec %{ends_on}"
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -963,7 +958,7 @@ msgstr ""
"używając powyższego przycisku i naciśnij przycisk zgłaszania udziału."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Dowiedz się więcej o Mobilizon."
@ -1018,11 +1013,6 @@ msgstr "Przepraszamy! Nie weźmiesz udziału."
msgid "Start"
msgstr "Początek"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Początek %{begins_on}"
#, 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."
@ -1081,16 +1071,10 @@ msgid "Visit the updated event page"
msgstr "Odwiedź zaktualizowaną stronę wydarzenia"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Zobacz zaktualizowane wydarzenie na %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "What's up this week?"
msgstr "Co wydarzy się w tym tygodniu?"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:13
#: lib/web/templates/email/on_day_notification.text.eex:1
@ -1134,7 +1118,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "Nie używaj go do żadnych rzeczywistych celów"
@ -1329,7 +1313,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Poprosiłeś(-aś) o uczestnictwo w wydarzeniu %{title}."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Twój udział w wydarzeniu %{title} został zatwierdzony"
@ -1456,7 +1440,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr "Przepraszamy, ale coś poszło nie tak po naszej stronie."
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "To jest strona demonstracyjna pozwalająca na przetestowanie Mobilizon."
@ -1622,3 +1606,55 @@ msgstr "Uczestnictwo przyjęte"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "Jedno wydarzenie zaplanowane na ten tydzień"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -979,7 +979,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -28,7 +28,7 @@ msgid "Activate my account"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr ""
@ -107,7 +107,7 @@ msgid "You created an account on %{host} with this email address. You are one cl
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr ""
@ -117,7 +117,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr ""
@ -132,12 +132,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr ""
@ -328,7 +328,7 @@ msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -721,7 +721,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr ""
@ -754,9 +754,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -776,7 +776,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr ""
@ -803,11 +803,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -860,7 +855,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr ""
@ -915,11 +910,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -976,16 +966,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1029,7 +1013,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1214,7 +1198,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr ""
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr ""
@ -1337,7 +1321,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1503,3 +1487,55 @@ msgstr ""
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -950,7 +950,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -32,7 +32,7 @@ msgid "Activate my account"
msgstr "Ativar a minha conta"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Perguntar à comunidade Framacolibri"
@ -118,7 +118,7 @@ msgstr ""
"ignorar este e-mail."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "A sua participação no evento %{title} foi aprovada"
@ -128,7 +128,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "A sua participação no evento %{title} foi rejeitada"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Evento %{title} foi atualizado"
@ -143,12 +143,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Você solicitou uma nova senha para sua conta em %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Atenção"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Confirmar sua participação no evento %{title}"
@ -374,7 +374,7 @@ msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] ""
@ -790,7 +790,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Precisa de ajuda? Algo não está funcionando bem?"
@ -825,9 +825,9 @@ msgstr "Por favor não utilize este serviço em nenhum caso 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -851,7 +851,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} é um servidor Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "%{instance} é um servidor Mobilizon."
@ -878,11 +878,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -937,7 +932,7 @@ msgstr ""
"evento através do link acima e clique no botão participação."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Aprenda mais sobre Mobilizon."
@ -992,11 +987,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -1053,16 +1043,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Veja o evento atualizado em: %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1106,7 +1090,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "Por favor não utilize este serviço em nenhum caso real"
@ -1326,7 +1310,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Você solicitou participar no evento %{title}."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "A sua participação no evento %{title} foi aprovada"
@ -1449,7 +1433,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Este é um site de demonstração para testar a versão beta do Mobilizon."
@ -1615,3 +1599,55 @@ msgstr "Participação aprovada"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -950,7 +950,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -33,7 +33,7 @@ msgid "Activate my account"
msgstr "Активировать мою учётную запись"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Обратиться к сообществу на Framacolibri"
@ -119,7 +119,7 @@ msgstr ""
"это письмо."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Ваше участие в мероприятии %{title} было одобрено"
@ -129,7 +129,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Ваш запрос на участие в %{title} был отклонен"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Мероприятие %{title} было обновлено"
@ -144,12 +144,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Вы запросили новый пароль для своей учетной записи на %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Предупреждение"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Подтвердите свое участие в мероприятии %{title}"
@ -374,7 +374,7 @@ 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
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "У вас сегодня одно мероприятие:"
@ -901,7 +901,7 @@ msgstr ""
"указали:"
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Нужна помощь? Что-то не работает?"
@ -938,9 +938,9 @@ msgstr "Пожалуйста, используйте это только для
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -974,7 +974,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} работает на платформе Mobilizon."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> работает на платформе Mobilizon."
@ -1001,11 +1001,6 @@ msgstr "Подтвердите новый адрес электронной по
msgid "End"
msgstr "Конец"
#, 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
@ -1075,7 +1070,7 @@ msgstr ""
"мероприятия по ссылке выше и нажмите кнопку « Я участвую »."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Узнайте больше о Mobilizon!"
@ -1130,11 +1125,6 @@ msgstr "Очень жаль! Вы не будете участвовать."
msgid "Start"
msgstr "Начало"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr "Начало %{begins_on}"
#, 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."
@ -1193,16 +1183,10 @@ msgid "Visit the updated event page"
msgstr "Посетите обновленную страницу мероприятия"
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
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
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
@ -1254,7 +1238,7 @@ msgstr ""
"сообщение."
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr "<b>Пожалуйста, используйте это только для тестовых целей.</b>"
@ -1531,7 +1515,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Вы недавно запросили участие в мероприятии <b>%{title}</b>."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Ваше участие в мероприятии %{title} одобрено"
@ -1668,7 +1652,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr "Сожалеем, но с нашей стороны что-то пошло не так."
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr "Это демонстрационная площадка для тестирования Mobilizon."
@ -1848,3 +1832,55 @@ msgstr ""
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr "На этой неделе запланировано одно мероприятие"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -1005,7 +1005,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr "Неизвестная ошибка при обновлении ресурса"

View file

@ -33,7 +33,7 @@ msgid "Activate my account"
msgstr "Aktivera mitt konto"
#, elixir-format
#: lib/web/templates/email/email.html.heex:118
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr "Fråga människorna på Framacolibri"
@ -119,7 +119,7 @@ msgstr ""
"du strunta i det här meddelandet."
#, elixir-format
#: lib/web/email/participation.ex:108
#: lib/web/email/participation.ex:111
msgid "Your participation to event %{title} has been approved"
msgstr "Din förfrågan om att få delta i evenemanget %{title} har godkännts"
@ -129,7 +129,7 @@ msgid "Your participation to event %{title} has been rejected"
msgstr "Din förfrågan om att få delta i evenemanget %{title} har fått avslag"
#, elixir-format
#: lib/web/email/event.ex:36
#: lib/web/email/event.ex:45
msgid "Event %{title} has been updated"
msgstr "Evenemanget %{title} har uppdaterats"
@ -144,12 +144,12 @@ msgid "You requested a new password for your account on %{instance}."
msgstr "Du har bett om ett nytt lösenord för ditt konto på %{instance}."
#, elixir-format
#: lib/web/templates/email/email.html.heex:86
#: lib/web/templates/email/email.html.heex:91
msgid "Warning"
msgstr "Varning"
#, elixir-format
#: lib/web/email/participation.ex:131
#: lib/web/email/participation.ex:135
msgid "Confirm your participation to event %{title}"
msgstr "Bekräfta ditt deltagande i eventet %{title}"
@ -344,7 +344,7 @@ msgstr[1] "%{nb_events} evenemang har planerats idag"
#, elixir-format
#: lib/web/templates/email/on_day_notification.html.heex:38
#: lib/web/templates/email/on_day_notification.text.eex:4
#: lib/web/templates/email/on_day_notification.text.eex:3
msgid "You have one event today:"
msgid_plural "You have %{total} events today:"
msgstr[0] "Du har ett evenemang idag:"
@ -737,7 +737,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:115
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr "Behöver du hjälp? Är det något som krånglar?"
@ -772,9 +772,9 @@ msgstr ""
#, 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
#: lib/web/templates/email/event_updated.text.eex:22 lib/web/templates/email/notification_each_week.html.heex:60
#: lib/web/templates/email/notification_each_week.text.eex:11 lib/web/templates/email/on_day_notification.html.heex:60
#: lib/web/templates/email/on_day_notification.text.eex:11
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] ""
@ -798,7 +798,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr "%{instance} är en Mobilizon-server."
#, elixir-format
#: lib/web/templates/email/email.html.heex:143
#: lib/web/templates/email/email.html.heex:148
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr "<b>%{instance}</b> är en Mobilizon-server."
@ -825,11 +825,6 @@ msgstr ""
msgid "End"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:21
msgid "End %{ends_on}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.html.heex:13
#: lib/web/templates/email/event_updated.text.eex:1
@ -885,7 +880,7 @@ msgstr ""
"länken ovan, och klicka på deltagande-knappen."
#, elixir-format
#: lib/web/templates/email/email.html.heex:144
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr "Läs mer om Mobilizon här!"
@ -940,11 +935,6 @@ msgstr ""
msgid "Start"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:18
msgid "Start %{begins_on}"
msgstr ""
#, 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."
@ -1001,16 +991,10 @@ msgid "Visit the updated event page"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:23
#: lib/web/templates/email/event_updated.text.eex:21
msgid "Visit the updated event page: %{link}"
msgstr "Visa det uppdaterade evenemanget på %{link}"
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
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
@ -1054,7 +1038,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:90
#: lib/web/templates/email/email.html.heex:95
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@ -1239,7 +1223,7 @@ msgid "You recently requested to attend <b>%{title}</b>."
msgstr "Du har bett om att få delta i evenemanget <b>%{title}</b>."
#, elixir-format
#: lib/web/email/participation.ex:88
#: lib/web/email/participation.ex:90
msgid "Your participation to event %{title} has been confirmed"
msgstr "Din förfrågan om att få delta i evenemanget %{title} har godkännts"
@ -1364,7 +1348,7 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:89
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
@ -1531,3 +1515,55 @@ msgstr "Ditt deltagande har godkänts"
#: lib/service/export/participants/common.ex:88
msgid "Anonymous participant"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
msgid "🌐 %{timezone} %{offset}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (%{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.text.eex:1
msgid "%{date_time} (in your timezone %{timezone} %{offset})"
msgstr ""
#, elixir-format
#: lib/web/templates/email/notification_each_week.html.heex:13
#: lib/web/templates/email/notification_each_week.text.eex:1
msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
msgid "Details"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
msgid "Read more"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
msgid "Online event"
msgstr ""

View file

@ -957,7 +957,7 @@ msgstr ""
msgid "Only groups can create events"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "Unknown error while creating event"
msgstr ""

View file

@ -0,0 +1,9 @@
defmodule Mobilizon.Storage.Repo.Migrations.AddCodeToParticipants do
use Ecto.Migration
def change do
alter table(:participants) do
add(:code, :string)
end
end
end

View file

@ -932,11 +932,11 @@ defmodule Mobilizon.Web.Resolvers.EventTest do
test "update_event/3 updates an event", %{conn: conn, actor: actor, user: user} do
event = insert(:event, organizer_actor: actor)
_creator = insert(:participant, event: event, actor: actor, role: :creator)
creator = insert(:participant, event: event, actor: actor, role: :creator)
participant_user = insert(:user)
participant_actor = insert(:actor, user: participant_user)
_participant =
participant =
insert(:participant, event: event, actor: participant_actor, role: :participant)
address = insert(:address)
@ -1010,6 +1010,7 @@ defmodule Mobilizon.Web.Resolvers.EventTest do
assert_delivered_email(
Email.Event.event_updated(
user.email,
creator,
actor,
event,
new_event,
@ -1020,6 +1021,7 @@ defmodule Mobilizon.Web.Resolvers.EventTest do
assert_delivered_email(
Email.Event.event_updated(
participant_user.email,
participant,
participant_actor,
event,
new_event,

View file

@ -0,0 +1,65 @@
defmodule Mobilizon.Service.TimezoneDetectorTest do
@moduledoc """
Test the timezone detector
"""
alias Mobilizon.Service.TimezoneDetector
use Mobilizon.DataCase
describe "detect when no geographic data is provided" do
test "with timezone" do
assert "Europe/Paris" == TimezoneDetector.detect("Europe/Paris", "Europe/Paris")
end
test "with invalid timezone" do
assert "Europe/Paris" == TimezoneDetector.detect("Europe/Neuilly", "Europe/Paris")
end
test "with default" do
assert "Europe/Paris" == TimezoneDetector.detect(nil, "Europe/Paris")
end
end
describe "with geographic data provided" do
test "when valid with value" do
assert "Europe/Berlin" ==
TimezoneDetector.detect(
"Europe/Berlin",
%Geo.Point{coordinates: {4.842569, 45.751718}, properties: %{}, srid: 4326},
"Europe/Moscow"
)
end
test "when valid with no value" do
assert "Europe/Paris" ==
TimezoneDetector.detect(
nil,
%Geo.Point{coordinates: {4.842569, 45.751718}, properties: %{}, srid: 4326},
"Europe/Moscow"
)
end
test "when valid with inalid value" do
assert "Europe/Paris" ==
TimezoneDetector.detect(
"Europe/Neuilly",
%Geo.Point{coordinates: {4.842569, 45.751718}, properties: %{}, srid: 4326},
"Europe/Moscow"
)
end
test "with invalid coordinates" do
assert "Europe/Moscow" ==
TimezoneDetector.detect(
nil,
%Geo.Point{coordinates: {0, 0}, properties: %{}, srid: 4326},
"Europe/Moscow"
)
end
test "with no data" do
assert "Europe/Paris" == TimezoneDetector.detect("Europe/Neuilly", nil, "Europe/Paris")
end
end
end

Some files were not shown because too many files have changed in this diff Show more