Merge branch 'email-notifications' into 'master'

Send activity digests

See merge request framasoft/mobilizon!953
This commit is contained in:
Thomas Citharel 2021-06-26 14:44:23 +00:00
commit d3790a371a
96 changed files with 3291 additions and 2382 deletions

View file

@ -277,9 +277,9 @@ config :mobilizon, Oban,
crontab: [
{"@hourly", Mobilizon.Service.Workers.BuildSiteMap, queue: :background},
{"17 4 * * *", Mobilizon.Service.Workers.RefreshGroups, queue: :background},
# To be activated in Mobilizon 1.2
# {"@hourly", Mobilizon.Service.Workers.CleanOrphanMediaWorker, queue: :background},
{"@hourly", Mobilizon.Service.Workers.CleanOrphanMediaWorker, queue: :background},
{"@hourly", Mobilizon.Service.Workers.CleanUnconfirmedUsersWorker, queue: :background},
{"@hourly", Mobilizon.Service.Workers.SendActivityRecapWorker, queue: :notifications},
{"@daily", Mobilizon.Service.Workers.CleanOldActivityWorker, queue: :background}
]},
{Oban.Plugins.Pruner, max_age: 300}

View file

@ -125,6 +125,7 @@ export const USER_SETTINGS_FRAGMENT = gql`
notificationBeforeEvent
notificationPendingParticipation
notificationPendingMembership
groupNotifications
location {
range
geohash
@ -154,6 +155,7 @@ export const SET_USER_SETTINGS = gql`
$notificationBeforeEvent: Boolean
$notificationPendingParticipation: NotificationPendingEnum
$notificationPendingMembership: NotificationPendingEnum
$groupNotifications: NotificationPendingEnum
$location: LocationInput
) {
setUserSettings(
@ -163,6 +165,7 @@ export const SET_USER_SETTINGS = gql`
notificationBeforeEvent: $notificationBeforeEvent
notificationPendingParticipation: $notificationPendingParticipation
notificationPendingMembership: $notificationPendingMembership
groupNotifications: $groupNotifications
location: $location
) {
...UserSettingFragment

View file

@ -1011,14 +1011,8 @@
"Page not found": "Page not found",
"{folder} - Resources": "{folder} - Resources",
"General settings": "General settings",
"Unsubscribe to WebPush": "Unsubscribe to WebPush",
"WebPush": "WebPush",
"You can't use webpush in this browser.": "You can't use webpush in this browser.",
"Notify participants": "Notify participants",
"Browser notifications": "Browser notifications",
"Unsubscribe to browser notifications": "Unsubscribe to browser notifications",
"Activate browser notification": "Activate browser notification",
"You can't use notifications in this browser.": "You can't use notifications in this browser.",
"Notification settings": "Notification settings",
"Select the activities for which you wish to receive an email or a push notification.": "Select the activities for which you wish to receive an email or a push notification.",
"Push": "Push",
@ -1054,5 +1048,12 @@
"Join group {group}": "Join group {group}",
"Public preview": "Public preview",
"On {instance} and other federated instances": "On {instance} and other federated instances",
"Error while subscribing to push notifications": "Error while subscribing to push notifications"
"Error while subscribing to push notifications": "Error while subscribing to push notifications",
"Unsubscribe to browser push notifications": "Unsubscribe to browser push notifications",
"Activate browser push notifications": "Activate browser push notifications",
"You can't use push notifications in this browser.": "You can't use push notifications in this browser.",
"Send notification e-mails": "Send notification e-mails",
"Announcements and mentions notifications are always sent straight away.": "Announcements and mentions notifications are always sent straight away.",
"Weekly email summary": "Weekly email summary",
"Receive one email for each activity": "Receive one email for each activity"
}

View file

@ -967,7 +967,6 @@
"We wont change the world from Facebook. The tool we dream of, surveillance capitalism corporations wont develop it, as they couldnt profit from it. This is an opportunity to build something better, by taking another approach.": "No cambiaremos el mundo de Facebook. La herramienta con la que soñamos, las corporaciones de capitalismo de vigilancia no la desarrollarán ya que no podrían beneficiarse de ella. Esta es una oportunidad para construir algo mejor, adoptando otro enfoque.",
"We'll send you an email one hour before the event begins, to be sure you won't forget about it.": "Le enviaremos un correo electrónico una hora antes de que comience el evento, para asegurarnos de que no lo olvide.",
"We'll use your timezone settings to send a recap of the morning of the event.": "Usaremos la configuración de su zona horaria para enviarle un recordatorio la mañana del día evento.",
"WebPush": "Webpush",
"Website": "Sitio web",
"Website / URL": "Sitio web / URL",
"Welcome back {username}!": "¡Bienvenido de nuevo {username}!",

View file

@ -45,7 +45,6 @@
"Accessible through link": "Accessible uniquement par lien",
"Account": "Compte",
"Actions": "Actions",
"Activate browser notification": "Activer les notifications du navigateur",
"Activated": "Activé",
"Active": "Actif·ive",
"Activity": "Activité",
@ -77,7 +76,7 @@
"An error has occurred.": "Une erreur est survenue.",
"An ethical alternative": "Une alternative éthique",
"An event I'm going to has been updated": "Un événement auquel je participe a été mis à jour",
"An event I'm going to has posted an announcement": "Un événement auquel je participe a posté une mise à jour",
"An event I'm going to has posted an announcement": "Un événement auquel je participe a posté une annonce",
"An event I'm organizing has a new comment": "Un événement que j'organise a un nouveau commentaire",
"An event I'm organizing has a new participation": "Un événement que j'organise a une nouvelle participation",
"An event I'm organizing has a new pending participation": "Un événement que j'organise a une nouvelle participation en attente",
@ -858,8 +857,6 @@
"Unknown value for the openness setting.": "Valeur inconnue pour le paramètre d'ouverture.",
"Unsaved changes": "Modifications non enregistrées",
"Unset group": "Déselectionner le groupe",
"Unsubscribe to WebPush": "Se désinscrire de WebPush",
"Unsubscribe to browser notifications": "Se désabonner des notifications du navigateur",
"Unsuspend": "Annuler la suspension",
"Upcoming": "À venir",
"Upcoming events": "Événements à venir",
@ -901,7 +898,6 @@
"We will redirect you to your instance in order to interact with this group": "Nous vous redirigerons vers votre instance afin que vous puissiez interagir avec ce groupe",
"We'll send you an email one hour before the event begins, to be sure you won't forget about it.": "Nous vous enverrons un email une heure avant que l'événement débute, pour être sûr que vous ne l'oubliez pas.",
"We'll use your timezone settings to send a recap of the morning of the event.": "Nous prendrons en compte votre fuseau horaire pour vous envoyer un récapitulatif de vos événements le matin.",
"WebPush": "WebPush",
"Website": "Site web",
"Website / URL": "Site web / URL",
"Welcome back {username}!": "Bon retour {username} !",
@ -935,8 +931,6 @@
"You can't change your password because you are registered through {provider}.": "Vous ne pouvez pas changer votre mot de passe car vous vous êtes enregistré via {provider}.",
"You can't remove your last identity.": "Vous ne pouvez pas supprimer votre dernière identité.",
"You can't reset your password because you use a 3rd-party auth provider to login.": "Vous ne pouvez pas réinitialiser votre mot de passe car vous vous connectez via une méthode externe.",
"You can't use notifications in this browser.": "Vous ne pouvez pas utiliser les notifications dans ce navigateur.",
"You can't use webpush in this browser.": "Vous ne pouvez pas utiliser webpush dans ce navigateur.",
"You changed your email or password": "Vous avez modifié votre email ou votre mot de passe",
"You created the discussion {discussion}.": "Vous avez créé la discussion {discussion}.",
"You created the event {event}.": "Vous avez créé l'événement {event}.",
@ -1145,5 +1139,12 @@
"Join group {group}": "Rejoindre le groupe {group}",
"Public preview": "Aperçu public",
"On {instance} and other federated instances": "Sur {instance} et d'autres instances fédérées",
"Error while subscribing to push notifications": "Erreur lors de la souscriptions aux notifications push"
"Error while subscribing to push notifications": "Erreur lors de la souscriptions aux notifications push",
"Unsubscribe to browser push notifications": "Se désinscrire des notifications push du navigateur",
"Activate browser push notifications": "Activer les notifications push du navigateur",
"You can't use push notifications in this browser.": "Vous ne pouvez pas utiliser les notifications push dans ce navigateur.",
"Send notification e-mails": "Envoyer des e-mails de notification",
"Announcements and mentions notifications are always sent straight away.": "Les notifications d'annonces et de mentions sont toujours envoyées directement.",
"Weekly email summary": "Résumé hebdomadaire par e-mail",
"Receive one email for each activity": "Recevoir un e-mail à chaque activité"
}

View file

@ -893,7 +893,6 @@
"We will redirect you to your instance in order to interact with this group": "Ímoste reenviar á túa instancia para que poidas interactuar con este grupo",
"We'll send you an email one hour before the event begins, to be sure you won't forget about it.": "Enviarémosche un email unha hora antes do comezo do evento, para que non o esquezas.",
"We'll use your timezone settings to send a recap of the morning of the event.": "Usaremos os axustes de zona horaria para enviar un recordatorio na mañán do evento.",
"WebPush": "WebPush",
"Website": "Sitio web",
"Website / URL": "Sitio web / URL",
"Welcome back {username}!": "Benvida {username}!",

View file

@ -834,7 +834,6 @@
"We will redirect you to your instance in order to interact with this group": "Мы перенаправим вас на ваш узел, чтобы вы могли взаимодействовать с этой группой",
"We'll send you an email one hour before the event begins, to be sure you won't forget about it.": "Мы отправим вам электронное письмо за час до начала мероприятия, чтобы вы не забыли про него.",
"We'll use your timezone settings to send a recap of the morning of the event.": "Мы используем настройки вашего часового пояса, чтобы утром отправить вам напоминание о мероприятии.",
"WebPush": "WebPush уведомления",
"Website": "Веб-сайт",
"Website / URL": "Веб-сайт / URL",
"Welcome back {username}!": "С возвращением, {username}!",

View file

@ -25,6 +25,7 @@ export interface IUserSettings {
notificationBeforeEvent?: boolean;
notificationPendingParticipation?: INotificationPendingEnum;
notificationPendingMembership?: INotificationPendingEnum;
groupNotifications?: INotificationPendingEnum;
location?: IUserPreferredLocation;
}

View file

@ -22,6 +22,7 @@ export enum INotificationPendingEnum {
DIRECT = "DIRECT",
ONE_DAY = "ONE_DAY",
ONE_HOUR = "ONE_HOUR",
ONE_WEEK = "ONE_WEEK",
}
export enum IAuthProvider {

View file

@ -19,16 +19,16 @@
<h2>{{ $t("Browser notifications") }}</h2>
</div>
<b-button v-if="subscribed" @click="unsubscribeToWebPush()">{{
$t("Unsubscribe to browser notifications")
$t("Unsubscribe to browser push notifications")
}}</b-button>
<b-button
icon-left="rss"
@click="subscribeToWebPush"
v-else-if="canShowWebPush()"
>{{ $t("Activate browser notification") }}</b-button
v-else-if="canShowWebPush"
>{{ $t("Activate browser push notifications") }}</b-button
>
<span v-else>{{
$t("You can't use notifications in this browser.")
$t("You can't use push notifications in this browser.")
}}</span>
</section>
<section>
@ -71,6 +71,28 @@
</template>
</tbody>
</table>
<b-field
:label="$t('Send notification e-mails')"
:message="
$t(
'Announcements and mentions notifications are always sent straight away.'
)
"
>
<b-select
v-model="groupNotifications"
@input="updateSetting({ groupNotifications })"
>
<option
v-for="(value, key) in groupNotificationsValues"
:value="key"
:key="key"
>
{{ value }}
</option>
</b-select>
</b-field>
</section>
<section>
<div class="setting-title">
@ -305,7 +327,11 @@ export default class Notifications extends Vue {
notificationPendingParticipation: INotificationPendingEnum | undefined =
INotificationPendingEnum.NONE;
groupNotifications: INotificationPendingEnum | undefined =
INotificationPendingEnum.ONE_DAY;
notificationPendingParticipationValues: Record<string, unknown> = {};
groupNotificationsValues: Record<string, unknown> = {};
RouteName = RouteName;
@ -313,6 +339,8 @@ export default class Notifications extends Vue {
subscribed = false;
canShowWebPush = false;
notificationMethods = {
email: this.$t("Email") as string,
push: this.$t("Push") as string,
@ -508,7 +536,7 @@ export default class Notifications extends Vue {
return merge(this.defaultNotificationValues, this.userNotificationValues);
}
mounted(): void {
async mounted(): Promise<void> {
this.notificationPendingParticipationValues = {
[INotificationPendingEnum.NONE]: this.$t("Do not receive any mail"),
[INotificationPendingEnum.DIRECT]: this.$t(
@ -516,7 +544,18 @@ export default class Notifications extends Vue {
),
[INotificationPendingEnum.ONE_HOUR]: this.$t("Hourly email summary"),
[INotificationPendingEnum.ONE_DAY]: this.$t("Daily email summary"),
[INotificationPendingEnum.ONE_WEEK]: this.$t("Weekly email summary"),
};
this.groupNotificationsValues = {
[INotificationPendingEnum.NONE]: this.$t("Do not receive any mail"),
[INotificationPendingEnum.DIRECT]: this.$t(
"Receive one email for each activity"
),
[INotificationPendingEnum.ONE_HOUR]: this.$t("Hourly email summary"),
[INotificationPendingEnum.ONE_DAY]: this.$t("Daily email summary"),
[INotificationPendingEnum.ONE_WEEK]: this.$t("Weekly email summary"),
};
this.canShowWebPush = await this.checkCanShowWebPush();
}
@Watch("loggedUser")
@ -528,6 +567,7 @@ export default class Notifications extends Vue {
this.loggedUser.settings.notificationBeforeEvent;
this.notificationPendingParticipation =
this.loggedUser.settings.notificationPendingParticipation;
this.groupNotifications = this.loggedUser.settings.groupNotifications;
}
}
@ -582,7 +622,7 @@ export default class Notifications extends Vue {
async subscribeToWebPush(): Promise<void> {
try {
if (this.canShowWebPush()) {
if (this.canShowWebPush) {
const subscription = await subscribeUserToPush();
if (subscription) {
const subscriptionJSON = subscription?.toJSON();
@ -628,8 +668,12 @@ export default class Notifications extends Vue {
}
}
canShowWebPush(): boolean {
return window.isSecureContext && !!navigator.serviceWorker;
async checkCanShowWebPush(): Promise<boolean> {
if (!window.isSecureContext && !("serviceWorker" in navigator))
return Promise.resolve(false);
const registration = await navigator.serviceWorker.getRegistration();
console.log("registration", registration);
return registration !== undefined;
}
async created(): Promise<void> {

View file

@ -190,6 +190,10 @@ defmodule Mobilizon.GraphQL.Schema.UserType do
"When does the user receives a notification about a new pending membership in one of the group they're admin for"
)
field(:group_notifications, :notification_pending_enum,
description: "When does the user receives a notification about new activity"
)
field(:location, :location,
description: "The user's preferred location, where they want to be suggested events"
)
@ -213,6 +217,11 @@ defmodule Mobilizon.GraphQL.Schema.UserType do
as: :one_day,
description: "One day. Notifications will be sent at most each day"
)
value(:one_week,
as: :one_week,
description: "One Week. Notifications will be sent at most each week"
)
end
object :location do
@ -384,6 +393,10 @@ defmodule Mobilizon.GraphQL.Schema.UserType do
"When does the user receives a notification about a new pending membership in one of the group they're admin for"
)
arg(:group_notifications, :notification_pending_enum,
description: "When does the user receives a notification about new activity"
)
arg(:location, :location_input,
description: "A geohash of the user's preferred location, where they want to see events"
)

View file

@ -0,0 +1,32 @@
defmodule Mix.Tasks.Mobilizon.WebPush.Gen.Keypair do
@moduledoc """
Task to generate WebPush configuration
Taken from https://github.com/danhper/elixir-web-push-encryption/blob/8fd0f71f3222b466d389f559be9800c49f9bb641/lib/mix/tasks/web_push_gen_keypair.ex
"""
use Mix.Task
import Mix.Tasks.Mobilizon.Common, only: [mix_shell?: 0]
@shortdoc "Manages Mobilizon users"
@impl Mix.Task
def run(_) do
{public, private} = :crypto.generate_key(:ecdh, :prime256v1)
IO.puts("# Put the following in your #{file_name()} config file:")
IO.puts("")
IO.puts("config :web_push_encryption, :vapid_details,")
IO.puts(" subject: \"mailto:administrator@example.com\",")
IO.puts(" public_key: \"#{ub64(public)}\",")
IO.puts(" private_key: \"#{ub64(private)}\"")
IO.puts("")
end
defp ub64(value) do
Base.url_encode64(value, padding: false)
end
defp file_name do
if mix_shell?(), do: "runtime.exs", else: "config.exs"
end
end

View file

@ -121,6 +121,32 @@ defmodule Mobilizon.Activities do
|> Page.build_page(page, limit)
end
@spec list_group_activities_for_recap(
integer() | String.t(),
integer() | String.t(),
DateTime.t() | nil
) :: [Activity.t()]
def list_group_activities_for_recap(
group_id,
actor_asking_id,
last_sent_at \\ nil
) do
query =
Activity
|> where([a], a.group_id == ^group_id)
|> join(:inner, [a], m in Member,
on: m.parent_id == a.group_id and m.actor_id == ^actor_asking_id
)
|> where([a, m], a.inserted_at >= m.member_since)
|> order_by(desc: :inserted_at)
|> preload([:author, :group])
query =
if is_nil(last_sent_at), do: query, else: where(query, [a], a.inserted_at >= ^last_sent_at)
Repo.all(query)
end
@doc """
Gets a single activity.

View file

@ -1474,12 +1474,9 @@ defmodule Mobilizon.Actors do
@spec groups_member_of_query(integer | String.t()) :: Ecto.Query.t()
defp groups_member_of_query(actor_id) do
from(
a in Actor,
join: m in Member,
on: a.id == m.parent_id,
where: m.actor_id == ^actor_id
)
Actor
|> join(:inner, [a], m in Member, on: a.id == m.parent_id)
|> where([a, m], m.actor_id == ^actor_id and m.role in ^@member_roles)
end
@spec groups_query :: Ecto.Query.t()

View file

@ -17,7 +17,13 @@ defmodule Mobilizon.Users do
defenum(UserRole, :user_role, [:administrator, :moderator, :user])
defenum(NotificationPendingNotificationDelay, none: 0, direct: 1, one_hour: 5, one_day: 10)
defenum(NotificationPendingNotificationDelay,
none: 0,
direct: 1,
one_hour: 5,
one_day: 10,
one_week: 15
)
@confirmation_token_length 30
@ -520,6 +526,18 @@ defmodule Mobilizon.Users do
|> Repo.insert(on_conflict: :replace_all, conflict_target: [:user_id, :key, :method])
end
@doc """
Returns a stream of users which want to have a scheduled recap
"""
@spec stream_users_for_recap :: Enum.t()
def stream_users_for_recap do
User
|> filter_activated(true)
|> join(:inner, [u], s in Setting, on: s.user_id == u.id)
|> where([_u, s], s.group_notifications in [:one_hour, :one_day, :one_week])
|> Repo.stream()
end
@spec user_by_email_query(String.t(), boolean | nil, boolean()) :: Ecto.Query.t()
defp user_by_email_query(email, activated, unconfirmed) do
User

View file

@ -15,8 +15,8 @@ defmodule Mobilizon.Service.DateTime do
@spec datetime_tz_convert(DateTime.t(), String.t()) :: DateTime.t()
def datetime_tz_convert(%DateTime{} = datetime, timezone) do
case DateTime.shift_zone(datetime, timezone) do
{:ok, datetime_with_user_tz} ->
datetime_with_user_tz
{:ok, datetime_with_tz} ->
datetime_with_tz
_ ->
datetime
@ -38,4 +38,156 @@ defmodule Mobilizon.Service.DateTime do
"en"
end
end
def is_first_day_of_week(%Date{} = date, locale \\ "en") do
Date.day_of_week(date) == Cldr.Calendar.first_day_for_locale(locale)
end
@spec calculate_first_day_of_week(Date.t(), String.t()) :: Date.t()
def calculate_first_day_of_week(%Date{} = date, locale \\ "en") do
if is_first_day_of_week(date, locale),
do: date,
else: calculate_first_day_of_week(Date.add(date, -1), locale)
end
@doc """
Calculate the time when a notification should be sent, based on a daily schedule
## Parameters
* `compare_to` When to compare to. Defaults to the current datetime
* `notification_time` The time when the notification is being sent. Defaults to `~T[08:00:00]`
* `timezone` The user's timezone. Needed to convert the time in the user's local timezone. Defaults to `"Etc/UTC"`
"""
@spec calculate_next_day_notification(Date.t(), Keyword.t()) :: DateTime.t()
def calculate_next_day_notification(%Date{} = day, options \\ []) do
compare_to = Keyword.get(options, :compare_to, DateTime.utc_now())
notification_time = Keyword.get(options, :notification_time, ~T[18:00:00])
timezone = Keyword.get(options, :timezone, "Etc/UTC")
send_at = DateTime.new!(day, notification_time, timezone)
if DateTime.compare(send_at, compare_to) == :lt do
day
|> Date.add(1)
|> DateTime.new!(notification_time, timezone)
else
send_at
end
end
@doc """
Calculate the time when a notification should be sent, based on a weekly schedule
## Parameters
* `compare_to` When to compare to. Defaults to the current datetime
* `notification_time` The time when the notification is being sent. Defaults to `~T[08:00:00]`
* `timezone` The user's timezone. Needed to convert the time in the user's local timezone. Defaults to `"Etc/UTC"`
* `locale` The user's locale. Allows to get the first day of the week to send the notification on the beginning of the week. Defaults to `"en"`.
"""
@spec calculate_next_week_notification(DateTime.t(), Keyword.t()) :: DateTime.t() | nil
def calculate_next_week_notification(begins_on, options \\ []) do
# That's now, but we allow to override it for tests
compare_to = Keyword.get(options, :compare_to, DateTime.utc_now())
# If the event is in the future
if DateTime.compare(begins_on, compare_to) == :gt do
# We get the day of the scheduled notification next week
notification_date = appropriate_first_day_of_week(begins_on, options)
if is_nil(notification_date) do
nil
else
# This is the datetime when the notification should be sent
if DateTime.compare(notification_date, compare_to) == :gt do
notification_date
else
nil
end
end
else
# In the past, don't send anything
nil
end
end
@spec next_first_day_of_week(DateTime.t(), Keyword.t()) :: Date.t() | nil
def next_first_day_of_week(%DateTime{} = datetime, options) do
locale = Keyword.get(options, :locale, "en")
compare_to = Keyword.get(options, :compare_to, DateTime.utc_now())
next_first_day_of_week =
compare_to
|> DateTime.to_date()
|> calculate_first_day_of_week(locale)
|> Timex.add(Timex.Duration.from_weeks(1))
|> build_notification_datetime(options)
if Date.compare(datetime, next_first_day_of_week) == :gt do
next_first_day_of_week
else
nil
end
end
def appropriate_first_day_of_week(%DateTime{} = datetime, options) do
locale = Keyword.get(options, :locale, "en")
timezone = Keyword.get(options, :timezone, "Etc/UTC")
local_datetime = datetime_tz_convert(datetime, timezone)
first_day = local_datetime |> DateTime.to_date() |> calculate_first_day_of_week(locale)
first_datetime = build_notification_datetime(first_day, options)
if DateTime.compare(local_datetime, first_datetime) == :gt do
first_datetime
else
next_first_day_of_week(local_datetime, options)
end
end
@spec build_notification_datetime(Date.t(), Keyword.t()) :: DateTime.t()
def build_notification_datetime(
%Date{} = date,
options
) do
notification_time = Keyword.get(options, :notification_time, ~T[08:00:00])
timezone = Keyword.get(options, :timezone, "Etc/UTC")
DateTime.new!(date, notification_time, timezone)
end
@start_time ~T[08:00:00]
@end_time ~T[09:00:00]
@spec is_between_hours(Keyword.t()) :: boolean()
def is_between_hours(options \\ []) when is_list(options) do
compare_to_day = Keyword.get(options, :compare_to_day, Date.utc_today())
compare_to = Keyword.get(options, :compare_to_datetime, DateTime.utc_now())
start_time = Keyword.get(options, :start_time, @start_time)
timezone = Keyword.get(options, :timezone, "Etc/UTC")
end_time = Keyword.get(options, :end_time, @end_time)
DateTime.compare(compare_to, DateTime.new!(compare_to_day, start_time, timezone)) in [
:gt,
:eq
] &&
DateTime.compare(
compare_to,
DateTime.new!(compare_to_day, end_time, timezone)
) == :lt
end
@spec is_between_hours_on_first_day(Keyword.t()) :: boolean()
def is_between_hours_on_first_day(options) when is_list(options) do
compare_to_day = Keyword.get(options, :compare_to_day, Date.utc_today())
locale = Keyword.get(options, :locale, "en")
Mobilizon.Service.DateTime.is_first_day_of_week(compare_to_day, locale) &&
is_between_hours(options)
end
@spec is_delay_ok_since_last_notification_sent(DateTime.t()) :: boolean()
def is_delay_ok_since_last_notification_sent(%DateTime{} = last_notification_sent) do
DateTime.compare(DateTime.add(last_notification_sent, 3_600), DateTime.utc_now()) ==
:lt
end
end

View file

@ -8,6 +8,15 @@ defmodule Mobilizon.Service.Notifications.Scheduler do
alias Mobilizon.Events.{Event, Participant}
alias Mobilizon.Service.Workers.Notification
alias Mobilizon.Users.{Setting, User}
import Mobilizon.Service.DateTime,
only: [
datetime_tz_convert: 2,
calculate_first_day_of_week: 2,
calculate_next_day_notification: 2,
calculate_next_week_notification: 2
]
require Logger
@spec trigger_notifications_for_participant(Participant.t()) :: {:ok, nil}
@ -44,7 +53,7 @@ defmodule Mobilizon.Service.Notifications.Scheduler do
when not is_nil(user_id) do
case Users.get_setting(user_id) do
%Setting{notification_on_day: true, timezone: timezone} ->
%DateTime{hour: hour} = begins_on_shifted = shift_zone(begins_on, timezone)
%DateTime{hour: hour} = begins_on_shifted = datetime_tz_convert(begins_on, timezone)
Logger.debug("Participation event start at #{inspect(begins_on_shifted)} (user timezone)")
send_date =
@ -90,7 +99,7 @@ defmodule Mobilizon.Service.Notifications.Scheduler do
case settings do
%Setting{notification_each_week: true, timezone: timezone} ->
%DateTime{} = begins_on_shifted = shift_zone(begins_on, timezone)
%DateTime{} = begins_on_shifted = datetime_tz_convert(begins_on, timezone)
Logger.debug(
"Participation event start at #{inspect(begins_on_shifted)} (user timezone is #{timezone})"
@ -143,6 +152,7 @@ defmodule Mobilizon.Service.Notifications.Scheduler do
with %Actor{user_id: user_id} when not is_nil(user_id) <-
Actors.get_actor(organizer_actor_id),
%User{
locale: locale,
settings: %Setting{
notification_pending_participation: notification_pending_participation,
timezone: timezone
@ -157,7 +167,13 @@ defmodule Mobilizon.Service.Notifications.Scheduler do
:direct
:one_day ->
calculate_next_day_notification(Date.utc_today(), timezone)
calculate_next_day_notification(Date.utc_today(), timezone: timezone)
:one_week ->
calculate_next_week_notification(DateTime.utc_now(),
timezone: timezone,
locale: locale
)
:one_hour ->
DateTime.utc_now()
@ -259,40 +275,4 @@ defmodule Mobilizon.Service.Notifications.Scheduler do
Notification.enqueue(:pending_membership_notification, params, scheduled_at: send_at)
end
end
defp shift_zone(datetime, timezone) do
case DateTime.shift_zone(datetime, timezone) do
{:ok, shift_datetime} -> shift_datetime
{:error, _} -> datetime
end
end
defp calculate_first_day_of_week(%Date{} = date, locale) do
day_number = Date.day_of_week(date)
first_day_number = Cldr.Calendar.first_day_for_locale(locale)
if day_number == first_day_number,
do: date,
else: calculate_first_day_of_week(Date.add(date, -1), locale)
end
defp calculate_next_day_notification(%Date{} = day, timezone) do
send_at = date_to_datetime(day, ~T[18:00:00], timezone)
if DateTime.compare(send_at, DateTime.utc_now()) == :lt do
day
|> Date.add(1)
|> date_to_datetime(~T[18:00:00], timezone)
else
send_at
end
end
defp date_to_datetime(%Date{} = day, time, timezone) do
# Just in case
timezone = timezone || "Etc/UTC"
{:ok, datetime} = NaiveDateTime.new(day, time)
{:ok, datetime} = DateTime.from_naive(datetime, timezone)
datetime
end
end

View file

@ -6,10 +6,17 @@ defmodule Mobilizon.Service.Notifier.Email do
alias Mobilizon.{Config, Users}
alias Mobilizon.Service.Notifier
alias Mobilizon.Service.Notifier.{Email, Filter}
alias Mobilizon.Users.{NotificationPendingNotificationDelay, Setting, User}
alias Mobilizon.Users.{Setting, User}
alias Mobilizon.Web.Email.Activity, as: EmailActivity
alias Mobilizon.Web.Email.Mailer
import Mobilizon.Service.DateTime,
only: [
is_delay_ok_since_last_notification_sent: 1
]
require Logger
@behaviour Notifier
@impl Notifier
@ -27,9 +34,11 @@ defmodule Mobilizon.Service.Notifier.Email do
@impl Notifier
def send(%User{email: email, locale: locale} = user, activities, options)
when is_list(activities) do
activities = Enum.filter(activities, &can_send_activity?(&1, user))
activities = Enum.filter(activities, &can_send_activity?(&1, user, options))
if length(activities) > 0 do
Logger.debug("Found some activities to send by email")
if can_send?(user) && length(activities) > 0 do
email
|> EmailActivity.direct_activity(activities, Keyword.put(options, :locale, locale))
|> Mailer.send_email()
@ -37,13 +46,80 @@ defmodule Mobilizon.Service.Notifier.Email do
save_last_notification_time(user)
{:ok, :sent}
else
Logger.debug("No activities to send by email")
{:ok, :skipped}
end
end
@spec can_send_activity?(Activity.t(), User.t()) :: boolean()
defp can_send_activity?(%Activity{} = activity, %User{} = user) do
Filter.can_send_activity?(activity, "email", user, &default_activity_behavior/1)
# These notifications are using LegacyNotifierBuilder and don't have any history,
# so we always send them directly, as long as the setting isn't none
@always_direct_subjects [
:participation_event_comment,
:event_comment_mention,
:discussion_mention
]
@spec can_send_activity?(Activity.t(), User.t(), Keyword.t()) :: boolean()
defp can_send_activity?(
%Activity{subject: subject} = activity,
%User{
settings: %Setting{
group_notifications: group_notifications,
last_notification_sent: last_notification_sent
}
} = user,
options
) do
Filter.can_send_activity?(activity, "email", user, &default_activity_behavior/1) &&
match_group_notifications_setting(
group_notifications,
subject,
last_notification_sent,
options
)
end
@spec match_group_notifications_setting(
NotificationPendingNotificationDelay.t(),
String.t(),
DateTime.t() | nil,
Keyword.t()
) :: boolean()
# No notifications at all
defp match_group_notifications_setting(:none, _, _, _), do: false
# Every notification
defp match_group_notifications_setting(:direct, _, _, _), do: true
# Direct notifications
defp match_group_notifications_setting(_, subject, _, _)
when subject in @always_direct_subjects,
do: true
defp match_group_notifications_setting(
group_notifications,
_subject,
last_notification_sent,
options
) do
cond do
# This is a recap
Keyword.get(options, :recap, false) != false ->
true
# First notification EVER!
group_notifications == :one_hour && is_nil(last_notification_sent) ->
true
# Delay ok since last notification
group_notifications == :one_hour &&
is_delay_ok_since_last_notification_sent(last_notification_sent) ->
true
# Otherwise, no thanks
true ->
false
end
end
@default_behavior %{
@ -70,32 +146,6 @@ defmodule Mobilizon.Service.Notifier.Email do
Map.get(@default_behavior, activity_setting, false)
end
@type notification_type ::
:group_notifications
| :notification_pending_participation
| :notification_pending_membership
@spec user_notification_delay(User.t(), notification_type()) ::
NotificationPendingNotificationDelay.t()
defp user_notification_delay(%User{} = user, type \\ :group_notifications) do
Map.from_struct(user.settings)[type]
end
@spec can_send?(User.t()) :: boolean()
defp can_send?(%User{settings: %Setting{last_notification_sent: last_notification_sent}} = user) do
last_notification_sent_or_default = last_notification_sent || DateTime.utc_now()
notification_delay = user_notification_delay(user)
diff = DateTime.diff(DateTime.utc_now(), last_notification_sent_or_default)
cond do
notification_delay == :none -> false
is_nil(last_notification_sent) -> true
notification_delay == :direct -> true
notification_delay == :one_hour -> diff >= 60 * 60
notification_delay == :one_day -> diff >= 24 * 60 * 60
end
end
@spec save_last_notification_time(User.t()) :: {:ok, Setting.t()} | {:error, Ecto.Changeset.t()}
defp save_last_notification_time(%User{id: user_id}) do
attrs = %{user_id: user_id, last_notification_sent: DateTime.utc_now()}

View file

@ -1,14 +0,0 @@
defmodule Mobilizon.Service.Workers.DigestNotifierWorker do
@moduledoc """
Worker to send notifications
"""
use Mobilizon.Service.Workers.Helper, queue: "notifications"
@impl Oban.Worker
def perform(%Job{}) do
# Get last time activities were send
# List activities to send
# Send activites
end
end

View file

@ -11,6 +11,11 @@ defmodule Mobilizon.Service.Workers.Notification do
alias Mobilizon.Users.{Setting, User}
alias Mobilizon.Web.Email.{Mailer, Notification}
import Mobilizon.Service.DateTime,
only: [
datetime_tz_convert: 2
]
use Mobilizon.Service.Workers.Helper, queue: "mailers"
@impl Oban.Worker
@ -109,16 +114,9 @@ defmodule Mobilizon.Service.Workers.Notification do
end
end
defp shift_zone(datetime, timezone) do
case DateTime.shift_zone(datetime, timezone) do
{:ok, shift_datetime} -> shift_datetime
{:error, _} -> datetime
end
end
defp calculate_start_end(days, timezone) do
now = DateTime.utc_now()
%DateTime{} = now_shifted = shift_zone(now, timezone)
%DateTime{} = now_shifted = datetime_tz_convert(now, timezone)
start = %{now_shifted | hour: 8, minute: 0, second: 0, microsecond: {0, 0}}
{:ok, %NaiveDateTime{} = tomorrow} =

View file

@ -0,0 +1,112 @@
defmodule Mobilizon.Service.Workers.SendActivityRecapWorker do
@moduledoc """
Worker to send activity recaps
"""
use Oban.Worker, queue: "notifications"
alias Mobilizon.{Activities, Actors, Users}
alias Mobilizon.Activities.Activity
alias Mobilizon.Actors.Actor
alias Mobilizon.Service.Notifier.Email
alias Mobilizon.Storage.Repo
alias Mobilizon.Users.{Setting, User}
import Mobilizon.Service.DateTime,
only: [
is_between_hours: 1,
is_between_hours_on_first_day: 1,
is_delay_ok_since_last_notification_sent: 1
]
@impl Oban.Worker
def perform(%Job{}) do
Repo.transaction(fn ->
Users.stream_users_for_recap()
|> Enum.to_list()
|> Repo.preload([:settings])
|> Enum.filter(&filter_elegible_users/1)
|> Enum.map(fn %User{} = user ->
%{
activities: activities_for_user(user),
user: user
}
end)
|> Enum.filter(fn %{activities: activities, user: _user} -> length(activities) > 0 end)
|> Enum.map(fn %{
activities: activities,
user:
%User{settings: %Setting{group_notifications: group_notifications}} =
user
} ->
Email.send(user, activities, recap: group_notifications)
end)
end)
end
defp activities_for_user(
%User{settings: %Setting{last_notification_sent: last_notification_sent}} = user
) do
user
|> Users.get_actors_for_user()
|> Enum.flat_map(&group_memberships(&1, last_notification_sent))
|> Enum.uniq()
end
defp group_memberships(%Actor{id: actor_id} = actor, last_notification_sent) do
actor
|> group_memberships_for_actor()
|> Enum.uniq()
|> Enum.flat_map(&activities_for_group(&1, actor_id, last_notification_sent))
end
defp group_memberships_for_actor(%Actor{} = actor) do
Actors.list_groups_member_of(actor)
end
defp activities_for_group(
%Actor{id: group_id, type: :Group},
actor_asking_id,
last_notification_sent
) do
group_id
|> Activities.list_group_activities_for_recap(actor_asking_id, last_notification_sent)
# Don't send my own activities
|> Enum.filter(fn %Activity{author: %Actor{id: author_id}} -> author_id != actor_asking_id end)
end
defp filter_elegible_users(%User{
settings: %Setting{last_notification_sent: nil, group_notifications: :one_hour}
}) do
true
end
defp filter_elegible_users(%User{
settings: %Setting{
last_notification_sent: %DateTime{} = last_notification_sent,
group_notifications: :one_hour
}
}) do
is_delay_ok_since_last_notification_sent(last_notification_sent)
end
# If we're between notification hours
defp filter_elegible_users(%User{
settings: %Setting{
group_notifications: :one_day,
timezone: timezone
}
}) do
is_between_hours(timezone: timezone)
end
# If we're on the first day of the week between notification hours
defp filter_elegible_users(%User{
locale: locale,
settings: %Setting{
group_notifications: :one_week,
timezone: timezone
}
}) do
is_between_hours_on_first_day(timezone: timezone, locale: locale)
end
end

View file

@ -21,13 +21,10 @@ defmodule Mobilizon.Web.Email.Activity do
) do
locale = Keyword.get(options, :locale, "en")
single_activity = Keyword.get(options, :single_activity, false)
recap = Keyword.get(options, :recap, false)
Gettext.put_locale(locale)
subject =
gettext(
"Activity notification for %{instance}",
instance: Config.instance_name()
)
subject = get_subject(recap)
chunked_activities = chunk_activities(activities)
@ -37,6 +34,7 @@ defmodule Mobilizon.Web.Email.Activity do
|> assign(:activities, chunked_activities)
|> assign(:total_number_activities, length(activities))
|> assign(:single_activity, single_activity)
|> assign(:recap, recap)
|> render(:email_direct_activity)
end
@ -94,4 +92,38 @@ defmodule Mobilizon.Web.Email.Activity do
end
end)
end
@spec get_subject(atom() | false) :: String.t()
defp get_subject(recap) do
if recap do
case recap do
:one_hour ->
dgettext(
"activity",
"Activity notification for %{instance}",
instance: Config.instance_name()
)
:one_day ->
dgettext(
"activity",
"Daily activity recap for %{instance}",
instance: Config.instance_name()
)
:one_week ->
dgettext(
"activity",
"Weekly activity recap for %{instance}",
instance: Config.instance_name()
)
end
else
dgettext(
"activity",
"Activity notification for %{instance}",
instance: Config.instance_name()
)
end
end
end

View file

@ -1,73 +1,4 @@
<%= case @activity.subject do %>
<% :discussion_created -> %>
<%=
dgettext("activity", "%{profile} created the discussion %{discussion}.",
%{
profile: "<b>#{Mobilizon.Actors.Actor.display_name_and_username(@activity.author)}</b>",
discussion: "<a href=\"#{
page_url(
Mobilizon.Web.Endpoint,
:discussion,
Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group), @activity.subject_params["discussion_slug"]
) |> URI.decode()}\">
#{@activity.subject_params["discussion_title"]}
</a>"
}
) |> raw %>
<% :discussion_replied -> %>
<%=
dgettext("activity", "%{profile} replied to the discussion %{discussion}.",
%{
profile: "<b>#{Mobilizon.Actors.Actor.display_name_and_username(@activity.author)}</b>",
discussion: "<a href=\"#{
page_url(
Mobilizon.Web.Endpoint,
:discussion,
Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group), @activity.subject_params["discussion_slug"]
) |> URI.decode()}\">
#{@activity.subject_params["discussion_title"]}
</a>"
}
) |> raw %>
<% :discussion_renamed -> %>
<%=
dgettext("activity", "%{profile} renamed the discussion %{discussion}.",
%{
profile: "<b>#{Mobilizon.Actors.Actor.display_name_and_username(@activity.author)}</b>",
discussion: "<a href=\"#{
page_url(
Mobilizon.Web.Endpoint,
:discussion,
Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group), @activity.subject_params["discussion_slug"]
) |> URI.decode()}\">
#{@activity.subject_params["discussion_title"]}
</a>"
}
) |> raw %>
<% :discussion_archived -> %>
<%=
dgettext("activity", "%{profile} archived the discussion %{discussion}.",
%{
profile: "<b>#{Mobilizon.Actors.Actor.display_name_and_username(@activity.author)}</b>",
discussion: "<a href=\"#{
page_url(
Mobilizon.Web.Endpoint,
:discussion,
Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group), @activity.subject_params["discussion_slug"]
) |> URI.decode()}\">
#{@activity.subject_params["discussion_title"]}
</a>"
}
) |> raw %>
<% :discussion_deleted -> %>
<%=
dgettext("activity", "%{profile} deleted the discussion %{discussion}.",
%{
profile: "<b>#{Mobilizon.Actors.Actor.display_name_and_username(@activity.author)}</b>",
discussion: "<b>#{@activity.subject_params["discussion_title"]}</b>"
}
) |> raw %>
<% :event_comment_mention -> %>
<%=
dgettext("activity", "%{profile} mentionned you in a comment under event %{event}.",

View file

@ -22,19 +22,19 @@
discussion: @activity.subject_params["discussion_title"]
}
) %>
<%= page_url(Mobilizon.Web.Endpoint, :discussion, Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group), @activity.subject_params["discussion_slug"]) |> URI.decode() %><% :discussion_deleted -> %><%= dgettext("activity", "%{profile} deleted the discussion %{discussion}.",
<%= page_url(Mobilizon.Web.Endpoint, :discussion, Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group), @activity.subject_params["discussion_slug"]) |> URI.decode() %><% :discussion_deleted -> %><%= dgettext("activity", "%{profile} deleted the discussion %{discussion}.",
%{
profile: Mobilizon.Actors.Actor.display_name_and_username(@activity.author),
discussion: @activity.subject_params["discussion_title"]
}
) %>
<%= page_url(Mobilizon.Web.Endpoint, :discussion, Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group), @activity.subject_params["discussion_slug"]) |> URI.decode() %><% :event_comment_mention -> %><%= dgettext("activity", "%{profile} mentionned you in a comment under %{event}.",
<%= page_url(Mobilizon.Web.Endpoint, :discussion, Mobilizon.Actors.Actor.preferred_username_and_domain(@activity.group), @activity.subject_params["discussion_slug"]) |> URI.decode() %><% :event_comment_mention -> %><%= dgettext("activity", "%{profile} mentionned you in a comment under event %{event}.",
%{
profile: Mobilizon.Actors.Actor.display_name_and_username(@activity.author),
event: @activity.subject_params["event_title"]
}
) %>
<%= page_url(Mobilizon.Web.Endpoint, :event, @activity.subject_params["event_uuid"]) |> URI.decode() %><% :participation_event_comment -> %><%= dgettext("activity", "%{profile} has posted an announcement under event %{event}.",
<%= page_url(Mobilizon.Web.Endpoint, :event, @activity.subject_params["event_uuid"]) |> URI.decode() %><% :participation_event_comment -> %><%= dgettext("activity", "%{profile} has posted an announcement under event %{event}.",
%{
profile: Mobilizon.Actors.Actor.display_name_and_username(@activity.author),
event: @activity.subject_params["event_title"]

View file

@ -110,11 +110,11 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
<!-- HEADLINE -->
<tr>
<td bgcolor="#757199" align="center" style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<h2 style="font-size: 20px; font-weight: 400; color: #3A384C; margin: 0;">
<td bgcolor="#474467" align="center" style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<h2 style="font-size: 20px; font-weight: 400; color: #FFFFFF; margin: 0;">
<%= gettext "Need help? Is something not working as expected?" %>
</h2>
<p style="margin: 0;"><a href="https://framacolibri.org/c/mobilizon/test-mobilizon" target="_blank" style="color: #474467;">
<p style="margin: 0;"><a href="https://framacolibri.org/c/mobilizon/test-mobilizon" target="_blank" style="color: #FFFFFF;">
<%= gettext "Ask the community on Framacolibri" %>
</a></p>
</td>
@ -140,7 +140,7 @@
<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;">
<%= gettext("<b>%{instance}</b> is powered by Mobilizon.", instance: @instance[:name]) |> raw %>
<%= 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>
</td>

View file

@ -35,7 +35,16 @@
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 20px 5% 0px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<p style="margin: 0;">
<%= dngettext("activity", "There has been an activity!", "There has been some activity!", @total_number_activities) %>
<%= case @recap do %>
<% :one_day -> %>
<% dgettext("activity", "Here's your daily activity recap") %>
<% :one_week -> %>
<% dgettext("activity", "Here's your weekly activity recap") %>
<% :one_hour -> %>
<%= dngettext("activity", "There has been an activity!", "There has been some activity!", @total_number_activities) %>
<% false -> %>
<%= dngettext("activity", "There has been an activity!", "There has been some activity!", @total_number_activities) %>
<% end %>
</p>
</td>
</tr>
@ -108,7 +117,9 @@
<% end %>
</p>
<%= unless @single_activity do %>
<em><%= datetime_relative(activity.inserted_at, @locale) %></em>
<em>
<%= datetime_to_string(activity.inserted_at, @locale, :short) %>
</em>
<% end %>
</li>
<% end %>
@ -141,7 +152,7 @@
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;" >
<p style="margin: 0">
<%= dgettext "activity", "Don't want to receive activity notifications? You may change frequency or disable them in your settings." %>
<%= dgettext("activity", "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}.", %{tag_start: "<a href=\"#{Mobilizon.Web.Endpoint.url()}/settings/notifications\">", tag_end: "</a>"}) |> raw %>
</p>
</td>
</tr>

View file

@ -1,7 +1,11 @@
<%= @subject %>
==
<%= dngettext("activity", "There has been an activity!", "There has been some activity!", @total_number_activities) %>
<%= case @recap do %><% :one_day -> %><% dgettext("activity", "Here's your daily activity recap") %>
<% :one_week -> %><% dgettext("activity", "Here's your weekly activity recap") %>
<% :one_hour -> %><%= dngettext("activity", "There has been an activity!", "There has been some activity!", @total_number_activities) %>
<% false -> %><%= dngettext("activity", "There has been an activity!", "There has been some activity!", @total_number_activities) %>
<% end %>
<%= for {_, group_activities} <- @activities do %>
@ -13,11 +17,12 @@
<%= for activity <- Enum.take(group_activities, 5) do %>
* <%= case activity.type do %><% :discussion -> %><%= render("activity/_discussion_activity_item.text", activity: activity) %><% :event -> %><%= render("activity/_event_activity_item.text", activity: activity) %><% :group -> %><%= render("activity/_group_activity_item.text", activity: activity) %>
<% :member -> %><%= render("activity/_member_activity_item.text", activity: activity) %><% :post -> %><%= render("activity/_post_activity_item.text", activity: activity) %><% :resource -> %><%= render("activity/_resource_activity_item.text", activity: activity) %><% :comment -> %><%= render("activity/_comment_activity_item.text", activity: activity) %><% end %>
<%= unless @single_activity do %><%= datetime_relative(activity.inserted_at, @locale) %><% end %>
<%= unless @single_activity do %><%= datetime_to_string(activity.inserted_at, @locale, :short) %><% end %>
<% end %>
<%= if length(group_activities) > 5 do %>
<%= dngettext "activity", "View one more activity", "View %{count} more activities", length(group_activities) - 5, %{count: length(group_activities) - 5} %>
<%= page_url(Mobilizon.Web.Endpoint, :actor, Mobilizon.Actors.Actor.preferred_username_and_domain(hd(group_activities).group)) |> URI.decode() %>/timeline
<% end %>
<% end %>
<%= dgettext("activity", "Don't want to receive activity notifications? You may change frequency or disable them in your settings.") %>
<%= dgettext("activity", "Don't want to receive activity notifications? You may change frequency or disable them in your settings.") %>
<% "#{Mobilizon.Web.Endpoint.url()}/settings/notifications" %>

View file

@ -41,18 +41,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -75,9 +73,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -119,9 +116,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -139,10 +135,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -213,13 +208,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -227,8 +221,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -241,22 +235,47 @@ msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:52
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -232,8 +226,8 @@ msgstr[4] ""
msgstr[5] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -248,24 +242,49 @@ msgstr[5] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -423,7 +423,7 @@ msgstr[4] ""
msgstr[5] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1435,8 +1435,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -792,7 +792,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -229,8 +223,8 @@ msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -242,24 +236,49 @@ msgstr[2] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -405,7 +405,7 @@ msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1411,8 +1411,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -766,7 +766,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -446,7 +446,7 @@ msgstr[0] "Tens una activitat aquesta setmana:"
msgstr[1] "Tens %{total} activitats aquesta setmana:"
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "L'organitzadora no hi ha posat cap descripció."
@ -1660,8 +1660,3 @@ msgstr "Sembla ser que el servidor de Mobilizon està temporalment inaccessible.
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -767,7 +767,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -229,8 +223,8 @@ msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -242,24 +236,49 @@ msgstr[2] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -405,7 +405,7 @@ msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1411,8 +1411,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -766,7 +766,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -452,7 +452,7 @@ msgstr[0] "Du hast diese Woche eine Veranstaltung:"
msgstr[1] "Du hast diese Woche %{total} Veranstaltungen:"
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "Der Eventorganisator hat keine Beschreibung hinzugefügt."
@ -1775,8 +1775,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -794,7 +794,7 @@ msgid "You can't reject this invitation with this profile."
msgstr "Sie können diese Einladung mit diesem Profil nicht ablehnen."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "Die Datei hat keinen zulässigen MIME-Typ."

View file

@ -386,7 +386,7 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1390,8 +1390,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -439,7 +439,7 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1443,8 +1443,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -770,7 +770,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -767,7 +767,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -18,257 +18,278 @@ msgstr ""
"X-Generator: Weblate 4.6.2\n"
"Content-Transfer-Encoding: 8bit\n"
#, elixir-format
#: lib/service/activity/renderer/member.ex:38
#: lib/web/templates/email/activity/_member_activity_item.html.eex:19 lib/web/templates/email/activity/_member_activity_item.text.eex:12
#, elixir-format
msgid "%{member} accepted the invitation to join the group."
msgstr "%{member} aceptó la invitación para unirse al grupo."
#, elixir-format
#: lib/service/activity/renderer/member.ex:42
#: lib/web/templates/email/activity/_member_activity_item.html.eex:26 lib/web/templates/email/activity/_member_activity_item.text.eex:17
#, elixir-format
msgid "%{member} rejected the invitation to join the group."
msgstr "%{member} rechazó la invitación para unirse al grupo."
#, elixir-format
#: lib/service/activity/renderer/member.ex:30
#: lib/web/templates/email/activity/_member_activity_item.html.eex:4 lib/web/templates/email/activity/_member_activity_item.text.eex:1
#, elixir-format
msgid "%{member} requested to join the group."
msgstr "%{member} solicitó unirse al grupo."
#, elixir-format
#: lib/service/activity/renderer/member.ex:34
#: lib/web/templates/email/activity/_member_activity_item.html.eex:11 lib/web/templates/email/activity/_member_activity_item.text.eex:6
#, elixir-format
msgid "%{member} was invited by %{profile}."
msgstr "%{member} fue invitado por %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:50
#: lib/web/templates/email/activity/_member_activity_item.html.eex:40 lib/web/templates/email/activity/_member_activity_item.text.eex:27
#, elixir-format
msgid "%{profile} added the member %{member}."
msgstr "%{profile} agregó el miembro %{member}."
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr "%{profile} archivó la discusión %{discussion}."
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr "%{profile} creó la discusión %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:24
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5 lib/web/templates/email/activity/_resource_activity_item.text.eex:2
#, elixir-format
msgid "%{profile} created the folder %{resource}."
msgstr "%{profile} creó la carpeta %{resource}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
#, elixir-format
msgid "%{profile} created the group %{group}."
msgstr "%{profile} crfeó el grupo %{group}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:33
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20 lib/web/templates/email/activity/_resource_activity_item.text.eex:8
#, elixir-format
msgid "%{profile} created the resource %{resource}."
msgstr "%{profile} creó el recurso %{resource}."
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr "%{profile} eliminó la discusión %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:97
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103 lib/web/templates/email/activity/_resource_activity_item.text.eex:40
#, elixir-format
msgid "%{profile} deleted the folder %{resource}."
msgstr "%{profile} borró la carpeta %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:106
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111 lib/web/templates/email/activity/_resource_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} eliminado el recurso %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/web/templates/email/activity/_member_activity_item.html.eex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
#, elixir-format
msgid "%{profile} excluded member %{member}."
msgstr "%{profile }miembro excluido %{member}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:76
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71 lib/web/templates/email/activity/_resource_activity_item.text.eex:28
#, elixir-format
msgid "%{profile} moved the folder %{resource}."
msgstr "%{profile} movió la carpeta %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:85
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86 lib/web/templates/email/activity/_resource_activity_item.text.eex:34
#, elixir-format
msgid "%{profile} moved the resource %{resource}."
msgstr "%{profile} movió el recurso %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.eex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} quit the group."
msgstr "%{profile} abandona el grupo."
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr "%{profile} renombrado la discusión %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:45
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37 lib/web/templates/email/activity/_resource_activity_item.text.eex:14
#, elixir-format
msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
msgstr ""
"%{profile} ha renombrado la carpeta de %{old_resource_title} a %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:59
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53 lib/web/templates/email/activity/_resource_activity_item.text.eex:21
#, elixir-format
msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
msgstr ""
"%{profile} ha renombrado el recurso de %{old_resource_title} a %{resource}."
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr "%{profile} respondió a la discusión %{discussion}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
#, elixir-format
msgid "%{profile} updated the group %{group}."
msgstr "%{profile} actualizó el grupo %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/web/templates/email/activity/_member_activity_item.html.eex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
#, elixir-format
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} actualizado el miembro %{member}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:23
#: lib/web/templates/email/activity/_event_activity_item.html.eex:4 lib/web/templates/email/activity/_event_activity_item.text.eex:1
#, elixir-format
msgid "The event %{event} was created by %{profile}."
msgstr "El evento %{event} fue creado por %{profile}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:43
#: lib/web/templates/email/activity/_event_activity_item.html.eex:34 lib/web/templates/email/activity/_event_activity_item.text.eex:13
#, elixir-format
msgid "The event %{event} was deleted by %{profile}."
msgstr "El evento% {event} fue eliminado por % {profile}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:33
#: lib/web/templates/email/activity/_event_activity_item.html.eex:19 lib/web/templates/email/activity/_event_activity_item.text.eex:7
#, elixir-format
msgid "The event %{event} was updated by %{profile}."
msgstr "El evento %{event} fue actualizado por %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:23
#: lib/web/templates/email/activity/_post_activity_item.html.eex:4 lib/web/templates/email/activity/_post_activity_item.text.eex:1
#, elixir-format
msgid "The post %{post} was created by %{profile}."
msgstr "El cargo %{post} fue creado por %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:43
#: lib/web/templates/email/activity/_post_activity_item.html.eex:34 lib/web/templates/email/activity/_post_activity_item.text.eex:13
#, elixir-format
msgid "The post %{post} was deleted by %{profile}."
msgstr "El post %{post} fue eliminado por %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:33
#: lib/web/templates/email/activity/_post_activity_item.html.eex:19 lib/web/templates/email/activity/_post_activity_item.text.eex:7
#, elixir-format
msgid "The post %{post} was updated by %{profile}."
msgstr "El post %{post} fue actualizado por %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:46
#: lib/web/templates/email/activity/_member_activity_item.html.eex:33 lib/web/templates/email/activity/_member_activity_item.text.eex:22
#, elixir-format
msgid "%{member} joined the group."
msgstr "%{member} se unió al grupo."
#, elixir-format
#: lib/service/activity/renderer/event.ex:63
#: lib/web/templates/email/activity/_event_activity_item.html.eex:58 lib/web/templates/email/activity/_event_activity_item.text.eex:25
#, elixir-format
msgid "%{profile} posted a comment on the event %{event}."
msgstr "%{profile} publicó un comentario sobre el evento %{event}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:54
#: lib/web/templates/email/activity/_event_activity_item.html.eex:43 lib/web/templates/email/activity/_event_activity_item.text.eex:19
#, elixir-format
msgid "%{profile} replied to a comment on the event %{event}."
msgstr "%{profile} respondió a un comentario sobre el evento %{event}."
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
"¿No quieres recibir notificaciones de actividad? Puede cambiar la frecuencia "
"o deshabilitarlos en su configuración."
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.text.eex:19
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Ver una actividad más"
msgstr[1] "Ver %{count} actividades mas"
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "¡Ha habido una actividad!"
msgstr[1] "¡Ha habido algopúnas actividades!"
#: lib/service/activity/renderer/renderer.ex:38
#, elixir-format
#: lib/service/activity/renderer/renderer.ex:38
msgid "Activity on %{instance}"
msgstr "Actividad en %{instance}"
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr "%{profile} ha publicado un anuncio en el evento %{event}."
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
#, elixir-format
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr "%{profile} te mencionó en un comentario en %{event}."
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr "%{profile} te mencionó en un comentario en el evento %{event}."
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr "%{profile}te mencioné en la discusión %{discussion}."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
"¿No quieres recibir notificaciones de actividad? Puede cambiar la frecuencia "
"o deshabilitarlos en su configuración."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr "Actividad en %{instance}"
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -786,7 +786,7 @@ msgid "You can't reject this invitation with this profile."
msgstr "No puedes rechazar esta invitación con este perfil."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "El archivo no tiene un tipo MIME permitido."

View file

@ -18,255 +18,276 @@ msgstr ""
"X-Generator: Weblate 4.6.2\n"
"Content-Transfer-Encoding: 8bit\n"
#, elixir-format
#: lib/service/activity/renderer/member.ex:38
#: lib/web/templates/email/activity/_member_activity_item.html.eex:19 lib/web/templates/email/activity/_member_activity_item.text.eex:12
#, elixir-format
msgid "%{member} accepted the invitation to join the group."
msgstr "%{member} hyväksyi kutsun liittyä ryhmään."
#, elixir-format
#: lib/service/activity/renderer/member.ex:42
#: lib/web/templates/email/activity/_member_activity_item.html.eex:26 lib/web/templates/email/activity/_member_activity_item.text.eex:17
#, elixir-format
msgid "%{member} rejected the invitation to join the group."
msgstr "%{member} hylkäsi kutsun liittyä ryhmään."
#, elixir-format
#: lib/service/activity/renderer/member.ex:30
#: lib/web/templates/email/activity/_member_activity_item.html.eex:4 lib/web/templates/email/activity/_member_activity_item.text.eex:1
#, elixir-format
msgid "%{member} requested to join the group."
msgstr "%{member} haluaa liittyä ryhmään."
#, elixir-format
#: lib/service/activity/renderer/member.ex:34
#: lib/web/templates/email/activity/_member_activity_item.html.eex:11 lib/web/templates/email/activity/_member_activity_item.text.eex:6
#, elixir-format
msgid "%{member} was invited by %{profile}."
msgstr "%{profile} kutsui jäsenen %{member}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:50
#: lib/web/templates/email/activity/_member_activity_item.html.eex:40 lib/web/templates/email/activity/_member_activity_item.text.eex:27
#, elixir-format
msgid "%{profile} added the member %{member}."
msgstr "%{profile} lisäsi jäsenen %{member}."
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr "%{profile} arkistoi keskustelun %{discussion}."
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr "%{profile} loi keskustelun %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:24
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5 lib/web/templates/email/activity/_resource_activity_item.text.eex:2
#, elixir-format
msgid "%{profile} created the folder %{resource}."
msgstr "%{profile} loi kansion %{resource}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
#, elixir-format
msgid "%{profile} created the group %{group}."
msgstr "%{profile} loi ryhmän %{group}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:33
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20 lib/web/templates/email/activity/_resource_activity_item.text.eex:8
#, elixir-format
msgid "%{profile} created the resource %{resource}."
msgstr "%{profile} loi resurssin %{resource}."
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr "%{profile} poisti keskustelun %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:97
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103 lib/web/templates/email/activity/_resource_activity_item.text.eex:40
#, elixir-format
msgid "%{profile} deleted the folder %{resource}."
msgstr "%{profile} poisti kansion %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:106
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111 lib/web/templates/email/activity/_resource_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} poisti resurssin %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/web/templates/email/activity/_member_activity_item.html.eex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
#, elixir-format
msgid "%{profile} excluded member %{member}."
msgstr "%{profile} hylkäsi jäsenen %{member}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:76
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71 lib/web/templates/email/activity/_resource_activity_item.text.eex:28
#, elixir-format
msgid "%{profile} moved the folder %{resource}."
msgstr "%{profile} siirsi kansion %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:85
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86 lib/web/templates/email/activity/_resource_activity_item.text.eex:34
#, elixir-format
msgid "%{profile} moved the resource %{resource}."
msgstr "%{profile} siirsi resurssin %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.eex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} quit the group."
msgstr "%{profile} poistui ryhmästä."
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr "%{profile} muutti keskustelun %{discussion} nimer."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:45
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37 lib/web/templates/email/activity/_resource_activity_item.text.eex:14
#, elixir-format
msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
msgstr "%{profile} muutti kansion %{old_resource_title} nimeksi %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:59
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53 lib/web/templates/email/activity/_resource_activity_item.text.eex:21
#, elixir-format
msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
msgstr "%{profile} muutti resurssin %{old_resource_title} nimeksi %{resource}."
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr "%{profile} vastasi keskusteluun %{discussion}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
#, elixir-format
msgid "%{profile} updated the group %{group}."
msgstr "%{profile} päivitti ryhmää %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/web/templates/email/activity/_member_activity_item.html.eex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
#, elixir-format
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} päivitti jäsentä %{member}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:23
#: lib/web/templates/email/activity/_event_activity_item.html.eex:4 lib/web/templates/email/activity/_event_activity_item.text.eex:1
#, elixir-format
msgid "The event %{event} was created by %{profile}."
msgstr "%{profile} loi tapahtuman %{event}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:43
#: lib/web/templates/email/activity/_event_activity_item.html.eex:34 lib/web/templates/email/activity/_event_activity_item.text.eex:13
#, elixir-format
msgid "The event %{event} was deleted by %{profile}."
msgstr "%{profile} poisti tapahtuman %{event}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:33
#: lib/web/templates/email/activity/_event_activity_item.html.eex:19 lib/web/templates/email/activity/_event_activity_item.text.eex:7
#, elixir-format
msgid "The event %{event} was updated by %{profile}."
msgstr "%{profile} päivitti tapahtumaa %{event}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:23
#: lib/web/templates/email/activity/_post_activity_item.html.eex:4 lib/web/templates/email/activity/_post_activity_item.text.eex:1
#, elixir-format
msgid "The post %{post} was created by %{profile}."
msgstr "%{profile} loi julkaisun %{post}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:43
#: lib/web/templates/email/activity/_post_activity_item.html.eex:34 lib/web/templates/email/activity/_post_activity_item.text.eex:13
#, elixir-format
msgid "The post %{post} was deleted by %{profile}."
msgstr "%{profile} poisti julkaisun %{post}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:33
#: lib/web/templates/email/activity/_post_activity_item.html.eex:19 lib/web/templates/email/activity/_post_activity_item.text.eex:7
#, elixir-format
msgid "The post %{post} was updated by %{profile}."
msgstr "%{profile} päivitti julkaisun %{post}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:46
#: lib/web/templates/email/activity/_member_activity_item.html.eex:33 lib/web/templates/email/activity/_member_activity_item.text.eex:22
#, elixir-format
msgid "%{member} joined the group."
msgstr "%{member} liittyi ryhmään."
#, elixir-format
#: lib/service/activity/renderer/event.ex:63
#: lib/web/templates/email/activity/_event_activity_item.html.eex:58 lib/web/templates/email/activity/_event_activity_item.text.eex:25
#, elixir-format
msgid "%{profile} posted a comment on the event %{event}."
msgstr "%{profile} kommentoi tapahtumaa %{event}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:54
#: lib/web/templates/email/activity/_event_activity_item.html.eex:43 lib/web/templates/email/activity/_event_activity_item.text.eex:19
#, elixir-format
msgid "%{profile} replied to a comment on the event %{event}."
msgstr "%{profile} vastasi tapahtuman %{event} kommenttiin."
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
"Jos et halua vastaanottaa toimenpideilmoituksia, voit muuttaa "
"ilmoitustiheyttä tai poistaa ilmoitukset käytöstä asetuksista."
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.text.eex:19
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Näytä seuraava toimenpide"
msgstr[1] "Näytä %{count} seuraavaa toimenpidettä"
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Toimenpide!"
msgstr[1] "Toimenpiteitä!"
#: lib/service/activity/renderer/renderer.ex:38
#, elixir-format
#: lib/service/activity/renderer/renderer.ex:38
msgid "Activity on %{instance}"
msgstr "Toimenpide palvelimella %{instance}"
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr "%{profile} on julkaissut ilmoituksen tapahtumassa %{event}."
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
#, elixir-format
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr "%{profile} mainitsi sinut tapahtuman %{event} kommentissa."
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr "%{profile} mainitsi sinut tapahtuman %{event} kommentissa."
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr "%{profile} mainitsi sinut keskustelussa %{discussion}."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
"Jos et halua vastaanottaa toimenpideilmoituksia, voit muuttaa "
"ilmoitustiheyttä tai poistaa ilmoitukset käytöstä asetuksista."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr "Toimenpide palvelimella %{instance}"
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -94,766 +94,766 @@ msgstr "tulee olla vähintään %{number}"
msgid "must be equal to %{number}"
msgstr "tulee olla tasas %{number}"
#: lib/graphql/resolvers/user.ex:100
#, elixir-format
#: lib/graphql/resolvers/user.ex:100
msgid "Cannot refresh the token"
msgstr "Merkkiä ei voi päivittää"
#: lib/graphql/resolvers/group.ex:206
#, elixir-format
#: lib/graphql/resolvers/group.ex:206
msgid "Current profile is not a member of this group"
msgstr "Nykyinen profiili ei kuulu tähän ryhmään"
#: lib/graphql/resolvers/group.ex:210
#, elixir-format
#: lib/graphql/resolvers/group.ex:210
msgid "Current profile is not an administrator of the selected group"
msgstr "Nykyinen profiili ei ole valitun ryhmän ylläpitäjä"
#: lib/graphql/resolvers/user.ex:523
#, elixir-format
#: lib/graphql/resolvers/user.ex:523
msgid "Error while saving user settings"
msgstr "Käyttäjän asetusten tallennuksessa tapahtui virhe"
#, elixir-format
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:203
#: lib/graphql/resolvers/group.ex:234 lib/graphql/resolvers/group.ex:269 lib/graphql/resolvers/member.ex:80
#, elixir-format
msgid "Group not found"
msgstr "Ryhmää ei löydy"
#: lib/graphql/resolvers/group.ex:68
#, elixir-format
#: lib/graphql/resolvers/group.ex:68
msgid "Group with ID %{id} not found"
msgstr "Tunnuksella %{id} ei löydy ryhmää"
#: lib/graphql/resolvers/user.ex:80
#, elixir-format
#: lib/graphql/resolvers/user.ex:80
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr ""
"Kirjautuminen epäonnistui - joko sähköpostiosoitteesi tai salasana on väärin."
#: lib/graphql/resolvers/group.ex:266
#, elixir-format
#: lib/graphql/resolvers/group.ex:266
msgid "Member not found"
msgstr "Jäsentä ei löydy"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:91
#: lib/graphql/resolvers/user.ex:428
#, elixir-format
msgid "No profile found for the moderator user"
msgstr "Moderaattorikäyttäjän profiilia ei löydy"
#: lib/graphql/resolvers/user.ex:215
#, elixir-format
#: lib/graphql/resolvers/user.ex:215
msgid "No user to validate with this email was found"
msgstr "Käyttäjää tämän sähköpostin vahvistamiseksi ei löydy"
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:240
#, elixir-format
#: lib/graphql/resolvers/person.ex:254 lib/graphql/resolvers/user.ex:240
msgid "No user with this email was found"
msgstr "Käyttäjää, jolla on tämä sähköpostiosoite ei löydy"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:28 lib/graphql/resolvers/participant.ex:159
#: lib/graphql/resolvers/participant.ex:188 lib/graphql/resolvers/person.ex:165 lib/graphql/resolvers/person.ex:199
#: lib/graphql/resolvers/person.ex:279 lib/graphql/resolvers/person.ex:295 lib/graphql/resolvers/person.ex:323
#: lib/graphql/resolvers/person.ex:340
#, elixir-format
msgid "Profile is not owned by authenticated user"
msgstr "Profiili ei ole tunnistautuneen käyttäjän omistuksessa"
#: lib/graphql/resolvers/user.ex:145
#, elixir-format
#: lib/graphql/resolvers/user.ex:145
msgid "Registrations are not open"
msgstr "Ei voi rekisteröityä"
#: lib/graphql/resolvers/user.ex:353
#, elixir-format
#: lib/graphql/resolvers/user.ex:353
msgid "The current password is invalid"
msgstr "Nykyinen salasana ei kelpaa"
#: lib/graphql/resolvers/user.ex:398
#, elixir-format
#: lib/graphql/resolvers/user.ex:398
msgid "The new email doesn't seem to be valid"
msgstr "Uusi sähköpostiosoite ei vaikuta kelvolliselta"
#: lib/graphql/resolvers/user.ex:395
#, elixir-format
#: lib/graphql/resolvers/user.ex:395
msgid "The new email must be different"
msgstr "Uuden sähköpostiosoitteen on poikettava vanhasta"
#: lib/graphql/resolvers/user.ex:356
#, elixir-format
#: lib/graphql/resolvers/user.ex:356
msgid "The new password must be different"
msgstr "Uuden salasanan on poikettava vanhasta"
#, elixir-format
#: lib/graphql/resolvers/user.ex:392 lib/graphql/resolvers/user.ex:450
#: lib/graphql/resolvers/user.ex:453
#, elixir-format
msgid "The password provided is invalid"
msgstr "Annettu salasana on epäkelpo"
#: lib/graphql/resolvers/user.ex:360
#, elixir-format
#: lib/graphql/resolvers/user.ex:360
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr ""
"Valitsemasi salasana on liian lyhyt. Käytä vähintään kuuden merkin mittaista "
"salasanaa."
#: lib/graphql/resolvers/user.ex:236
#, elixir-format
#: lib/graphql/resolvers/user.ex:236
msgid "This user can't reset their password"
msgstr "Käyttäjä ei voi palauttaa salasanaansa"
#: lib/graphql/resolvers/user.ex:76
#, elixir-format
#: lib/graphql/resolvers/user.ex:76
msgid "This user has been disabled"
msgstr "Käyttäjä on poistettu käytöstä"
#: lib/graphql/resolvers/user.ex:199
#, elixir-format
#: lib/graphql/resolvers/user.ex:199
msgid "Unable to validate user"
msgstr "Käyttäjää ei voi vahvistaa"
#: lib/graphql/resolvers/user.ex:431
#, elixir-format
#: lib/graphql/resolvers/user.ex:431
msgid "User already disabled"
msgstr "Käyttäjä on jo poistettu käytöstä"
#: lib/graphql/resolvers/user.ex:498
#, elixir-format
#: lib/graphql/resolvers/user.ex:498
msgid "User requested is not logged-in"
msgstr "Pyydetty käyttäjä ei ole kirjautuneena sisään"
#: lib/graphql/resolvers/group.ex:240
#, elixir-format
#: lib/graphql/resolvers/group.ex:240
msgid "You are already a member of this group"
msgstr "Olet jo tämän ryhmän jäsen"
#: lib/graphql/resolvers/group.ex:273
#, elixir-format
#: lib/graphql/resolvers/group.ex:273
msgid "You can't leave this group because you are the only administrator"
msgstr "Et voi poistua ryhmästä, koska olet sen ainoa ylläpitäjä"
#: lib/graphql/resolvers/group.ex:237
#, elixir-format
#: lib/graphql/resolvers/group.ex:237
msgid "You cannot join this group"
msgstr "Et voi liittyä tähän ryhmään"
#: lib/graphql/resolvers/group.ex:96
#, elixir-format
#: lib/graphql/resolvers/group.ex:96
msgid "You may not list groups unless moderator."
msgstr "Voit nähdä ryhmäluettelon vain, jos olet moderaattori."
#: lib/graphql/resolvers/user.ex:403
#, elixir-format
#: lib/graphql/resolvers/user.ex:403
msgid "You need to be logged-in to change your email"
msgstr "Sähköpostiosoitteen voi vaihtaa vain sisäänkirjautuneena"
#: lib/graphql/resolvers/user.ex:368
#, elixir-format
#: lib/graphql/resolvers/user.ex:368
msgid "You need to be logged-in to change your password"
msgstr "Salasanan voi vaihtaa vain sisäänkirjautuneena"
#: lib/graphql/resolvers/group.ex:215
#, elixir-format
#: lib/graphql/resolvers/group.ex:215
msgid "You need to be logged-in to delete a group"
msgstr "Ryhmän voi poistaa vain sisäänkirjautuneena"
#: lib/graphql/resolvers/user.ex:458
#, elixir-format
#: lib/graphql/resolvers/user.ex:458
msgid "You need to be logged-in to delete your account"
msgstr "Voit poistaa tilisi vain sisäänkirjautuneena"
#: lib/graphql/resolvers/group.ex:245
#, elixir-format
#: lib/graphql/resolvers/group.ex:245
msgid "You need to be logged-in to join a group"
msgstr "Voit liittyä ryhmään vain sisäänkirjautuneena"
#: lib/graphql/resolvers/group.ex:278
#, elixir-format
#: lib/graphql/resolvers/group.ex:278
msgid "You need to be logged-in to leave a group"
msgstr "Voit poistua ryhmästä vain sisäänkirjautuneena"
#: lib/graphql/resolvers/group.ex:180
#, elixir-format
#: lib/graphql/resolvers/group.ex:180
msgid "You need to be logged-in to update a group"
msgstr "Voit päivittää ryhmää vain sisäänkirjautuneena"
#: lib/graphql/resolvers/user.ex:105
#, elixir-format
#: lib/graphql/resolvers/user.ex:105
msgid "You need to have an existing token to get a refresh token"
msgstr "Voit saada uuden merkin vain, jos sinulla on jo merkki"
#: lib/graphql/resolvers/user.ex:218 lib/graphql/resolvers/user.ex:243
#, elixir-format
#: lib/graphql/resolvers/user.ex:218 lib/graphql/resolvers/user.ex:243
msgid "You requested again a confirmation email too soon"
msgstr "Pyysit uutta vahvistussähköpostia liian aikaisin"
#: lib/graphql/resolvers/user.ex:148
#, elixir-format
#: lib/graphql/resolvers/user.ex:148
msgid "Your email is not on the allowlist"
msgstr "Sähköpostiosoitteesi ei ole sallittujen luettelossa"
#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/actor.ex:97
#, elixir-format
#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/actor.ex:97
msgid "Error while performing background task"
msgstr "Virhe taustatehtävää suoritettaessa"
#: lib/graphql/resolvers/actor.ex:30
#, elixir-format
#: lib/graphql/resolvers/actor.ex:30
msgid "No profile found with this ID"
msgstr "Tällä tunnisteella ei löytynyt profiilia"
#: lib/graphql/resolvers/actor.ex:57 lib/graphql/resolvers/actor.ex:94
#, elixir-format
#: lib/graphql/resolvers/actor.ex:57 lib/graphql/resolvers/actor.ex:94
msgid "No remote profile found with this ID"
msgstr "Tällä tunnisteella ei löytynyt etäprofiilia"
#: lib/graphql/resolvers/actor.ex:72
#, elixir-format
#: lib/graphql/resolvers/actor.ex:72
msgid "Only moderators and administrators can suspend a profile"
msgstr "Vain moderaattorit ja ylläpitäjät voivat hyllyttää profiilin"
#: lib/graphql/resolvers/actor.ex:102
#, elixir-format
#: lib/graphql/resolvers/actor.ex:102
msgid "Only moderators and administrators can unsuspend a profile"
msgstr "Vain moderaattorit ja ylläpitäjät voivat palauttaa hyllytetyn profiilin"
#: lib/graphql/resolvers/actor.ex:27
#, elixir-format
#: lib/graphql/resolvers/actor.ex:27
msgid "Only remote profiles may be refreshed"
msgstr "Vain etäprofiilit voi ladata uudelleen"
#: lib/graphql/resolvers/actor.ex:64
#, elixir-format
#: lib/graphql/resolvers/actor.ex:64
msgid "Profile already suspended"
msgstr "Profiili on jo hyllytetty"
#: lib/graphql/resolvers/participant.ex:92
#, elixir-format
#: lib/graphql/resolvers/participant.ex:92
msgid "A valid email is required by your instance"
msgstr "Palvelin vaatii kelvollisen sähköpostiosoitteen"
#: lib/graphql/resolvers/participant.ex:86
#, elixir-format
#: lib/graphql/resolvers/participant.ex:86
msgid "Anonymous participation is not enabled"
msgstr "Anonyymi osallistuminen ei ole käytössä"
#: lib/graphql/resolvers/person.ex:196
#, elixir-format
#: lib/graphql/resolvers/person.ex:196
msgid "Cannot remove the last administrator of a group"
msgstr "Ryhmän viimeistä ylläpitäjää ei voi poistaa"
#: lib/graphql/resolvers/person.ex:193
#, elixir-format
#: lib/graphql/resolvers/person.ex:193
msgid "Cannot remove the last identity of a user"
msgstr "Käyttäjän viimeistä identiteettiä ei voi poistaa"
#: lib/graphql/resolvers/comment.ex:108
#, elixir-format
#: lib/graphql/resolvers/comment.ex:108
msgid "Comment is already deleted"
msgstr "Kommentti on jo poistettu"
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
#, elixir-format
#: lib/graphql/error.ex:92 lib/graphql/resolvers/discussion.ex:62
msgid "Discussion not found"
msgstr "Keskustelua ei löydy"
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
#, elixir-format
#: lib/graphql/resolvers/report.ex:58 lib/graphql/resolvers/report.ex:77
msgid "Error while saving report"
msgstr "Virhe raporttia tallennettaessa"
#: lib/graphql/resolvers/report.ex:96
#, elixir-format
#: lib/graphql/resolvers/report.ex:96
msgid "Error while updating report"
msgstr "Virhe raporttia päivitettäessä"
#: lib/graphql/resolvers/participant.ex:127
#, elixir-format
#: lib/graphql/resolvers/participant.ex:127
msgid "Event id not found"
msgstr "Tapahtumatunnistetta ei löydy"
#, elixir-format
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:284
#: lib/graphql/resolvers/event.ex:328
#, elixir-format
msgid "Event not found"
msgstr "Tapahtumaa ei löydy"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:83
#: lib/graphql/resolvers/participant.ex:124 lib/graphql/resolvers/participant.ex:156
#, elixir-format
msgid "Event with this ID %{id} doesn't exist"
msgstr "Tunnisteella %{id} ei ole tapahtumaa"
#: lib/graphql/resolvers/participant.ex:99
#, elixir-format
#: lib/graphql/resolvers/participant.ex:99
msgid "Internal Error"
msgstr "Sisäinen virhe"
#: lib/graphql/resolvers/discussion.ex:202
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:202
msgid "No discussion with ID %{id}"
msgstr "Tunnisteella %{id} ei ole keskustelua"
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
#, elixir-format
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:168
msgid "No profile found for user"
msgstr "Käyttäjälle ei löydy profiilia"
#: lib/graphql/resolvers/feed_token.ex:64
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Kyseistä syötemerkkiä ei ole"
#: lib/graphql/resolvers/participant.ex:237
#, elixir-format
#: lib/graphql/resolvers/participant.ex:237
msgid "Participant already has role %{role}"
msgstr "Osallistujalla on jo rooli %{role}"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:169
#: lib/graphql/resolvers/participant.ex:198 lib/graphql/resolvers/participant.ex:230
#: lib/graphql/resolvers/participant.ex:240
#, elixir-format
msgid "Participant not found"
msgstr "Osallistujaa ei löydy"
#: lib/graphql/resolvers/person.ex:30
#, elixir-format
#: lib/graphql/resolvers/person.ex:30
msgid "Person with ID %{id} not found"
msgstr "Tunnuksella %{id} ei löydy henkilöä"
#: lib/graphql/resolvers/person.ex:52
#, elixir-format
#: lib/graphql/resolvers/person.ex:52
msgid "Person with username %{username} not found"
msgstr "Käyttäjänimellä %{username} ei löydy henkilöä"
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
#, elixir-format
#: lib/graphql/resolvers/post.ex:167 lib/graphql/resolvers/post.ex:200
msgid "Post ID is not a valid ID"
msgstr "Julkaisun tunnus ei ole kelvollinen"
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
#, elixir-format
#: lib/graphql/resolvers/post.ex:170 lib/graphql/resolvers/post.ex:203
msgid "Post doesn't exist"
msgstr "Julkaisua ei ole"
#: lib/graphql/resolvers/member.ex:83
#, elixir-format
#: lib/graphql/resolvers/member.ex:83
msgid "Profile invited doesn't exist"
msgstr "Kutsuttua profiilia ei ole"
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
#, elixir-format
#: lib/graphql/resolvers/member.ex:92 lib/graphql/resolvers/member.ex:96
msgid "Profile is already a member of this group"
msgstr "Profiili on jo ryhmän jäsen"
#, elixir-format
#: lib/graphql/resolvers/post.ex:132 lib/graphql/resolvers/post.ex:173
#: lib/graphql/resolvers/post.ex:206 lib/graphql/resolvers/resource.ex:88 lib/graphql/resolvers/resource.ex:128
#: lib/graphql/resolvers/resource.ex:157 lib/graphql/resolvers/resource.ex:186 lib/graphql/resolvers/todos.ex:57
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:99 lib/graphql/resolvers/todos.ex:171
#: lib/graphql/resolvers/todos.ex:194 lib/graphql/resolvers/todos.ex:222
#, elixir-format
msgid "Profile is not member of group"
msgstr "Profiili ei ole ryhmän jäsen"
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
#, elixir-format
#: lib/graphql/resolvers/person.ex:162 lib/graphql/resolvers/person.ex:190
msgid "Profile not found"
msgstr "Profiilia ei löydy"
#: lib/graphql/resolvers/report.ex:36
#, elixir-format
#: lib/graphql/resolvers/report.ex:36
msgid "Report not found"
msgstr "Raporttia ei löydy"
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
#, elixir-format
#: lib/graphql/resolvers/resource.ex:154 lib/graphql/resolvers/resource.ex:183
msgid "Resource doesn't exist"
msgstr "Resurssia ei ole"
#: lib/graphql/resolvers/participant.ex:120
#, elixir-format
#: lib/graphql/resolvers/participant.ex:120
msgid "The event has already reached its maximum capacity"
msgstr "Tapahtuma on jo täynnä"
#: lib/graphql/resolvers/participant.ex:260
#, elixir-format
#: lib/graphql/resolvers/participant.ex:260
msgid "This token is invalid"
msgstr "Epäkelpo merkki"
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
#, elixir-format
#: lib/graphql/resolvers/todos.ex:165 lib/graphql/resolvers/todos.ex:219
msgid "Todo doesn't exist"
msgstr "Työkalua ei ole"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:75 lib/graphql/resolvers/todos.ex:191
#: lib/graphql/resolvers/todos.ex:216
#, elixir-format
msgid "Todo list doesn't exist"
msgstr "Tehtäväluetteloa ei ole"
#: lib/graphql/resolvers/feed_token.ex:73
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Merkkiä ei ole"
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Merkki ei ole kelvollinen UUID"
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:356
#, elixir-format
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:356
msgid "User not found"
msgstr "Käyttäjää ei löydy"
#: lib/graphql/resolvers/person.ex:257
#, elixir-format
#: lib/graphql/resolvers/person.ex:257
msgid "You already have a profile for this user"
msgstr "Sinulla on jo profiili tälle käyttäjälle"
#: lib/graphql/resolvers/participant.ex:130
#, elixir-format
#: lib/graphql/resolvers/participant.ex:130
msgid "You are already a participant of this event"
msgstr "Olet jo tapahtuman osallistuja"
#: lib/graphql/resolvers/member.ex:86
#, elixir-format
#: lib/graphql/resolvers/member.ex:86
msgid "You are not a member of this group"
msgstr "Et ole ryhmän jäsen"
#: lib/graphql/resolvers/member.ex:149
#, elixir-format
#: lib/graphql/resolvers/member.ex:149
msgid "You are not a moderator or admin for this group"
msgstr "Et ole ryhmän moderaattori tai ylläpitäjä"
#: lib/graphql/resolvers/comment.ex:54
#, elixir-format
#: lib/graphql/resolvers/comment.ex:54
msgid "You are not allowed to create a comment if not connected"
msgstr "Ilman yhteyttä ei voi kommentoida"
#: lib/graphql/resolvers/feed_token.ex:41
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "Ilman yhteyttä ei voi luoda syötemerkkiä"
#: lib/graphql/resolvers/comment.ex:113
#, elixir-format
#: lib/graphql/resolvers/comment.ex:113
msgid "You are not allowed to delete a comment if not connected"
msgstr "Ilman yhteyttä ei voi poistaa kommenttia"
#: lib/graphql/resolvers/feed_token.ex:82
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Ilman yhteyttä ei voi poistaa syötemerkkiä"
#: lib/graphql/resolvers/comment.ex:76
#, elixir-format
#: lib/graphql/resolvers/comment.ex:76
msgid "You are not allowed to update a comment if not connected"
msgstr "Ilman yhteyttä ei voi päivittää kommenttia"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:163
#: lib/graphql/resolvers/participant.ex:192
#, elixir-format
msgid "You can't leave event because you're the only event creator participant"
msgstr ""
"Et voi poistua tapahtumasta, koska olet ainoa tapahtuman luonut osallistuja"
#: lib/graphql/resolvers/member.ex:153
#, elixir-format
#: lib/graphql/resolvers/member.ex:153
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Et voi vaihtaa jäsenrooliasi ryhmässä nykyistä alemmaksi, koska olet ainoa "
"ylläpitäjä"
#: lib/graphql/resolvers/comment.ex:104
#, elixir-format
#: lib/graphql/resolvers/comment.ex:104
msgid "You cannot delete this comment"
msgstr "Et voi poistaa kommenttia"
#: lib/graphql/resolvers/event.ex:324
#, elixir-format
#: lib/graphql/resolvers/event.ex:324
msgid "You cannot delete this event"
msgstr "Et voi poistaa tapahtumaa"
#: lib/graphql/resolvers/member.ex:89
#, elixir-format
#: lib/graphql/resolvers/member.ex:89
msgid "You cannot invite to this group"
msgstr "Et voi kutsua tähän ryhmään"
#: lib/graphql/resolvers/feed_token.ex:76
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Sinulla ei ole oikeutta poistaa tätä merkkiä"
#: lib/graphql/resolvers/admin.ex:53
#, elixir-format
#: lib/graphql/resolvers/admin.ex:53
msgid "You need to be logged-in and a moderator to list action logs"
msgstr "Toimintalokien katselu vain moderaattorille sisäänkirjautuneena"
#: lib/graphql/resolvers/report.ex:26
#, elixir-format
#: lib/graphql/resolvers/report.ex:26
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Raporttien katselu vain moderaattorille sisäänkirjautuneena"
#: lib/graphql/resolvers/report.ex:101
#, elixir-format
#: lib/graphql/resolvers/report.ex:101
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Raportin päivittäminen vain moderaattorille sisäänkirjautuneena"
#: lib/graphql/resolvers/report.ex:41
#, elixir-format
#: lib/graphql/resolvers/report.ex:41
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Raportin katselu vain moderaattorille sisäänkirjautuneena"
#: lib/graphql/resolvers/admin.ex:237
#, elixir-format
#: lib/graphql/resolvers/admin.ex:237
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr "Pääsy ylläpitoasetuksiin vain ylläpitäjälle sisäänkirjautuneena"
#: lib/graphql/resolvers/admin.ex:222
#, elixir-format
#: lib/graphql/resolvers/admin.ex:222
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr "Pääsy koontinäytön tilastoihin vain ylläpitäjälle sisäänkirjautuneena"
#: lib/graphql/resolvers/admin.ex:261
#, elixir-format
#: lib/graphql/resolvers/admin.ex:261
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr "Ylläpitoasetusten tallennus vain ylläpitäjälle sisäänkirjautuneena"
#: lib/graphql/resolvers/discussion.ex:77
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:77
msgid "You need to be logged-in to access discussions"
msgstr "Pääsy keskusteluihin vain sisäänkirjautuneena"
#: lib/graphql/resolvers/resource.ex:94
#, elixir-format
#: lib/graphql/resolvers/resource.ex:94
msgid "You need to be logged-in to access resources"
msgstr "Pääsy resursseihin vain sisäänkirjautuneena"
#: lib/graphql/resolvers/event.ex:259
#, elixir-format
#: lib/graphql/resolvers/event.ex:259
msgid "You need to be logged-in to create events"
msgstr "Tapahtumien luonti vain sisäänkirjautuneena"
#: lib/graphql/resolvers/post.ex:140
#, elixir-format
#: lib/graphql/resolvers/post.ex:140
msgid "You need to be logged-in to create posts"
msgstr "Julkaisujen luonti vain sisäänkirjautuneena"
#: lib/graphql/resolvers/report.ex:74
#, elixir-format
#: lib/graphql/resolvers/report.ex:74
msgid "You need to be logged-in to create reports"
msgstr "Raporttien luonti vain sisäänkirjautuneena"
#: lib/graphql/resolvers/resource.ex:133
#, elixir-format
#: lib/graphql/resolvers/resource.ex:133
msgid "You need to be logged-in to create resources"
msgstr "Resurssien luonti vain sisäänkirjautuneena"
#: lib/graphql/resolvers/event.ex:333
#, elixir-format
#: lib/graphql/resolvers/event.ex:333
msgid "You need to be logged-in to delete an event"
msgstr "Tapahtuman poisto vain sisäänkirjautuneena"
#: lib/graphql/resolvers/post.ex:211
#, elixir-format
#: lib/graphql/resolvers/post.ex:211
msgid "You need to be logged-in to delete posts"
msgstr "Julkaisujen poisto vain sisäänkirjautuneena"
#: lib/graphql/resolvers/resource.ex:191
#, elixir-format
#: lib/graphql/resolvers/resource.ex:191
msgid "You need to be logged-in to delete resources"
msgstr "Resurssien poisto vain sisäänkirjautuneena"
#: lib/graphql/resolvers/participant.ex:104
#, elixir-format
#: lib/graphql/resolvers/participant.ex:104
msgid "You need to be logged-in to join an event"
msgstr "Tapahtumaan liittyminen vain sisäänkirjautuneena"
#: lib/graphql/resolvers/participant.ex:203
#, elixir-format
#: lib/graphql/resolvers/participant.ex:203
msgid "You need to be logged-in to leave an event"
msgstr "Tapahtumasta poistuminen vain sisäänkirjautuneena"
#: lib/graphql/resolvers/event.ex:298
#, elixir-format
#: lib/graphql/resolvers/event.ex:298
msgid "You need to be logged-in to update an event"
msgstr "Tapahtuman päivittäminen vain sisäänkirjautuneena"
#: lib/graphql/resolvers/post.ex:178
#, elixir-format
#: lib/graphql/resolvers/post.ex:178
msgid "You need to be logged-in to update posts"
msgstr "Julkaisujen päivittäminen vain sisäänkirjautuneena"
#: lib/graphql/resolvers/resource.ex:162
#, elixir-format
#: lib/graphql/resolvers/resource.ex:162
msgid "You need to be logged-in to update resources"
msgstr "Resurssien päivittäminen vain sisäänkirjautuneena"
#: lib/graphql/resolvers/resource.ex:218
#, elixir-format
#: lib/graphql/resolvers/resource.ex:218
msgid "You need to be logged-in to view a resource preview"
msgstr "Resurssin esikatselu vain sisäänkirjautuneena"
#: lib/graphql/resolvers/resource.ex:125
#, elixir-format
#: lib/graphql/resolvers/resource.ex:125
msgid "Parent resource doesn't belong to this group"
msgstr "Ylätason resurssi ei kuulu tähän ryhmään"
#: lib/mobilizon/users/user.ex:110
#, elixir-format
#: lib/mobilizon/users/user.ex:110
msgid "The chosen password is too short."
msgstr "Valittu salasana on liian lyhyt."
#: lib/mobilizon/users/user.ex:139
#, elixir-format
#: lib/mobilizon/users/user.ex:139
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr "Rekisteröintimerkki on jo käytössä. Vaikuttaa palvelinpään virheeltä."
#: lib/mobilizon/users/user.ex:105
#, elixir-format
#: lib/mobilizon/users/user.ex:105
msgid "This email is already used."
msgstr "Sähköpostiosoite on jo käytössä."
#: lib/graphql/error.ex:88
#, elixir-format
#: lib/graphql/error.ex:88
msgid "Post not found"
msgstr "Julkaisua ei löydy"
#: lib/graphql/error.ex:75
#, elixir-format
#: lib/graphql/error.ex:75
msgid "Invalid arguments passed"
msgstr "Virheelliset argumentit välitetty"
#: lib/graphql/error.ex:81
#, elixir-format
#: lib/graphql/error.ex:81
msgid "Invalid credentials"
msgstr "Virheelliset kirjautumistiedot"
#: lib/graphql/error.ex:79
#, elixir-format
#: lib/graphql/error.ex:79
msgid "Reset your password to login"
msgstr "Palauta salasana, jotta voit kirjautua sisään"
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
#, elixir-format
#: lib/graphql/error.ex:86 lib/graphql/error.ex:91
msgid "Resource not found"
msgstr "Resurssia ei löydy"
#: lib/graphql/error.ex:93
#, elixir-format
#: lib/graphql/error.ex:93
msgid "Something went wrong"
msgstr "Jokin meni vikaan"
#: lib/graphql/error.ex:74
#, elixir-format
#: lib/graphql/error.ex:74
msgid "Unknown Resource"
msgstr "Tuntematon resurssi"
#: lib/graphql/error.ex:84
#, elixir-format
#: lib/graphql/error.ex:84
msgid "You don't have permission to do this"
msgstr "Sinulla ei ole oikeutta tähän"
#: lib/graphql/error.ex:76
#, elixir-format
#: lib/graphql/error.ex:76
msgid "You need to be logged in"
msgstr "Kirjaudu ensin sisään"
#: lib/graphql/resolvers/member.ex:114
#, elixir-format
#: lib/graphql/resolvers/member.ex:114
msgid "You can't accept this invitation with this profile."
msgstr "Et voi hyväksyä kutsua tällä profiililla."
#: lib/graphql/resolvers/member.ex:132
#, elixir-format
#: lib/graphql/resolvers/member.ex:132
msgid "You can't reject this invitation with this profile."
msgstr "Et voi hylätä kutsua tällä profiililla."
#: lib/graphql/resolvers/media.ex:62
#, elixir-format
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "Tiedostolla ei ole sallittua MIME-tyyppiä."
#: lib/graphql/resolvers/group.ex:175
#, elixir-format
#: lib/graphql/resolvers/group.ex:175
msgid "Profile is not administrator for the group"
msgstr "Profiili ei ole ryhmän ylläpitäjä"
#: lib/graphql/resolvers/event.ex:287
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
msgid "You can't edit this event."
msgstr "Et voi muokata tapahtumaa."
#: lib/graphql/resolvers/event.ex:290
#, elixir-format
#: lib/graphql/resolvers/event.ex:290
msgid "You can't attribute this event to this profile."
msgstr "Et voi yhdistää tapahtumaa tähän profiiliin."
#: lib/graphql/resolvers/member.ex:135
#, elixir-format
#: lib/graphql/resolvers/member.ex:135
msgid "This invitation doesn't exist."
msgstr "Kutsua ei ole."
#: lib/graphql/resolvers/member.ex:177
#, elixir-format
#: lib/graphql/resolvers/member.ex:177
msgid "This member already has been rejected."
msgstr "Jäsen on jo hylätty."
#: lib/graphql/resolvers/member.ex:184
#, elixir-format
#: lib/graphql/resolvers/member.ex:184
msgid "You don't have the right to remove this member."
msgstr "Sinulla ei ole oikeutta poistaa jäsentä."
#: lib/mobilizon/actors/actor.ex:351
#, elixir-format
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr "Käyttäjänimi on jo käytössä."
#: lib/graphql/resolvers/discussion.ex:74
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:74
msgid "You must provide either an ID or a slug to access a discussion"
msgstr "Keskusteluun pääsemiseen vaaditaan tunniste tai polkutunnus"
#: lib/graphql/resolvers/event.ex:248
#, elixir-format
#: lib/graphql/resolvers/event.ex:248
msgid "Organizer profile is not owned by the user"
msgstr "Järjestäjän profiili ei ole käyttäjän hallussa"
#: lib/graphql/resolvers/participant.ex:89
#, elixir-format
#: lib/graphql/resolvers/participant.ex:89
msgid "Profile ID provided is not the anonymous profile one"
msgstr "Annettu profiilitunniste ei kuulu anonyymille profiilille"
#, elixir-format
#: lib/graphql/resolvers/group.ex:136 lib/graphql/resolvers/group.ex:169
#: lib/graphql/resolvers/person.ex:132 lib/graphql/resolvers/person.ex:159 lib/graphql/resolvers/person.ex:251
#, elixir-format
msgid "The provided picture is too heavy"
msgstr "Toimitettu kuva on liian suuri"
#: lib/web/views/utils.ex:33
#, elixir-format
#: lib/web/views/utils.ex:33
msgid "Index file not found. You need to recompile the front-end."
msgstr "Indeksitiedostoa ei löydy. Kokoa käyttöliittymä uudelleen."
#: lib/graphql/resolvers/resource.ex:122
#, elixir-format
#: lib/graphql/resolvers/resource.ex:122
msgid "Error while creating resource"
msgstr "Virhe raporttia tallennettaessa"
#: lib/graphql/resolvers/user.ex:412
#, elixir-format
#: lib/graphql/resolvers/user.ex:412
msgid "Invalid activation token"
msgstr "Virheellinen aktivointimerkki"
#: lib/graphql/resolvers/resource.ex:208
#, elixir-format
#: lib/graphql/resolvers/resource.ex:208
msgid "Unable to fetch resource details from this URL."
msgstr "Resurssin tietoja ei voida hakea tästä URL-osoitteesta."
#: lib/graphql/resolvers/event.ex:148 lib/graphql/resolvers/participant.ex:234
#, elixir-format
#: lib/graphql/resolvers/event.ex:148 lib/graphql/resolvers/participant.ex:234
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Annetulla moderaattoriprofiililla ei ole oikeuksia tähän tapahtumaan"

View file

@ -10,266 +10,284 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-06-07 06:28+0000\n"
"PO-Revision-Date: 2021-06-25 09:38+0200\n"
"Last-Translator: Thomas Citharel <thomas.citharel@framasoft.org>\n"
"Language-Team: French <https://weblate.framasoft.org/projects/mobilizon/"
"activity/fr/>\n"
"Language-Team: French <https://weblate.framasoft.org/projects/mobilizon/activity/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.6.2\n"
"X-Generator: Poedit 2.4.3\n"
#, elixir-format
#: lib/service/activity/renderer/member.ex:38
#: lib/web/templates/email/activity/_member_activity_item.html.eex:19 lib/web/templates/email/activity/_member_activity_item.text.eex:12
#, elixir-format
msgid "%{member} accepted the invitation to join the group."
msgstr "%{member} a accepté l'invitation à rejoindre le groupe."
#, elixir-format
#: lib/service/activity/renderer/member.ex:42
#: lib/web/templates/email/activity/_member_activity_item.html.eex:26 lib/web/templates/email/activity/_member_activity_item.text.eex:17
#, elixir-format
msgid "%{member} rejected the invitation to join the group."
msgstr "%{member} a refusé l'invitation à rejoindre le groupe."
#, elixir-format
#: lib/service/activity/renderer/member.ex:30
#: lib/web/templates/email/activity/_member_activity_item.html.eex:4 lib/web/templates/email/activity/_member_activity_item.text.eex:1
#, elixir-format
msgid "%{member} requested to join the group."
msgstr "%{member} a demandé à rejoindre le groupe."
#, elixir-format
#: lib/service/activity/renderer/member.ex:34
#: lib/web/templates/email/activity/_member_activity_item.html.eex:11 lib/web/templates/email/activity/_member_activity_item.text.eex:6
#, elixir-format
msgid "%{member} was invited by %{profile}."
msgstr "%{member} a été invité⋅e par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:50
#: lib/web/templates/email/activity/_member_activity_item.html.eex:40 lib/web/templates/email/activity/_member_activity_item.text.eex:27
#, elixir-format
msgid "%{profile} added the member %{member}."
msgstr "%{profile} a ajouté le ou la membre %{membre}."
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr "%{profile} a archivé la discussion %{discussion}."
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr "%{profile} a créé la discussion %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:24
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5 lib/web/templates/email/activity/_resource_activity_item.text.eex:2
#, elixir-format
msgid "%{profile} created the folder %{resource}."
msgstr "%{profile} a créé le dossier %{resource}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
#, elixir-format
msgid "%{profile} created the group %{group}."
msgstr "%{profile} a créé le groupe %{group}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:33
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20 lib/web/templates/email/activity/_resource_activity_item.text.eex:8
#, elixir-format
msgid "%{profile} created the resource %{resource}."
msgstr "%{profile} a créé la resource %{resource}."
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr "%{profile} a créé la discussion %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:97
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103 lib/web/templates/email/activity/_resource_activity_item.text.eex:40
#, elixir-format
msgid "%{profile} deleted the folder %{resource}."
msgstr "%{profile} a supprimé le dossier %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:106
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111 lib/web/templates/email/activity/_resource_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} a supprimé la resource %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/web/templates/email/activity/_member_activity_item.html.eex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
#, elixir-format
msgid "%{profile} excluded member %{member}."
msgstr "%{profile} a exclu le ou la membre %{membre}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:76
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71 lib/web/templates/email/activity/_resource_activity_item.text.eex:28
#, elixir-format
msgid "%{profile} moved the folder %{resource}."
msgstr "%{profile} a déplacé le dossier %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:85
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86 lib/web/templates/email/activity/_resource_activity_item.text.eex:34
#, elixir-format
msgid "%{profile} moved the resource %{resource}."
msgstr "%{profile} a déplacé la ressource %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.eex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} quit the group."
msgstr "%{profile} a quitté le groupe."
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr "%{profile} a renommé la discussion %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:45
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37 lib/web/templates/email/activity/_resource_activity_item.text.eex:14
#, elixir-format
msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
msgstr "%{profile} a renommé le dossier %{old_resource_title} en %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:59
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53 lib/web/templates/email/activity/_resource_activity_item.text.eex:21
#, elixir-format
msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
msgstr "%{profile} a renommé la resource %{old_resource_title} en %{resource}."
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr "%{profile} a répondu à la discussion %{discussion}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
#, elixir-format
msgid "%{profile} updated the group %{group}."
msgstr "%{profile} a mis à jour le groupe %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/web/templates/email/activity/_member_activity_item.html.eex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
#, elixir-format
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} a mis à jour le membre %{member}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:23
#: lib/web/templates/email/activity/_event_activity_item.html.eex:4 lib/web/templates/email/activity/_event_activity_item.text.eex:1
#, elixir-format
msgid "The event %{event} was created by %{profile}."
msgstr "L'événement %{event} a été créé par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:43
#: lib/web/templates/email/activity/_event_activity_item.html.eex:34 lib/web/templates/email/activity/_event_activity_item.text.eex:13
#, elixir-format
msgid "The event %{event} was deleted by %{profile}."
msgstr "L'événement %{event} a été supprimé par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:33
#: lib/web/templates/email/activity/_event_activity_item.html.eex:19 lib/web/templates/email/activity/_event_activity_item.text.eex:7
#, elixir-format
msgid "The event %{event} was updated by %{profile}."
msgstr "L'événement %{event} a été mis à jour par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:23
#: lib/web/templates/email/activity/_post_activity_item.html.eex:4 lib/web/templates/email/activity/_post_activity_item.text.eex:1
#, elixir-format
msgid "The post %{post} was created by %{profile}."
msgstr "Le billet %{post} a été créé par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:43
#: lib/web/templates/email/activity/_post_activity_item.html.eex:34 lib/web/templates/email/activity/_post_activity_item.text.eex:13
#, elixir-format
msgid "The post %{post} was deleted by %{profile}."
msgstr "Le billet %{post} a été supprimé par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:33
#: lib/web/templates/email/activity/_post_activity_item.html.eex:19 lib/web/templates/email/activity/_post_activity_item.text.eex:7
#, elixir-format
msgid "The post %{post} was updated by %{profile}."
msgstr "Le billet %{post} a été mis à jour par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:46
#: lib/web/templates/email/activity/_member_activity_item.html.eex:33 lib/web/templates/email/activity/_member_activity_item.text.eex:22
#, elixir-format
msgid "%{member} joined the group."
msgstr "%{member} a rejoint le groupe."
#, elixir-format
#: lib/service/activity/renderer/event.ex:63
#: lib/web/templates/email/activity/_event_activity_item.html.eex:58 lib/web/templates/email/activity/_event_activity_item.text.eex:25
#, elixir-format
msgid "%{profile} posted a comment on the event %{event}."
msgstr "%{profile} a posté un commentaire sur l'événement %{event}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:54
#: lib/web/templates/email/activity/_event_activity_item.html.eex:43 lib/web/templates/email/activity/_event_activity_item.text.eex:19
#, elixir-format
msgid "%{profile} replied to a comment on the event %{event}."
msgstr "%{profile} a répondu à un commentaire sur l'événement %{event}."
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr "Vous ne voulez pas recevoir de notifications d'activité ? Vous pouvez changer leur fréquence ou les désactiver dans vos préférences."
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.text.eex:19
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Voir une activité de plus"
msgstr[1] "Voir %{count} activités de plus"
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Il y a eu une activité !"
msgstr[1] "Il y a eu de l'activité !"
#: lib/service/activity/renderer/renderer.ex:38
#, elixir-format
#: lib/service/activity/renderer/renderer.ex:38
msgid "Activity on %{instance}"
msgstr "Activité sur %{instance}"
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr "%{profile} a posté un commentaire sous l'événement %{event}."
msgstr "%{profile} a posté une annonce sous l'événement %{event}."
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
#, elixir-format
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
"%{profile} vous a mentionné dans un commentaire sous l'événement %{event}."
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
"%{profile} vous a mentionné dans un commentaire sous l'événement %{event}."
msgstr "%{profile} vous a mentionné dans un commentaire sous l'événement %{event}."
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr "%{profile} vous a mentionné dans la discussion %{discussion}."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
"Vous ne voulez pas recevoir de notifications d'activité ? Vous pouvez changer leur fréquence ou les désactiver dans %{tag_start}vos "
"préférences%{tag_end}."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr "Voici votre récapitulatif hebdomadaire d'activité"
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr "Notification d'activité sur %{instance}"
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr "Récapitulatif quotidien d'activité sur %{instance}"
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr "Voici votre récapitulatif quotidien d'activité"
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr "Récapitulatif hebdomadaire d'activité sur %{instance}"

View file

@ -422,7 +422,7 @@ msgstr[0] "Vous avez un événement aujourd'hui :"
msgstr[1] "Vous avez %{total} événements aujourd'hui :"
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "L'organisateur·ice de l'événement n'a pas ajouté de description."
@ -1428,8 +1428,3 @@ msgstr "Le serveur Mobilizon %{instance} semble être temporairement hors-servic
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr "Flux public pour %{instance}"
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr "Notification d'activité sur %{instance}"

View file

@ -773,7 +773,7 @@ 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:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "Le fichier n'a pas un type MIME autorisé."

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -782,7 +782,7 @@ msgid "You can't reject this invitation with this profile."
msgstr "Non podes rexeitar este convite con este perfil."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "O ficheiro non ten un tipo MIME permitido."

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -450,7 +450,7 @@ msgstr[0] "Egy eseménye van a héten:"
msgstr[1] "%{total} eseménye van a héten:"
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "Az eseményszervező nem adott meg leírást."
@ -1456,8 +1456,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -805,7 +805,7 @@ msgid "You can't reject this invitation with this profile."
msgstr "Nem tudja visszautasítani ezt a meghívást ezzel a profillal."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "A fájl nem rendelkezik engedélyezett MIME-típussal."

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -445,7 +445,7 @@ msgstr[0] "Hai un evento questa settimana:"
msgstr[1] "Hai %{total} eventi questa settimana:"
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "L'organizzatore dell'evento non ha aggiunto alcuna descrizione."
@ -1744,8 +1744,3 @@ msgstr "Il server Mobilizon sembra essere temporaneamente inattivo."
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr "Feed pubblico per %{instance}"
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -780,7 +780,7 @@ msgid "You can't reject this invitation with this profile."
msgstr "Non puoi rifiutare l'invito con questo profilo."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "Il file non ha un tipo MIME consentito."

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,21 +209,20 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -238,24 +232,49 @@ msgstr[0] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -397,7 +397,7 @@ msgid_plural "You have %{total} events this week:"
msgstr[0] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1399,8 +1399,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -754,7 +754,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -411,7 +411,7 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1424,8 +1424,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -760,7 +760,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -439,7 +439,7 @@ msgstr[0] "Du har ei hending denne veka:"
msgstr[1] "Du har %{total} hendingar denne veka:"
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "Tilskiparen skreiv inga skildring."
@ -1700,8 +1700,3 @@ msgstr "Mobilizon-tenaren ser ut til å vera nede i augeblinken."
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -797,7 +797,7 @@ msgid "You can't reject this invitation with this profile."
msgstr "Du kan ikkje avslå invitasjonen med denne profilen."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "Fila har ingen tillaten MIME-type."

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -436,7 +436,7 @@ msgstr[0] "Avètz un eveniment aquesta setmana:"
msgstr[1] "Avètz %{total} eveniments aquesta setmana:"
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "L'organizator de l'eveniment a pas ajustat cap de descripcion."
@ -1509,8 +1509,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -772,7 +772,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -229,8 +223,8 @@ msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -242,24 +236,49 @@ msgstr[2] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -443,7 +443,7 @@ msgstr[1] "Masz w tym tygodniu %{total} wydarzenia:"
msgstr[2] "Masz w tym tygodniu %{total} wydarzeń:"
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr "Organizator wydarzenia nie dodał żadnego opisu."
@ -1525,8 +1525,3 @@ msgstr "Serwer Mobilizon wydaje się tymczasowo nie działać."
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -789,7 +789,7 @@ msgid "You can't reject this invitation with this profile."
msgstr "Nie możesz odrzucić tego zaproszenia z tego profilu."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "Plik nie ma dozwolonego typu MIME."

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -400,7 +400,7 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1404,8 +1404,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -760,7 +760,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -446,7 +446,7 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1516,8 +1516,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -760,7 +760,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -19,257 +19,278 @@ msgstr ""
"X-Generator: Weblate 4.6.2\n"
"Content-Transfer-Encoding: 8bit\n"
#, elixir-format
#: lib/service/activity/renderer/member.ex:38
#: lib/web/templates/email/activity/_member_activity_item.html.eex:19 lib/web/templates/email/activity/_member_activity_item.text.eex:12
#, elixir-format
msgid "%{member} accepted the invitation to join the group."
msgstr "%{member} принял приглашение присоединиться к группе."
#, elixir-format
#: lib/service/activity/renderer/member.ex:42
#: lib/web/templates/email/activity/_member_activity_item.html.eex:26 lib/web/templates/email/activity/_member_activity_item.text.eex:17
#, elixir-format
msgid "%{member} rejected the invitation to join the group."
msgstr "%{member} отклонил приглашение присоединиться к группе."
#, elixir-format
#: lib/service/activity/renderer/member.ex:30
#: lib/web/templates/email/activity/_member_activity_item.html.eex:4 lib/web/templates/email/activity/_member_activity_item.text.eex:1
#, elixir-format
msgid "%{member} requested to join the group."
msgstr "%{member} попросил присоединиться к группе."
#, elixir-format
#: lib/service/activity/renderer/member.ex:34
#: lib/web/templates/email/activity/_member_activity_item.html.eex:11 lib/web/templates/email/activity/_member_activity_item.text.eex:6
#, elixir-format
msgid "%{member} was invited by %{profile}."
msgstr "%{member} был приглашён %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:50
#: lib/web/templates/email/activity/_member_activity_item.html.eex:40 lib/web/templates/email/activity/_member_activity_item.text.eex:27
#, elixir-format
msgid "%{profile} added the member %{member}."
msgstr "%{profile} добавил участника %{member}."
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr "%{profile} заархивировал обсуждение %{discussion}."
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr "%{profile} создал обсуждение %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:24
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:5 lib/web/templates/email/activity/_resource_activity_item.text.eex:2
#, elixir-format
msgid "%{profile} created the folder %{resource}."
msgstr "%{profile} создал папку %{resource}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.eex:4
#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
#, elixir-format
msgid "%{profile} created the group %{group}."
msgstr "%{profile} создал группу %{group}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:33
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:20 lib/web/templates/email/activity/_resource_activity_item.text.eex:8
#, elixir-format
msgid "%{profile} created the resource %{resource}."
msgstr "%{profile} создал ресурс %{resource}."
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr "%{profile} удалил обсуждение %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:97
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:103 lib/web/templates/email/activity/_resource_activity_item.text.eex:40
#, elixir-format
msgid "%{profile} deleted the folder %{resource}."
msgstr "%{profile} удалил папку %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:106
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:111 lib/web/templates/email/activity/_resource_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} удалил ресурс %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/web/templates/email/activity/_member_activity_item.html.eex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
#, elixir-format
msgid "%{profile} excluded member %{member}."
msgstr "%{profile} исключил участника %{member}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:76
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:71 lib/web/templates/email/activity/_resource_activity_item.text.eex:28
#, elixir-format
msgid "%{profile} moved the folder %{resource}."
msgstr "%{profile} переместил папку %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:85
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:86 lib/web/templates/email/activity/_resource_activity_item.text.eex:34
#, elixir-format
msgid "%{profile} moved the resource %{resource}."
msgstr "%{profile} переместил ресурс %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.eex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} quit the group."
msgstr "%{profile} вышел из группы."
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr "%{profile} переименовал обсуждение %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:45
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:37 lib/web/templates/email/activity/_resource_activity_item.text.eex:14
#, elixir-format
msgid "%{profile} renamed the folder from %{old_resource_title} to %{resource}."
msgstr "%{profile} переименовал папку из %{old_resource_title} в %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:59
#: lib/web/templates/email/activity/_resource_activity_item.html.eex:53 lib/web/templates/email/activity/_resource_activity_item.text.eex:21
#, elixir-format
msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
msgstr "%{profile} переименовал ресурс из %{old_resource_title} в %{resource}."
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr "%{profile} ответил на обсуждение %{discussion}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.eex:19
#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
#, elixir-format
msgid "%{profile} updated the group %{group}."
msgstr "%{profile} обновил группу %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/web/templates/email/activity/_member_activity_item.html.eex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
#, elixir-format
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} обновил участника %{member}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:23
#: lib/web/templates/email/activity/_event_activity_item.html.eex:4 lib/web/templates/email/activity/_event_activity_item.text.eex:1
#, elixir-format
msgid "The event %{event} was created by %{profile}."
msgstr "Мероприятие %{event} было создано %{profile}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:43
#: lib/web/templates/email/activity/_event_activity_item.html.eex:34 lib/web/templates/email/activity/_event_activity_item.text.eex:13
#, elixir-format
msgid "The event %{event} was deleted by %{profile}."
msgstr "Мероприятие %{event} было удалено %{profile}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:33
#: lib/web/templates/email/activity/_event_activity_item.html.eex:19 lib/web/templates/email/activity/_event_activity_item.text.eex:7
#, elixir-format
msgid "The event %{event} was updated by %{profile}."
msgstr "Мероприятие %{event} было обновлено %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:23
#: lib/web/templates/email/activity/_post_activity_item.html.eex:4 lib/web/templates/email/activity/_post_activity_item.text.eex:1
#, elixir-format
msgid "The post %{post} was created by %{profile}."
msgstr "Публикация %{post} была создана %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:43
#: lib/web/templates/email/activity/_post_activity_item.html.eex:34 lib/web/templates/email/activity/_post_activity_item.text.eex:13
#, elixir-format
msgid "The post %{post} was deleted by %{profile}."
msgstr "Публикация %{post} была удалена %{profile}."
#, elixir-format
#: lib/service/activity/renderer/group.ex:33
#: lib/web/templates/email/activity/_post_activity_item.html.eex:19 lib/web/templates/email/activity/_post_activity_item.text.eex:7
#, elixir-format
msgid "The post %{post} was updated by %{profile}."
msgstr "Публикация %{post} была обновлена %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:46
#: lib/web/templates/email/activity/_member_activity_item.html.eex:33 lib/web/templates/email/activity/_member_activity_item.text.eex:22
#, elixir-format
msgid "%{member} joined the group."
msgstr "%{member} присоединился к группе."
#, elixir-format
#: lib/service/activity/renderer/event.ex:63
#: lib/web/templates/email/activity/_event_activity_item.html.eex:58 lib/web/templates/email/activity/_event_activity_item.text.eex:25
#, elixir-format
msgid "%{profile} posted a comment on the event %{event}."
msgstr "%{profile} оставил комментарий к мероприятию %{event}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:54
#: lib/web/templates/email/activity/_event_activity_item.html.eex:43 lib/web/templates/email/activity/_event_activity_item.text.eex:19
#, elixir-format
msgid "%{profile} replied to a comment on the event %{event}."
msgstr "%{profile} ответил на комментарий к мероприятию %{event}."
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
"Не хотите получать уведомления о событиях? Вы можете изменить частоту "
"уведомлений или отключить их в своих настройках."
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.text.eex:19
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Посмотреть еще одно событие"
msgstr[1] "Посмотреть еще %{count} события"
msgstr[2] "Посмотреть еще %{count} событий"
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Было событие!"
msgstr[1] "Были события!"
msgstr[2] "Были события!"
#: lib/service/activity/renderer/renderer.ex:38
#, elixir-format
#: lib/service/activity/renderer/renderer.ex:38
msgid "Activity on %{instance}"
msgstr "События на %{instance}"
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr "%{profile} разместил объявление под мероприятием %{event}."
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
#, elixir-format
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr "%{profile} упомянул вас в комментарии под %{event}."
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr "%{profile} упомянул вас в комментарии под мероприятием %{event}."
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr "%{profile} упомянул вас в обсуждении %{discussion}."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
"Не хотите получать уведомления о событиях? Вы можете изменить частоту "
"уведомлений или отключить их в своих настройках."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr "События на %{instance}"
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -809,7 +809,7 @@ msgid "You can't reject this invitation with this profile."
msgstr "Вы не можете отклонить это приглашение из этого профиля."
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr "Файл не имеет разрешенного MIME-типа."

View file

@ -42,18 +42,16 @@ msgid "%{profile} added the member %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:72
#: lib/service/activity/renderer/discussion.ex:53 lib/service/activity/renderer/post.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:49 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65
#: lib/service/activity/renderer/post.ex:53 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
msgid "%{profile} archived the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:23
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.html.eex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1 lib/web/templates/email/activity/_discussion_activity_item.html.eex:4
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25
#: lib/service/activity/renderer/post.ex:23 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
msgid "%{profile} created the discussion %{discussion}."
msgstr ""
@ -76,9 +74,8 @@ msgid "%{profile} created the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:82
#: lib/service/activity/renderer/discussion.ex:63 lib/service/activity/renderer/post.ex:63
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:64 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75
#: lib/service/activity/renderer/post.ex:63 lib/web/templates/email/activity/_comment_activity_item.text.eex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
msgid "%{profile} deleted the discussion %{discussion}."
msgstr ""
@ -120,9 +117,8 @@ msgid "%{profile} quit the group."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/comment.ex:62
#: lib/service/activity/renderer/discussion.ex:43 lib/service/activity/renderer/post.ex:43
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:34 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55
#: lib/service/activity/renderer/post.ex:43 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
msgid "%{profile} renamed the discussion %{discussion}."
msgstr ""
@ -140,10 +136,9 @@ msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:33
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.html.eex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/activity/_discussion_activity_item.html.eex:18
#: lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35
#: lib/service/activity/renderer/post.ex:33 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/activity/_discussion_activity_item.html.eex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
msgid "%{profile} replied to the discussion %{discussion}."
msgstr ""
@ -214,13 +209,12 @@ msgid "%{profile} replied to a comment on the event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:144
#: lib/web/templates/email/email_direct_activity.text.eex:23
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:124
#: lib/web/templates/email/email_direct_activity.html.eex:133
#: lib/web/templates/email/email_direct_activity.text.eex:19
msgid "View one more activity"
msgid_plural "View %{count} more activities"
@ -228,8 +222,8 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:38
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.eex:44
#: lib/web/templates/email/email_direct_activity.html.eex:46 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] ""
@ -240,24 +234,49 @@ msgstr[1] ""
msgid "Activity on %{instance}"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:88 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:37
msgid "%{profile} has posted an announcement under event %{event}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:73
#: lib/web/templates/email/activity/_comment_activity_item.html.eex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:31
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr ""
#, elixir-format, fuzzy
#: lib/service/activity/renderer/comment.ex:52
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:153
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:42
msgid "Here's your weekly activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:101 lib/web/email/activity.ex:122
msgid "Activity notification for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:108
msgid "Daily activity recap for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.eex:40
msgid "Here's your daily activity recap"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:115
msgid "Weekly activity recap for %{instance}"
msgstr ""

View file

@ -416,7 +416,7 @@ msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/service/metadata/utils.ex:52
#: lib/service/metadata/utils.ex:53
msgid "The event organizer didn't add any description."
msgstr ""
@ -1432,8 +1432,3 @@ msgstr ""
#: lib/service/export/feed.ex:73
msgid "Public feed for %{instance}"
msgstr ""
#, elixir-format
#: lib/web/email/activity.ex:27
msgid "Activity notification for %{instance}"
msgstr ""

View file

@ -767,7 +767,7 @@ msgid "You can't reject this invitation with this profile."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/media.ex:62
#: lib/graphql/resolvers/media.ex:72
msgid "File doesn't have an allowed MIME type."
msgstr ""

View file

@ -1,71 +0,0 @@
defmodule Mobilizon.Service.DateTimeTest do
@moduledoc """
Test representing datetimes in defined locale
"""
use Mobilizon.DataCase
alias Mobilizon.Service.DateTime, as: DateTimeRenderer
@datetime "2021-06-22T15:25:29.531539Z"
describe "render a datetime to string" do
test "standard datetime" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
assert DateTimeRenderer.datetime_to_string(datetime) == "Jun 22, 2021, 3:25:29 PM"
assert DateTimeRenderer.datetime_to_string(datetime, "fr") == "22 juin 2021, 15:25:29"
assert DateTimeRenderer.datetime_to_string(datetime, "fr", :long) ==
"22 juin 2021 à 15:25:29 UTC"
end
test "non existing or loaded locale fallbacks to english" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
assert DateTimeRenderer.datetime_to_string(datetime, "es") == "Jun 22, 2021, 3:25:29 PM"
end
end
describe "render a time to string" do
test "standard time" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
assert DateTimeRenderer.datetime_to_time_string(datetime) == "3:25 PM"
assert DateTimeRenderer.datetime_to_time_string(datetime, "fr") == "15:25"
end
test "non existing or loaded locale fallbacks to english" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
assert DateTimeRenderer.datetime_to_time_string(datetime, "pl") == "3:25 PM"
end
end
describe "convert a datetime with a timezone" do
test "with an existing tz" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
converted_datetime = DateTimeRenderer.datetime_tz_convert(datetime, "Europe/Paris")
assert %DateTime{time_zone: "Europe/Paris", utc_offset: 3600} = converted_datetime
assert converted_datetime |> DateTime.to_unix() == datetime |> DateTime.to_unix()
end
test "with an non existing tz" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
converted_datetime = DateTimeRenderer.datetime_tz_convert(datetime, "Planet/Mars")
assert converted_datetime == datetime
end
end
describe "gets relative time to a datetime" do
test "standard time" do
then = DateTime.add(DateTime.utc_now(), 3600 * -5)
assert DateTimeRenderer.datetime_relative(then) == "5 hours ago"
assert DateTimeRenderer.datetime_relative(then, "fr") == "il y a 5 heures"
end
test "non existing or loaded locale fallbacks to english" do
then = DateTime.add(DateTime.utc_now(), 3600 * -4)
assert DateTimeRenderer.datetime_relative(then, "pl") == "4 hours ago"
end
end
end

View file

@ -0,0 +1,220 @@
defmodule Mobilizon.Service.DateTimeTest do
@moduledoc """
Test representing datetimes in defined locale
"""
use Mobilizon.DataCase
alias Mobilizon.Service.DateTime, as: DateTimeTools
@datetime "2021-06-22T15:25:29.531539Z"
describe "render a datetime to string" do
test "standard datetime" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
assert DateTimeTools.datetime_to_string(datetime) == "Jun 22, 2021, 3:25:29 PM"
assert DateTimeTools.datetime_to_string(datetime, "fr") == "22 juin 2021, 15:25:29"
assert DateTimeTools.datetime_to_string(datetime, "fr", :long) ==
"22 juin 2021 à 15:25:29 UTC"
end
test "non existing or loaded locale fallbacks to english" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
assert DateTimeTools.datetime_to_string(datetime, "es") == "Jun 22, 2021, 3:25:29 PM"
end
end
describe "render a time to string" do
test "standard time" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
assert DateTimeTools.datetime_to_time_string(datetime) == "3:25 PM"
assert DateTimeTools.datetime_to_time_string(datetime, "fr") == "15:25"
end
test "non existing or loaded locale fallbacks to english" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
assert DateTimeTools.datetime_to_time_string(datetime, "pl") == "3:25 PM"
end
end
describe "convert a datetime with a timezone" do
test "with an existing tz" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
converted_datetime = DateTimeTools.datetime_tz_convert(datetime, "Europe/Paris")
assert %DateTime{time_zone: "Europe/Paris", utc_offset: 3600} = converted_datetime
assert converted_datetime |> DateTime.to_unix() == datetime |> DateTime.to_unix()
end
test "with an non existing tz" do
{:ok, datetime, _} = DateTime.from_iso8601(@datetime)
converted_datetime = DateTimeTools.datetime_tz_convert(datetime, "Planet/Mars")
assert converted_datetime == datetime
end
end
describe "gets relative time to a datetime" do
test "standard time" do
then = DateTime.add(DateTime.utc_now(), 3600 * -5)
assert DateTimeTools.datetime_relative(then) == "5 hours ago"
assert DateTimeTools.datetime_relative(then, "fr") == "il y a 5 heures"
end
test "non existing or loaded locale fallbacks to english" do
then = DateTime.add(DateTime.utc_now(), 3600 * -4)
assert DateTimeTools.datetime_relative(then, "pl") == "4 hours ago"
end
end
describe "gets the first day of a week" do
# English starts week on sunday, french on monday
test "in the past" do
assert DateTimeTools.calculate_first_day_of_week(~D[2021-06-25]) == ~D[2021-06-20]
end
test "same day" do
assert DateTimeTools.calculate_first_day_of_week(~D[2021-06-20]) == ~D[2021-06-20]
end
test "locale" do
assert DateTimeTools.calculate_first_day_of_week(~D[2021-06-20], "fr") == ~D[2021-06-14]
end
end
describe "calculate next day notification" do
test "same day" do
assert DateTimeTools.calculate_next_day_notification(~D[2021-06-20],
compare_to: ~U[2021-06-20 10:04:18Z]
) == ~U[2021-06-20 18:00:00Z]
end
test "tomorrow" do
assert DateTimeTools.calculate_next_day_notification(~D[2021-06-20],
compare_to: ~U[2021-06-20 18:04:18Z]
) == ~U[2021-06-21 18:00:00Z]
end
end
describe "calculate next week notification" do
test "same week" do
assert DateTimeTools.calculate_next_week_notification(~U[2021-06-23 15:00:00Z],
compare_to: ~U[2021-06-22 10:04:18Z]
) == nil
end
test "next week" do
assert DateTimeTools.calculate_next_week_notification(~U[2021-06-22 15:00:00Z],
compare_to: ~U[2021-06-14 10:04:18Z]
) == ~U[2021-06-20 08:00:00Z]
end
test "next week with custom time" do
assert DateTimeTools.calculate_next_week_notification(~U[2021-06-22 15:00:00Z],
compare_to: ~U[2021-06-14 10:04:18Z],
notification_time: ~T[18:00:00]
) == ~U[2021-06-20 18:00:00Z]
end
test "next week with custom locale" do
assert DateTimeTools.calculate_next_week_notification(~U[2021-06-22 15:00:00Z],
compare_to: ~U[2021-06-14 10:04:18Z],
locale: "fr"
) == ~U[2021-06-21 08:00:00Z]
end
test "same day but before time" do
assert DateTimeTools.calculate_next_week_notification(~U[2021-06-21 10:00:00Z],
compare_to: ~U[2021-06-21 07:00:00Z],
locale: "fr"
) == ~U[2021-06-21 08:00:00Z]
end
test "same day but after time" do
assert DateTimeTools.calculate_next_week_notification(~U[2021-06-21 15:00:00Z],
compare_to: ~U[2021-06-21 10:04:18Z],
locale: "fr"
) == nil
end
end
describe "calculate next day of the week" do
test "same week can not send a notification for next week" do
assert DateTimeTools.next_first_day_of_week(~U[2021-06-22 15:00:00Z],
compare_to: ~U[2021-06-21 10:04:18Z]
) == nil
end
test "next week can send a notification for next week" do
assert DateTimeTools.next_first_day_of_week(~U[2021-06-22 15:00:00Z],
compare_to: ~U[2021-06-15 10:04:18Z]
) == ~U[2021-06-20 08:00:00Z]
end
end
describe "check if we're between hours" do
test "basic" do
refute DateTimeTools.is_between_hours(
compare_to_datetime: ~U[2021-06-22 15:00:00Z],
compare_to_day: ~D[2021-06-22]
)
assert DateTimeTools.is_between_hours(
compare_to_datetime: ~U[2021-06-22 08:00:00Z],
compare_to_day: ~D[2021-06-22]
)
assert DateTimeTools.is_between_hours(
compare_to_datetime: ~U[2021-06-22 08:01:00Z],
compare_to_day: ~D[2021-06-22]
)
end
test "with special timezone" do
refute DateTimeTools.is_between_hours(
compare_to_datetime: ~U[2021-06-22 08:01:00Z],
compare_to_day: ~D[2021-06-22],
timezone: "Asia/Brunei"
)
assert DateTimeTools.is_between_hours(
compare_to_datetime: ~U[2021-06-22 00:01:00Z],
compare_to_day: ~D[2021-06-22],
timezone: "Asia/Brunei"
)
end
end
describe "check if we're between hours on right day" do
test "basic" do
assert DateTimeTools.is_between_hours_on_first_day(
compare_to_datetime: ~U[2021-06-20 08:00:00Z],
compare_to_day: ~D[2021-06-20]
)
assert DateTimeTools.is_between_hours_on_first_day(
compare_to_datetime: ~U[2021-06-21 08:00:00Z],
compare_to_day: ~D[2021-06-21],
locale: "fr"
)
end
test "with special timezone" do
refute DateTimeTools.is_between_hours_on_first_day(
compare_to_datetime: ~U[2021-06-21 08:00:00Z],
compare_to_day: ~D[2021-06-21],
locale: "fr",
timezone: "Asia/Srednekolymsk"
)
assert DateTimeTools.is_between_hours_on_first_day(
compare_to_datetime: ~U[2021-06-20 21:00:00Z],
compare_to_day: ~D[2021-06-21],
locale: "fr",
timezone: "Asia/Srednekolymsk"
)
end
end
end

View file

@ -46,7 +46,63 @@ defmodule Mobilizon.Service.Notifier.EmailTest do
test "when the user allows it" do
%Activity{} = activity = insert(:mobilizon_activity, inserted_at: DateTime.utc_now())
%User{} = user = insert(:user)
%Setting{} = user_settings = insert(:settings, user_id: user.id)
%Setting{} =
user_settings = insert(:settings, user_id: user.id, group_notifications: :direct)
%ActivitySetting{} =
activity_setting = insert(:mobilizon_activity_setting, user_id: user.id, user: user)
user = %User{user | settings: user_settings, activity_settings: [activity_setting]}
assert {:ok, :sent} == Email.send(user, activity)
assert_delivered_email(
EmailActivity.direct_activity(
user.email,
[activity]
)
)
end
test "if it's been an hour since the last notification" do
%Activity{} = activity = insert(:mobilizon_activity, inserted_at: DateTime.utc_now())
%User{} = user = insert(:user)
%Setting{} =
user_settings =
insert(:settings,
user_id: user.id,
group_notifications: :one_hour,
last_notification_sent: DateTime.add(DateTime.utc_now(), -3_659)
)
%ActivitySetting{} =
activity_setting = insert(:mobilizon_activity_setting, user_id: user.id, user: user)
user = %User{user | settings: user_settings, activity_settings: [activity_setting]}
assert {:ok, :sent} == Email.send(user, activity)
assert_delivered_email(
EmailActivity.direct_activity(
user.email,
[activity]
)
)
end
test "if there's no delay since the last notification" do
%Activity{} = activity = insert(:mobilizon_activity, inserted_at: DateTime.utc_now())
%User{} = user = insert(:user)
%Setting{} =
user_settings =
insert(:settings,
user_id: user.id,
group_notifications: :one_hour,
last_notification_sent: nil
)
%ActivitySetting{} =
activity_setting = insert(:mobilizon_activity_setting, user_id: user.id, user: user)