Merge branch 'bugs' into 'main'

Allow group admins to moderate new members and other things

Closes #881 et #886

See merge request framasoft/mobilizon!1107
This commit is contained in:
Thomas Citharel 2021-11-12 16:47:01 +00:00
commit fbb167983d
105 changed files with 5665 additions and 881 deletions

View file

@ -339,6 +339,10 @@ release-create:
stage: deploy
image: registry.gitlab.com/gitlab-org/release-cli:latest
rules: *tag-rules
variables:
APP_ASSET_AMD64: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_amd64.tar.gz"
APP_ASSET_ARM: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_arm.tar.gz"
APP_ASSET_ARM64: "${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME}_arm64.tar.gz"
before_script:
- apk --no-cache add gawk sed grep
script: |
@ -348,4 +352,6 @@ release-create:
release-cli create --name "$CI_COMMIT_TAG" \
--description "$CHANGELOG" \
--tag-name "$CI_COMMIT_TAG" \
--assets-link "{\"name\":\"${APP_ASSET}\",\"url\":\"${ENDPOINT}/${APP_ASSET}\"}"
--assets-link "{\"name\":\"${APP_ASSET_AMD64}\",\"url\":\"${ENDPOINT}/${APP_ASSET_AMD64}\"}" \
--assets-link "{\"name\":\"${APP_ASSET_ARM}\",\"url\":\"${ENDPOINT}/${APP_ASSET_ARM}\"}" \
--assets-link "{\"name\":\"${APP_ASSET_ARM64}\",\"url\":\"${ENDPOINT}/${APP_ASSET_ARM64}\"}"

View file

@ -1,4 +1,4 @@
version: '3'
version: "3.2"
services:
postgres:

View file

@ -148,6 +148,11 @@ export default class GroupActivityItem extends mixins(ActivityMixin) {
case Openness.INVITE_ONLY:
details.push("The group can now only be joined with an invite.");
break;
case Openness.MODERATED:
details.push(
"The group can now be joined by anyone, but new members need to be approved by an administrator."
);
break;
case Openness.OPEN:
details.push("The group can now be joined by anyone.");
break;

View file

@ -9,13 +9,7 @@
:inline="true"
slot="member"
>
<b>
{{
$t("@{username}", {
username: usernameWithDomain(activity.object.actor),
})
}}</b
></popover-actor-card
<b> {{ displayName(activity.object.actor) }}</b></popover-actor-card
>
<b slot="member" v-else>{{
subjectParams.member_actor_federated_username
@ -25,13 +19,7 @@
:inline="true"
slot="profile"
>
<b>
{{
$t("@{username}", {
username: usernameWithDomain(activity.author),
})
}}</b
></popover-actor-card
<b> {{ displayName(activity.author) }}</b></popover-actor-card
></i18n
>
<small class="has-text-grey-dark activity-date">{{
@ -41,7 +29,7 @@
</div>
</template>
<script lang="ts">
import { usernameWithDomain } from "@/types/actor";
import { displayName } from "@/types/actor";
import { ActivityMemberSubject, MemberRole } from "@/types/enums";
import { Component } from "vue-property-decorator";
import RouteName from "../../router/name";
@ -62,7 +50,7 @@ export const MEMBER_ROLE_VALUE: Record<string, number> = {
},
})
export default class MemberActivityItem extends mixins(ActivityMixin) {
usernameWithDomain = usernameWithDomain;
displayName = displayName;
RouteName = RouteName;
ActivityMemberSubject = ActivityMemberSubject;
@ -83,6 +71,14 @@ export default class MemberActivityItem extends mixins(ActivityMixin) {
return "You added the member {member}.";
}
return "{profile} added the member {member}.";
case ActivityMemberSubject.MEMBER_APPROVED:
if (this.isAuthorCurrentActor) {
return "You approved {member}'s membership.";
}
if (this.isObjectMemberCurrentActor) {
return "Your membership was approved by {profile}.";
}
return "{profile} approved {member}'s membership.";
case ActivityMemberSubject.MEMBER_JOINED:
return "{member} joined the group.";
case ActivityMemberSubject.MEMBER_UPDATED:
@ -94,6 +90,12 @@ export default class MemberActivityItem extends mixins(ActivityMixin) {
}
return "{profile} updated the member {member}.";
case ActivityMemberSubject.MEMBER_REMOVED:
if (this.subjectParams.member_role === MemberRole.NOT_APPROVED) {
if (this.isAuthorCurrentActor) {
return "You rejected {member}'s membership request.";
}
return "{profile} rejected {member}'s membership request.";
}
if (this.isAuthorCurrentActor) {
return "You excluded member {member}.";
}

View file

@ -1,5 +1,6 @@
<template>
<div class="media">
<div class="card">
<div class="card-content media">
<div class="media-content">
<div class="content">
<i18n
@ -19,7 +20,7 @@
<div class="media-content">
<div class="level">
<div class="level-left">
<div class="level-item">
<div class="level-item mr-3">
<router-link
:to="{
name: RouteName.GROUP,
@ -28,8 +29,8 @@
},
}"
>
<h3>{{ member.parent.name }}</h3>
<p class="is-6 has-text-grey">
<h3 class="is-size-5">{{ member.parent.name }}</h3>
<p class="is-size-7 has-text-grey-dark">
<span v-if="member.parent.domain">
{{
`@${member.parent.preferredUsername}@${member.parent.domain}`
@ -44,12 +45,18 @@
</div>
<div class="level-right">
<div class="level-item">
<b-button type="is-success" @click="$emit('accept', member.id)">
<b-button
type="is-success"
@click="$emit('accept', member.id)"
>
{{ $t("Accept") }}
</b-button>
</div>
<div class="level-item">
<b-button type="is-danger" @click="$emit('reject', member.id)">
<b-button
type="is-danger"
@click="$emit('reject', member.id)"
>
{{ $t("Decline") }}
</b-button>
</div>
@ -59,6 +66,7 @@
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
@ -82,4 +90,7 @@ export default class InvitationCard extends Vue {
background: lighten($primary, 40%);
padding: 10px;
}
h3 {
color: $violet-3;
}
</style>

View file

@ -1,5 +1,5 @@
<template>
<section v-if="invitations && invitations.length > 0">
<section class="card my-3" v-if="invitations && invitations.length > 0">
<InvitationCard
v-for="member in invitations"
:key="member.id"
@ -13,8 +13,9 @@
import { ACCEPT_INVITATION, REJECT_INVITATION } from "@/graphql/member";
import { Component, Prop, Vue } from "vue-property-decorator";
import InvitationCard from "@/components/Group/InvitationCard.vue";
import { LOGGED_USER_MEMBERSHIPS } from "@/graphql/actor";
import { PERSON_STATUS_GROUP } from "@/graphql/actor";
import { IMember } from "@/types/actor/member.model";
import { IGroup, IPerson, usernameWithDomain } from "@/types/actor";
@Component({
components: {
@ -26,18 +27,25 @@ export default class Invitations extends Vue {
async acceptInvitation(id: string): Promise<void> {
try {
const { data } = await this.$apollo.mutate<{ acceptInvitation: IMember }>(
{
await this.$apollo.mutate<{ acceptInvitation: IMember }>({
mutation: ACCEPT_INVITATION,
variables: {
id,
},
refetchQueries: [{ query: LOGGED_USER_MEMBERSHIPS }],
}
);
if (data) {
this.$emit("accept-invitation", data.acceptInvitation);
refetchQueries({ data }) {
const profile = data?.acceptInvitation?.actor as IPerson;
const group = data?.acceptInvitation?.parent as IGroup;
if (profile && group) {
return [
{
query: PERSON_STATUS_GROUP,
variables: { id: profile.id, group: usernameWithDomain(group) },
},
];
}
return [];
},
});
} catch (error: any) {
console.error(error);
if (error.graphQLErrors && error.graphQLErrors.length > 0) {
@ -48,18 +56,25 @@ export default class Invitations extends Vue {
async rejectInvitation(id: string): Promise<void> {
try {
const { data } = await this.$apollo.mutate<{ rejectInvitation: IMember }>(
{
await this.$apollo.mutate<{ rejectInvitation: IMember }>({
mutation: REJECT_INVITATION,
variables: {
id,
},
refetchQueries: [{ query: LOGGED_USER_MEMBERSHIPS }],
}
);
if (data) {
this.$emit("reject-invitation", data.rejectInvitation);
refetchQueries({ data }) {
const profile = data?.rejectInvitation?.actor as IPerson;
const group = data?.rejectInvitation?.parent as IGroup;
if (profile && group) {
return [
{
query: PERSON_STATUS_GROUP,
variables: { id: profile.id, group: usernameWithDomain(group) },
},
];
}
return [];
},
});
} catch (error: any) {
console.error(error);
if (error.graphQLErrors && error.graphQLErrors.length > 0) {

View file

@ -37,9 +37,10 @@ export const ACCEPT_INVITATION = gql`
export const REJECT_INVITATION = gql`
mutation RejectInvitation($id: ID!) {
rejectInvitation(id: $id) {
id
...MemberFragment
}
}
${MEMBER_FRAGMENT}
`;
export const GROUP_MEMBERS = gql`
@ -72,13 +73,22 @@ export const UPDATE_MEMBER = gql`
`;
export const REMOVE_MEMBER = gql`
mutation RemoveMember($groupId: ID!, $memberId: ID!) {
removeMember(groupId: $groupId, memberId: $memberId) {
mutation RemoveMember($memberId: ID!, $exclude: Boolean) {
removeMember(memberId: $memberId, exclude: $exclude) {
id
}
}
`;
export const APPROVE_MEMBER = gql`
mutation ApproveMember($memberId: ID!) {
approveMember(memberId: $memberId) {
...MemberFragment
}
}
${MEMBER_FRAGMENT}
`;
export const JOIN_GROUP = gql`
mutation JoinGroup($groupId: ID!) {
joinGroup(groupId: $groupId) {

View file

@ -881,6 +881,7 @@
"{member} was invited by {profile}.": "{member} was invited by {profile}.",
"You added the member {member}.": "You added the member {member}.",
"{profile} added the member {member}.": "{profile} added the member {member}.",
"{member} joined the group.": "{member} joined the group.",
"{member} rejected the invitation to join the group.": "{member} rejected the invitation to join the group.",
"{member} accepted the invitation to join the group.": "{member} accepted the invitation to join the group.",
"You excluded member {member}.": "You excluded member {member}.",
@ -1233,5 +1234,17 @@
"Any type": "Any type",
"In person": "In person",
"In the past": "In the past",
"Only registered users may fetch remote events from their URL.": "Only registered users may fetch remote events from their URL."
"Only registered users may fetch remote events from their URL.": "Only registered users may fetch remote events from their URL.",
"Moderate new members": "Moderate new members",
"Anyone can request being a member, but an administrator needs to approve the membership.": "Anyone can request being a member, but an administrator needs to approve the membership.",
"Cancel membership request": "Cancel membership request",
"group's upcoming public events": "group's upcoming public events",
"access to the group's private content as well": "access to the group's private content as well",
"Following the group will allow you to be informed of the {group_upcoming_public_events}, whereas joining the group means you will {access_to_group_private_content_as_well}, including group discussions, group resources and members-only posts.": "Following the group will allow you to be informed of the {group_upcoming_public_events}, whereas joining the group means you will {access_to_group_private_content_as_well}, including group discussions, group resources and members-only posts.",
"The group can now be joined by anyone, but new members need to be approved by an administrator.": "The group can now be joined by anyone, but new members need to be approved by an administrator.",
"You approved {member}'s membership.": "You approved {member}'s membership.",
"Your membership was approved by {profile}.": "Your membership was approved by {profile}.",
"{profile} approved {member}'s membership.": "{profile} approved {member}'s membership.",
"You rejected {member}'s membership request.": "You rejected {member}'s membership request.",
"{profile} rejected {member}'s membership request.": "{profile} rejected {member}'s membership request."
}

View file

@ -1077,7 +1077,7 @@
"You excluded member {member}.": "Vous avez exclu le ou la membre {member}.",
"You have been disconnected": "Vous avez été déconnecté⋅e",
"You have been invited by {invitedBy} to the following group:": "Vous avez été invité par {invitedBy} à rejoindre le groupe suivant :",
"You have been removed from this group's members.": "Vous avez été exclu des membres de ce groupe.",
"You have been removed from this group's members.": "Vous avez été exclu⋅e des membres de ce groupe.",
"You have cancelled your participation": "Vous avez annulé votre participation",
"You have one event in {days} days.": "Vous n'avez pas d'événements dans {days} jours | Vous avez un événement dans {days} jours. | Vous avez {count} événements dans {days} jours",
"You have one event today.": "Vous n'avez pas d'événement aujourd'hui | Vous avez un événement aujourd'hui. | Vous avez {count} événements aujourd'hui",
@ -1231,6 +1231,7 @@
"{old_group_name} was renamed to {group}.": "{old_group_name} a été renommé en {group}.",
"{profile} (by default)": "{profile} (par défault)",
"{profile} added the member {member}.": "{profile} a ajouté le ou la membre {member}.",
"{member} joined the group.": "{member} a rejoint le groupe.",
"{profile} archived the discussion {discussion}.": "{profile} a archivé la discussion {discussion}.",
"{profile} created the discussion {discussion}.": "{profile} a créé la discussion {discussion}.",
"{profile} created the folder {resource}.": "{profile} a créé le dossier {resource}.",
@ -1337,5 +1338,17 @@
"Any type": "N'importe quel type",
"In person": "En personne",
"In the past": "Dans le passé",
"Only registered users may fetch remote events from their URL.": "Seul⋅es les utilisateur⋅ices enregistré⋅es peuvent récupérer des événements depuis leur URL."
"Only registered users may fetch remote events from their URL.": "Seul⋅es les utilisateur⋅ices enregistré⋅es peuvent récupérer des événements depuis leur URL.",
"Moderate new members": "Modérer les nouvelles et nouveaux membres",
"Anyone can request being a member, but an administrator needs to approve the membership.": "N'importe qui peut demander à être membre, mais un⋅e administrateur⋅ice devra approuver leur adhésion.",
"Cancel membership request": "Annuler la demande d'adhésion",
"group's upcoming public events": "prochains événements publics du groupe",
"access to the group's private content as well": "accédez également au contenu privé du groupe",
"Following the group will allow you to be informed of the {group_upcoming_public_events}, whereas joining the group means you will {access_to_group_private_content_as_well}, including group discussions, group resources and members-only posts.": "Suivre le groupe vous permettra d'être informé⋅e des {group_upcoming_public_events}, alors que rejoindre le groupe signfie que vous {access_to_group_private_content_as_well}, y compris les discussion de groupe, les resources du groupe et les billets réservés au groupe.",
"The group can now be joined by anyone, but new members need to be approved by an administrator.": "Le groupe peut maintenant être rejoint par n'importe qui, mais les nouvelles et nouveaux membres doivent être approuvées par un⋅e modérateur⋅ice.",
"You approved {member}'s membership.": "Vous avez approuvé la demande d'adhésion de {member}.",
"Your membership was approved by {profile}.": "Votre demande d'adhésion a été approuvée par {profile}.",
"{profile} approved {member}'s membership.": "{profile} a approuvé la demande d'adhésion de {member}.",
"You rejected {member}'s membership request.": "Vous avez rejeté la demande d'adhésion de {member}.",
"{profile} rejected {member}'s membership request.": "{profile} a rejeté la demande d'adhésion de {member}."
}

View file

@ -99,6 +99,10 @@ export default class GroupMixin extends Vue {
]);
}
get isCurrentActorAPendingGroupMember(): boolean {
return this.hasCurrentActorThisRole([MemberRole.NOT_APPROVED]);
}
hasCurrentActorThisRole(givenRole: string | string[]): boolean {
const roles = Array.isArray(givenRole) ? givenRole : [givenRole];
return (

View file

@ -23,29 +23,6 @@
</ul>
</nav>
<b-loading :active.sync="$apollo.loading"></b-loading>
<invitations
v-if="isCurrentActorAnInvitedGroupMember"
:invitations="[groupMember]"
@acceptInvitation="acceptInvitation"
@reject-invitation="rejectInvitation"
/>
<b-message v-if="isCurrentActorARejectedGroupMember" type="is-danger">
{{ $t("You have been removed from this group's members.") }}
</b-message>
<b-message
v-if="
isCurrentActorAGroupMember &&
isCurrentActorARecentMember &&
isCurrentActorOnADifferentDomainThanGroup
"
type="is-info"
>
{{
$t(
"Since you are a new member, private content can take a few minutes to appear."
)
}}
</b-message>
<header class="block-container presentation" v-if="group">
<div class="banner-container">
<lazy-image-wrapper :picture="group.banner" />
@ -137,7 +114,7 @@
<b-tooltip
v-if="
(!isCurrentActorAGroupMember || previewPublic) &&
group.openness !== Openness.OPEN
group.openness === Openness.INVITE_ONLY
"
:label="$t('This group is invite-only')"
position="is-bottom"
@ -148,7 +125,9 @@
>
<b-button
v-else-if="
(!isCurrentActorAGroupMember || previewPublic) &&
((!isCurrentActorAGroupMember &&
!isCurrentActorAPendingGroupMember) ||
previewPublic) &&
currentActor.id
"
@click="joinGroup"
@ -157,6 +136,14 @@
:disabled="previewPublic"
>{{ $t("Join group") }}</b-button
>
<b-button
outlined
v-else-if="isCurrentActorAPendingGroupMember"
@click="leaveGroup"
@keyup.enter="leaveGroup"
type="is-primary"
>{{ $t("Cancel membership request") }}</b-button
>
<b-button
tag="router-link"
:to="{
@ -310,6 +297,49 @@
</b-dropdown>
</div>
</div>
<invitations
v-if="isCurrentActorAnInvitedGroupMember"
:invitations="[groupMember]"
/>
<b-message v-if="isCurrentActorARejectedGroupMember" type="is-danger">
{{ $t("You have been removed from this group's members.") }}
</b-message>
<b-message
v-if="
isCurrentActorAGroupMember &&
isCurrentActorARecentMember &&
isCurrentActorOnADifferentDomainThanGroup
"
type="is-info"
>
{{
$t(
"Since you are a new member, private content can take a few minutes to appear."
)
}}
</b-message>
<b-message
v-if="
!isCurrentActorAGroupMember &&
!isCurrentActorAPendingGroupMember &&
!isCurrentActorPendingFollow &&
!isCurrentActorFollowing
"
type="is-info"
has-icon
class="m-3"
>
<i18n
path="Following the group will allow you to be informed of the {group_upcoming_public_events}, whereas joining the group means you will {access_to_group_private_content_as_well}, including group discussions, group resources and members-only posts."
>
<b slot="group_upcoming_public_events">{{
$t("group's upcoming public events")
}}</b>
<b slot="access_to_group_private_content_as_well">{{
$t("access to the group's private content as well")
}}</b>
</i18n>
</b-message>
</div>
</header>
</div>
@ -893,31 +923,6 @@ export default class Group extends mixins(GroupMixin) {
});
}
acceptInvitation(): void {
if (this.groupMember) {
const index = this.person.memberships.elements.findIndex(
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
({ id }: IMember) => id === this.groupMember.id
);
const member = this.groupMember;
member.role = MemberRole.MEMBER;
this.person.memberships.elements.splice(index, 1, member);
this.$apollo.queries.group.refetch();
}
}
rejectInvitation({ id: memberId }: { id: string }): void {
const index = this.person.memberships.elements.findIndex(
(membership) =>
membership.role === MemberRole.INVITED && membership.id === memberId
);
if (index > -1) {
this.person.memberships.elements.splice(index, 1);
this.person.memberships.total -= 1;
}
}
async reportGroup(content: string, forward: boolean): Promise<void> {
this.isReportModalActive = false;
// eslint-disable-next-line @typescript-eslint/ban-ts-comment

View file

@ -195,6 +195,20 @@
</b-table-column>
<b-table-column field="actions" :label="$t('Actions')" v-slot="props">
<div class="buttons" v-if="props.row.actor.id !== currentActor.id">
<b-button
type="is-success"
v-if="props.row.role === MemberRole.NOT_APPROVED"
@click="approveMember(props.row)"
icon-left="check"
>{{ $t("Approve member") }}</b-button
>
<b-button
type="is-danger"
v-if="props.row.role === MemberRole.NOT_APPROVED"
@click="rejectMember(props.row)"
icon-left="exit-to-app"
>{{ $t("Reject member") }}</b-button
>
<b-button
v-if="
[MemberRole.MEMBER, MemberRole.MODERATOR].includes(
@ -217,7 +231,7 @@
>
<b-button
v-if="props.row.role === MemberRole.MEMBER"
@click="removeMember(props.row.id)"
@click="removeMember(props.row)"
type="is-danger"
icon-left="exit-to-app"
>{{ $t("Remove") }}</b-button
@ -250,8 +264,9 @@ import {
GROUP_MEMBERS,
REMOVE_MEMBER,
UPDATE_MEMBER,
APPROVE_MEMBER,
} from "../../graphql/member";
import { usernameWithDomain } from "../../types/actor";
import { usernameWithDomain, displayName } from "../../types/actor";
import EmptyContent from "@/components/Utils/EmptyContent.vue";
@Component({
@ -332,7 +347,7 @@ export default class GroupMembers extends mixins(GroupMixin) {
this.$notifier.success(
this.$t("{username} was invited to {group}", {
username: this.newMemberUsername,
group: this.group.name || usernameWithDomain(this.group),
group: displayName(this.group),
}) as string
);
this.newMemberUsername = "";
@ -375,7 +390,7 @@ export default class GroupMembers extends mixins(GroupMixin) {
});
}
async removeMember(memberId: string): Promise<void> {
async removeMember(oldMember: IMember): Promise<void> {
const { roles, MEMBERS_PER_PAGE, group, page } = this;
const variables = {
name: usernameWithDomain(group),
@ -388,7 +403,7 @@ export default class GroupMembers extends mixins(GroupMixin) {
mutation: REMOVE_MEMBER,
variables: {
groupId: this.group.id,
memberId,
memberId: oldMember.id,
},
refetchQueries: [
{
@ -397,12 +412,18 @@ export default class GroupMembers extends mixins(GroupMixin) {
},
],
});
this.$notifier.success(
this.$t("The member was removed from the group {group}", {
username: this.newMemberUsername,
group: this.group.name || usernameWithDomain(this.group),
}) as string
);
let message = this.$t("The member was removed from the group {group}", {
group: displayName(this.group),
}) as string;
if (oldMember.role === MemberRole.NOT_APPROVED) {
message = this.$t(
"The membership request from {profile} was rejected",
{
group: displayName(oldMember.actor),
}
) as string;
}
this.$notifier.success(message);
} catch (error: any) {
console.error(error);
if (error.graphQLErrors && error.graphQLErrors.length > 0) {
@ -414,29 +435,49 @@ export default class GroupMembers extends mixins(GroupMixin) {
promoteMember(member: IMember): void {
if (!member.id) return;
if (member.role === MemberRole.MODERATOR) {
this.updateMember(member.id, MemberRole.ADMINISTRATOR);
this.updateMember(member, MemberRole.ADMINISTRATOR);
}
if (member.role === MemberRole.MEMBER) {
this.updateMember(member.id, MemberRole.MODERATOR);
this.updateMember(member, MemberRole.MODERATOR);
}
}
demoteMember(member: IMember): void {
if (!member.id) return;
if (member.role === MemberRole.MODERATOR) {
this.updateMember(member.id, MemberRole.MEMBER);
this.updateMember(member, MemberRole.MEMBER);
}
if (member.role === MemberRole.ADMINISTRATOR) {
this.updateMember(member.id, MemberRole.MODERATOR);
this.updateMember(member, MemberRole.MODERATOR);
}
}
async updateMember(memberId: string, role: MemberRole): Promise<void> {
async approveMember(member: IMember): Promise<void> {
try {
await this.$apollo.mutate<{ approveMember: IMember }>({
mutation: APPROVE_MEMBER,
variables: { memberId: member.id },
});
this.$notifier.success(this.$t("The member was approved") as string);
} catch (error: any) {
console.error(error);
if (error.graphQLErrors && error.graphQLErrors.length > 0) {
this.$notifier.error(error.graphQLErrors[0].message);
}
}
}
rejectMember(member: IMember): void {
if (!member.id) return;
this.removeMember(member);
}
async updateMember(oldMember: IMember, role: MemberRole): Promise<void> {
try {
await this.$apollo.mutate<{ updateMember: IMember }>({
mutation: UPDATE_MEMBER,
variables: {
memberId,
memberId: oldMember.id,
role,
},
refetchQueries: [
@ -455,9 +496,15 @@ export default class GroupMembers extends mixins(GroupMixin) {
successMessage = "The member role was updated to administrator";
break;
case MemberRole.MEMBER:
default:
if (oldMember.role === MemberRole.NOT_APPROVED) {
successMessage = "The member was approved";
} else {
successMessage = "The member role was updated to simple member";
}
break;
default:
successMessage = "The member role was updated";
}
this.$notifier.success(this.$t(successMessage) as string);
} catch (error: any) {
console.error(error);

View file

@ -128,6 +128,19 @@
}}</small>
</b-radio>
</div>
<div class="field">
<b-radio
v-model="editableGroup.openness"
name="groupOpenness"
:native-value="Openness.MODERATED"
>{{ $t("Moderate new members") }}<br />
<small>{{
$t(
"Anyone can request being a member, but an administrator needs to approve the membership."
)
}}</small>
</b-radio>
</div>
<div class="field">
<b-radio
v-model="editableGroup.openness"

View file

@ -10,6 +10,7 @@ defmodule Mobilizon.Federation.ActivityPub.Actions.Accept do
alias Mobilizon.Federation.ActivityStream
alias Mobilizon.Federation.ActivityStream.Convertible
alias Mobilizon.Service.Notifications.Scheduler
alias Mobilizon.Web.Email.Member, as: EmailMember
alias Mobilizon.Web.Endpoint
require Logger
@ -21,7 +22,7 @@ defmodule Mobilizon.Federation.ActivityPub.Actions.Accept do
maybe_relay_if_group_activity: 1
]
@type acceptable_types :: :join | :follow | :invite
@type acceptable_types :: :join | :follow | :invite | :member
@type acceptable_entities ::
accept_join_entities | accept_follow_entities | accept_invite_entities
@ -35,6 +36,7 @@ defmodule Mobilizon.Federation.ActivityPub.Actions.Accept do
:join -> accept_join(entity, additional)
:follow -> accept_follow(entity, additional)
:invite -> accept_invite(entity, additional)
:member -> accept_member(entity, additional)
end
with {:ok, entity, update_data} <- accept_res do
@ -158,12 +160,47 @@ defmodule Mobilizon.Federation.ActivityPub.Actions.Accept do
end
end
@spec maybe_refresh_group(Member.t()) :: :ok | nil
defp maybe_refresh_group(%Member{
parent: %Actor{domain: parent_domain, url: parent_url},
actor: %Actor{} = actor
}) do
unless is_nil(parent_domain),
do: Refresher.fetch_group(parent_url, actor)
@spec accept_member(Member.t(), map()) ::
{:ok, Member.t(), Activity.t()} | {:error, Ecto.Changeset.t()}
defp accept_member(
%Member{actor_id: actor_id, actor: actor, parent: %Actor{} = group} = member,
%{moderator: %Actor{url: actor_url} = moderator}
) do
with %Actor{} <- Actors.get_actor!(actor_id),
{:ok, %Member{id: member_id} = member} <-
Actors.update_member(member, %{role: :member}) do
Mobilizon.Service.Activity.Member.insert_activity(member,
subject: "member_approved",
moderator: moderator
)
Absinthe.Subscription.publish(Endpoint, actor,
group_membership_changed: [Actor.preferred_username_and_domain(group), actor_id]
)
EmailMember.send_notification_to_approved_member(member)
Cachex.del(:activity_pub, "member_#{member_id}")
maybe_refresh_group(member)
accept_data = %{
"type" => "Accept",
"attributedTo" => member.parent.url,
"to" => [member.parent.members_url],
"cc" => [member.parent.url],
"actor" => actor_url,
"object" => Convertible.model_to_as(member),
"id" => "#{Endpoint.url()}/accept/member/#{member_id}"
}
{:ok, member, accept_data}
end
end
@spec maybe_refresh_group(Member.t()) :: {:ok, Actor.t()} | {:error, atom()} | {:error}
defp maybe_refresh_group(%Member{
parent: %Actor{} = group
}),
do: Refresher.refresh_profile(group)
end

View file

@ -69,14 +69,20 @@ defmodule Mobilizon.Federation.ActivityPub.Actions.Leave do
end
def leave(
%Actor{type: :Group, id: group_id, url: group_url, members_url: group_members_url},
%Actor{id: actor_id, url: actor_url},
%Actor{
type: :Group,
domain: group_domain,
id: group_id,
url: group_url,
members_url: group_members_url
},
%Actor{id: actor_id, url: actor_url, domain: actor_domain},
local,
additional
) do
case Actors.get_member(actor_id, group_id) do
{:ok, %Member{id: member_id} = member} ->
if Map.get(additional, :force_member_removal, false) ||
if Map.get(additional, :force_member_removal, false) || group_domain != actor_domain ||
!Actors.is_only_administrator?(member_id, group_id) do
with {:ok, %Member{} = member} <- Actors.delete_member(member) do
Mobilizon.Service.Activity.Member.insert_activity(member, subject: "member_quit")

View file

@ -28,6 +28,7 @@ defmodule Mobilizon.Federation.ActivityPub.Actions.Reject do
:join -> reject_join(entity, additional)
:follow -> reject_follow(entity, additional)
:invite -> reject_invite(entity, additional)
:member -> reject_member(entity, additional)
end
{:ok, activity} = create_activity(update_data, local)
@ -118,4 +119,28 @@ defmodule Mobilizon.Federation.ActivityPub.Actions.Reject do
{:ok, member, accept_data}
end
end
@spec reject_member(Member.t(), map()) :: {:ok, Member.t(), Activity.t()} | any
defp reject_member(
%Member{actor_id: actor_id} = member,
%{moderator: %Actor{url: actor_url}}
) do
with %Actor{} <- Actors.get_actor(actor_id),
{:ok, %Member{url: member_url, id: member_id} = member} <-
Actors.delete_member(member),
Mobilizon.Service.Activity.Member.insert_activity(member,
subject: "member_rejected"
),
accept_data <- %{
"type" => "Reject",
"actor" => actor_url,
"attributedTo" => member.parent.url,
"to" => [member.parent.members_url],
"cc" => [member.parent.url],
"object" => member_url,
"id" => "#{Endpoint.url()}/reject/member/#{member_id}"
} do
{:ok, member, accept_data}
end
end
end

View file

@ -21,23 +21,25 @@ defmodule Mobilizon.Federation.ActivityPub.Actions.Remove do
@spec remove(Member.t(), Actor.t(), Actor.t(), boolean, map) ::
{:ok, Activity.t(), Member.t()} | {:error, :member_not_found | Ecto.Changeset.t()}
def remove(
%Member{} = member,
%Member{id: member_id},
%Actor{type: :Group, url: group_url, members_url: group_members_url},
%Actor{url: moderator_url} = moderator,
local,
_additional \\ %{}
) do
with {:ok, %Member{id: member_id}} <- Actors.update_member(member, %{role: :rejected}),
%Member{} = member <- Actors.get_member(member_id) do
with %Member{actor: %Actor{url: actor_url}} = member <- Actors.get_member(member_id),
{:ok, %Member{}} <- Actors.delete_member(member) do
Mobilizon.Service.Activity.Member.insert_activity(member,
moderator: moderator,
subject: "member_removed"
)
Cachex.del(:activity_pub, "member_#{member_id}")
EmailMember.send_notification_to_removed_member(member)
remove_data = %{
"to" => [group_members_url],
"to" => [actor_url, group_members_url],
"type" => "Remove",
"actor" => moderator_url,
"object" => member.url,

View file

@ -740,14 +740,13 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
) do
Logger.info("Handle incoming to remove a member from a group")
with {:ok, %Actor{id: moderator_id} = moderator} <-
with {:ok, %Actor{} = moderator} <-
data |> Utils.get_actor() |> ActivityPubActor.get_or_fetch_actor_by_url(),
{:ok, person_id} <- get_remove_object(object),
{:ok, %Actor{type: :Group, id: group_id} = group} <-
origin |> Utils.get_url() |> ActivityPubActor.get_or_fetch_actor_by_url(),
{:is_admin, {:ok, %Member{role: role}}}
when role in [:moderator, :administrator, :creator] <-
{:is_admin, Actors.get_member(moderator_id, group_id)},
{:is_admin, true} <-
{:is_admin, can_remove_actor_from_group?(moderator, group)},
{:is_member, {:ok, %Member{role: role} = member}} when role != :rejected <-
{:is_member, Actors.get_member(person_id, group_id)} do
Actions.Remove.remove(member, group, moderator, false)
@ -866,6 +865,9 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
{:error, _err} ->
case get_member(join_object) do
{:ok, %Member{role: :not_approved} = member} ->
do_handle_incoming_accept_join_group(member, :member, %{moderator: actor_accepting})
{:ok, %Member{invited_by: nil} = member} ->
do_handle_incoming_accept_join_group(member, :join)
@ -922,15 +924,17 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
defp do_handle_incoming_accept_join_group(
%Member{role: role, parent: _group} = member,
type
type,
additional \\ %{}
)
when role in [:not_approved, :rejected, :invited] and type in [:join, :invite] do
when role in [:not_approved, :rejected, :invited] and type in [:join, :invite, :member] do
# Or maybe for groups it's the group that sends the Accept activity
with {:ok, %Activity{} = activity, %Member{role: :member} = member} <-
Actions.Accept.accept(
type,
member,
false
false,
additional
) do
{:ok, activity, member}
end
@ -1194,4 +1198,17 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
Actions.Create.create(:discussion, object_data, false)
end
end
@spec can_remove_actor_from_group?(Actor.t(), Actor.t()) :: boolean()
defp can_remove_actor_from_group?(%Actor{} = moderator, %Actor{} = group) do
case Actors.get_member(moderator.id, group.id) do
{:ok, %Member{role: role}} when role in [:moderator, :administrator, :creator] ->
true
_ ->
# If member moderator not found, it's probably because no one on this instance is member of this group yet
# Therefore we can't access the list of admin/moderators and we just trust the origin domain
moderator.domain == group.domain
end
end
end

View file

@ -151,7 +151,13 @@ defmodule Mobilizon.Federation.ActivityPub.Types.Actors do
|> Map.update(:message, nil, &String.trim(HTML.strip_tags(&1)))
}) do
{:ok, %Member{} = member} ->
Mobilizon.Service.Activity.Member.insert_activity(member, subject: "member_joined")
subject =
case Mobilizon.Actors.get_default_member_role(group) do
:not_approved -> "member_request"
:member -> "member_joined"
end
Mobilizon.Service.Activity.Member.insert_activity(member, subject: subject)
Absinthe.Subscription.publish(Endpoint, actor,
group_membership_changed: [Actor.preferred_username_and_domain(group), actor.id]

View file

@ -118,6 +118,34 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do
"timezone" => %{
"@id" => "mz:timezone",
"@type" => "sc:Text"
},
"discussions" => %{
"@id" => "mz:discussions",
"@type" => "@id"
},
"events" => %{
"@id" => "mz:events",
"@type" => "@id"
},
"members" => %{
"@id" => "mz:members",
"@type" => "@id"
},
"openness" => %{
"@id" => "mz:openness",
"@type" => "@id"
},
"posts" => %{
"@id" => "mz:posts",
"@type" => "@id"
},
"resources" => %{
"@id" => "mz:resources",
"@type" => "@id"
},
"todos" => %{
"@id" => "mz:todos",
"@type" => "@id"
}
}
]

View file

@ -54,13 +54,6 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Actor do
outbox_url: data["outbox"],
following_url: data["following"],
followers_url: data["followers"],
members_url: data["members"],
resources_url: data["resources"],
todos_url: data["todos"],
events_url: data["events"],
posts_url: data["posts"],
discussions_url: data["discussions"],
shared_inbox_url: data["endpoints"]["sharedInbox"],
domain: URI.parse(data["id"]).host,
manually_approves_followers: data["manuallyApprovesFollowers"],
type: data["type"],
@ -68,10 +61,26 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Actor do
openness: data["openness"],
physical_address_id: if(address, do: address.id, else: nil)
}
|> add_endpoints_to_model(data)
end
def as_to_model_data(_), do: {:error, :actor_not_allowed_type}
defp add_endpoints_to_model(actor, data) do
# TODO: Remove fallbacks in 3.0
endpoints = %{
members_url: get_in(data, ["endpoints", "members"]) || data["members"],
resources_url: get_in(data, ["endpoints", "resources"]) || data["resources"],
todos_url: get_in(data, ["endpoints", "todos"]) || data["todos"],
events_url: get_in(data, ["endpoints", "events"]) || data["events"],
posts_url: get_in(data, ["endpoints", "posts"]) || data["posts"],
discussions_url: get_in(data, ["endpoints", "discussions"]) || data["discussions"],
shared_inbox_url: data["endpoints"]["sharedInbox"]
}
Map.merge(actor, endpoints)
end
@doc """
Convert an actor struct to an ActivityStream representation.
"""
@ -86,12 +95,6 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Actor do
"summary" => actor.summary || "",
"following" => actor.following_url,
"followers" => actor.followers_url,
"members" => actor.members_url,
"resources" => actor.resources_url,
"todos" => actor.todos_url,
"posts" => actor.posts_url,
"events" => actor.events_url,
"discussions" => actor.discussions_url,
"inbox" => actor.inbox_url,
"outbox" => actor.outbox_url,
"url" => actor.url,
@ -113,12 +116,30 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Actor do
}
actor_data
|> add_endpoints(actor)
|> maybe_add_members(actor)
|> maybe_add_avatar_picture(actor)
|> maybe_add_banner_picture(actor)
|> maybe_add_physical_address(actor)
end
defp add_endpoints(%{"endpoints" => endpoints} = actor_data, %ActorModel{} = actor) do
new_endpoints = %{
"members" => actor.members_url,
"resources" => actor.resources_url,
"todos" => actor.todos_url,
"posts" => actor.posts_url,
"events" => actor.events_url,
"discussions" => actor.discussions_url
}
endpoints = Map.merge(endpoints, new_endpoints)
actor_data
|> Map.merge(new_endpoints)
|> Map.put("endpoints", endpoints)
end
@spec download_picture(String.t() | nil, String.t(), String.t()) :: map() | nil
defp download_picture(nil, _name, _default_name), do: nil

View file

@ -141,6 +141,37 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
end
end
def approve_member(_parent, %{member_id: member_id}, %{
context: %{current_actor: %Actor{} = moderator}
}) do
case Actors.get_member(member_id) do
%Member{} = member ->
with {:ok, _activity, %Member{} = member} <-
Actions.Accept.accept(:member, member, true, %{moderator: moderator}) do
{:ok, member}
end
{:error, :member_not_found} ->
{:error, dgettext("errors", "You are not a moderator or admin for this group")}
end
end
# TODO : Maybe remove me ? Remove member with exclude parameter does the same
def reject_member(_parent, %{member_id: member_id}, %{
context: %{current_actor: %Actor{} = moderator}
}) do
case Actors.get_member(member_id) do
%Member{} = member ->
with {:ok, _activity, %Member{} = member} <-
Actions.Reject.reject(:member, member, true, %{moderator: moderator}) do
{:ok, member}
end
{:error, :member_not_found} ->
{:error, dgettext("errors", "You are not a moderator or admin for this group")}
end
end
@spec update_member(any(), map(), Absinthe.Resolution.t()) ::
{:ok, Member.t()} | {:error, String.t()}
def update_member(_parent, %{member_id: member_id, role: role}, %{
@ -168,18 +199,17 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
@spec remove_member(any(), map(), Absinthe.Resolution.t()) ::
{:ok, Member.t()} | {:error, String.t()}
def remove_member(_parent, %{member_id: member_id, group_id: group_id}, %{
def remove_member(_parent, %{member_id: member_id, exclude: _exclude}, %{
context: %{current_actor: %Actor{id: moderator_id} = moderator}
}) do
with %Member{role: role} = member when role != :rejected <- Actors.get_member(member_id),
%Actor{type: :Group} = group <- Actors.get_actor(group_id),
{:has_rights_to_remove, {:ok, %Member{role: role}}}
when role in [:moderator, :administrator, :creator] <-
{:has_rights_to_remove, Actors.get_member(moderator_id, group_id)},
{:ok, _activity, %Member{}} <-
Actions.Remove.remove(member, group, moderator, true) do
{:ok, member}
else
case Actors.get_member(member_id) do
nil ->
{:error,
dgettext(
"errors",
"This member does not exist"
)}
%Member{role: :rejected} ->
{:error,
dgettext(
@ -187,7 +217,24 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
"This member already has been rejected."
)}
{:has_rights_to_remove, _} ->
%Member{parent_id: group_id} = member ->
case Actors.get_member(moderator_id, group_id) do
{:ok, %Member{role: role}} when role in [:moderator, :administrator, :creator] ->
%Actor{type: :Group} = group = Actors.get_actor(group_id)
with {:ok, _activity, %Member{}} <-
Actions.Remove.remove(member, group, moderator, true) do
{:ok, member}
end
{:ok, %Member{}} ->
{:error,
dgettext(
"errors",
"You don't have the role needed to remove this member."
)}
{:error, :member_not_found} ->
{:error,
dgettext(
"errors",
@ -195,6 +242,15 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
)}
end
end
end
def remove_member(_parent, _args, _resolution),
do:
{:error,
dgettext(
"errors",
"You must be logged-in to remove a member"
)}
# Rejected members can be invited again
@spec check_member_not_existant_or_rejected(String.t() | integer, String.t() | integer()) ::

View file

@ -81,6 +81,24 @@ defmodule Mobilizon.GraphQL.Schema.Actors.MemberType do
resolve(&Member.reject_invitation/3)
end
@desc """
Approve a membership request
"""
field :approve_member, :member do
arg(:member_id, non_null(:id), description: "The member ID")
resolve(&Member.approve_member/3)
end
@desc """
Reject a membership request
"""
field :reject_member, :member do
arg(:member_id, non_null(:id), description: "The member ID")
resolve(&Member.reject_member/3)
end
@desc """
Update a member's role
"""
@ -93,9 +111,13 @@ defmodule Mobilizon.GraphQL.Schema.Actors.MemberType do
@desc "Remove a member from a group"
field :remove_member, :member do
arg(:group_id, non_null(:id), description: "The group ID")
arg(:member_id, non_null(:id), description: "The member ID")
arg(:exclude, :boolean,
default_value: false,
description: "Whether the member should be excluded from the group"
)
resolve(&Member.remove_member/3)
end
end

View file

@ -18,8 +18,9 @@ defmodule Mobilizon.Service.Activity.Member do
) do
subject = Keyword.get(options, :subject)
with author_id <- get_author(new_member, options),
object_id <- if(subject == "member_removed", do: nil, else: to_string(member_id)) do
author_id = get_author(new_member, options)
object_id = if(subject == "member_removed", do: nil, else: to_string(member_id))
ActivityBuilder.enqueue(:build_activity, %{
"type" => "member",
"subject" => subject,
@ -31,7 +32,6 @@ defmodule Mobilizon.Service.Activity.Member do
"inserted_at" => DateTime.utc_now()
})
end
end
def insert_activity(_, _), do: {:ok, nil}
@ -66,34 +66,37 @@ defmodule Mobilizon.Service.Activity.Member do
end
end
moderator = Keyword.get(options, :moderator)
old_member = Keyword.get(options, :old_member)
subject_params = %{
%{
member_role: String.upcase(to_string(role))
}
|> maybe_add_actor(actor)
|> maybe_add_old_member(Keyword.get(options, :old_member))
|> maybe_add_moderator(Keyword.get(options, :moderator))
end
subject_params =
if(is_nil(actor),
do: subject_params,
else:
@spec maybe_add_actor(map(), Actor.t() | nil) :: map()
defp maybe_add_actor(subject_params, nil), do: subject_params
defp maybe_add_actor(subject_params, %Actor{} = actor) do
subject_params
|> Map.put(
:member_actor_federated_username,
Actor.preferred_username_and_domain(actor)
)
|> Map.put(:member_actor_name, actor.name)
)
end
subject_params =
if(is_nil(old_member),
do: subject_params,
else: Map.put(subject_params, :old_role, String.upcase(to_string(old_member.role)))
)
@spec maybe_add_old_member(map(), Member.t() | nil) :: map()
defp maybe_add_old_member(subject_params, nil), do: subject_params
if is_nil(moderator),
do: subject_params,
else:
defp maybe_add_old_member(subject_params, old_member) do
Map.put(subject_params, :old_role, String.upcase(to_string(old_member.role)))
end
@spec maybe_add_moderator(map(), Actor.t() | nil) :: map()
defp maybe_add_moderator(subject_params, nil), do: subject_params
defp maybe_add_moderator(subject_params, moderator) do
Map.put(
subject_params,
:moderator_preferred_username,

View file

@ -50,6 +50,14 @@ defmodule Mobilizon.Service.Activity.Renderer.Member do
dgettext("activity", "%{profile} added the member %{member}.", args)
end
defp text(:member_approved, args) do
dgettext("activity", "%{profile} approved the membership request from %{member}.", args)
end
defp text(:member_rejected, args) do
dgettext("activity", "%{profile} rejected the membership request from %{member}.", args)
end
defp text(:member_updated, args) do
dgettext("activity", "%{profile} updated the member %{member}.", args)
end

View file

@ -247,7 +247,7 @@ 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_hour ->
DateTime.utc_now()

View file

@ -46,13 +46,65 @@ defmodule Mobilizon.Web.Email.Member do
end
end
# Only send notification to local members
def send_notification_to_approved_member(%Member{actor: %Actor{user_id: nil}}), do: :ok
def send_notification_to_approved_member(%Member{
actor: %Actor{user_id: user_id},
parent: %Actor{} = group
}) do
with %User{email: email, locale: locale} <- Users.get_user!(user_id) do
Gettext.put_locale(locale)
subject =
gettext(
"Your membership request for group %{group} has been approved",
group: Actor.display_name(group)
)
Email.base_email(to: email, subject: subject)
|> assign(:locale, locale)
|> assign(:group, group)
|> assign(:subject, subject)
|> render(:group_membership_approval)
|> Email.Mailer.send_email_later()
:ok
end
end
# Only send notification to local members
def send_notification_to_removed_member(%Member{actor: %Actor{user_id: nil}}), do: :ok
# Member rejection
def send_notification_to_removed_member(%Member{
actor: %Actor{user_id: user_id},
parent: %Actor{} = group,
role: :rejected
role: :not_approved
}) do
with %User{email: email, locale: locale} <- Users.get_user!(user_id) do
Gettext.put_locale(locale)
subject =
gettext(
"Your membership request for group %{group} has been rejected",
group: Actor.display_name(group)
)
Email.base_email(to: email, subject: subject)
|> assign(:locale, locale)
|> assign(:group, group)
|> assign(:subject, subject)
|> render(:group_membership_rejection)
|> Email.Mailer.send_email_later()
:ok
end
end
def send_notification_to_removed_member(%Member{
actor: %Actor{user_id: user_id},
parent: %Actor{} = group
}) do
with %User{email: email, locale: locale} <- Users.get_user!(user_id) do
Gettext.put_locale(locale)
@ -60,7 +112,7 @@ defmodule Mobilizon.Web.Email.Member do
subject =
gettext(
"You have been removed from group %{group}",
group: group.name
group: Actor.display_name(group)
)
Email.base_email(to: email, subject: subject)

View file

@ -0,0 +1,69 @@
<!-- HERO -->
<tr>
<td bgcolor="#474467" align="center" style="padding: 0px 10px 0px 10px;">
<!--[if (gte mso 9)|(IE)]>
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
<tr>
<td align="center" valign="top" width="600">
<![endif]-->
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
<tr>
<td bgcolor="#ffffff" align="center" valign="top" style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;">
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext "You're in!" %>
</h1>
</td>
</tr>
</table>
<!--[if (gte mso 9)|(IE)]>
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
<!-- COPY BLOCK -->
<tr>
<td bgcolor="#E6E4F4" align="center" style="padding: 0px 10px 0px 10px;">
<!--[if (gte mso 9)|(IE)]>
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
<tr>
<td align="center" valign="top" width="600">
<![endif]-->
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
<!-- COPY -->
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<p style="margin: 0;">
<%= gettext("Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved.", group: Mobilizon.Actors.Actor.display_name(@group), link_start: "<a href=\"#{Routes.page_url(Mobilizon.Web.Endpoint, :actor, Mobilizon.Actors.Actor.preferred_username_and_domain(@group))}\">", link_end: "</a>") |> raw %>
</p>
</td>
</tr>
<!-- BULLETPROOF BUTTON -->
<tr>
<td bgcolor="#ffffff" align="left">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#ffffff" align="center" style="padding: 20px 30px 60px 30px;">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" style="border-radius: 3px;" bgcolor="#3C376E">
<a href={"#{ Routes.page_url(Mobilizon.Web.Endpoint, :actor, Mobilizon.Actors.Actor.preferred_username_and_domain(@group)) }"} target="_blank" style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #3C376E; display: inline-block;">
<%= gettext "View the group" %>
</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!--[if (gte mso 9)|(IE)]>
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>

View file

@ -0,0 +1,5 @@
<%= gettext "You're in!" %>
==
<%= gettext "Your membership request for group %{group} has been approved.", group: Mobilizon.Actors.Actor.display_name(@group) %>
<%= Routes.page_url(Mobilizon.Web.Endpoint, :actor, Mobilizon.Actors.Actor.preferred_username_and_domain(@group)) %>

View file

@ -0,0 +1,49 @@
<!-- HERO -->
<tr>
<td bgcolor="#474467" align="center" style="padding: 0px 10px 0px 10px;">
<!--[if (gte mso 9)|(IE)]>
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
<tr>
<td align="center" valign="top" width="600">
<![endif]-->
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
<tr>
<td bgcolor="#ffffff" align="center" valign="top" style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #3A384C; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; line-height: 48px;">
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
<%= gettext "Sorry, not this time!" %>
</h1>
</td>
</tr>
</table>
<!--[if (gte mso 9)|(IE)]>
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
<!-- COPY BLOCK -->
<tr>
<td bgcolor="#E6E4F4" align="center" style="padding: 0px 10px 0px 10px;">
<!--[if (gte mso 9)|(IE)]>
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
<tr>
<td align="center" valign="top" width="600">
<![endif]-->
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
<!-- COPY -->
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<p style="margin: 0;">
<%= gettext("Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected.", group: Mobilizon.Actors.Actor.display_name(@group), link_start: "<a href=\"#{Routes.page_url(Mobilizon.Web.Endpoint, :actor, Mobilizon.Actors.Actor.preferred_username_and_domain(@group))}\">", link_end: "</a>") |> raw %>
</p>
</td>
</tr>
</table>
<!--[if (gte mso 9)|(IE)]>
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>

View file

@ -0,0 +1,5 @@
<%= gettext "Sorry, not this time!" %>
==
<%= gettext "Your membership request for group %{group} has been rejected.", group: Mobilizon.Actors.Actor.display_name(@group) %>
<%= Routes.page_url(Mobilizon.Web.Endpoint, :actor, Mobilizon.Actors.Actor.preferred_username_and_domain(@group)) %>

View file

@ -89,7 +89,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -107,7 +107,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -143,7 +143,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -315,3 +315,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -324,3 +324,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1061,7 +1061,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1646,7 +1646,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr ""
@ -1655,3 +1655,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -547,7 +547,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -583,7 +584,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -818,12 +819,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1033,3 +1034,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -318,3 +318,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1037,7 +1037,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1622,7 +1622,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr ""
@ -1631,3 +1631,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -521,7 +521,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -557,7 +558,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -792,12 +793,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1007,3 +1008,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1235,7 +1235,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Salut i canya al forçut!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "T'han tret del grup %{group}"
@ -1878,7 +1878,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Ubicació"
@ -1887,3 +1887,50 @@ msgstr "Ubicació"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "T'han acceptat!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -522,7 +522,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -558,7 +559,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -793,12 +794,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1008,3 +1009,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -318,3 +318,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1037,7 +1037,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1622,7 +1622,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr ""
@ -1631,3 +1631,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -521,7 +521,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -557,7 +558,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -792,12 +793,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1007,3 +1008,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -97,7 +97,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} hat die Ressource %{resource} gelöscht."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr "%{profile} hat das Mitglied %{member} ausgeschlossen."
@ -115,7 +115,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr "%{profile} hat die Gruppe verlassen."
@ -153,7 +153,7 @@ msgid "%{profile} updated the group %{group}."
msgstr "%{profile} hat die Gruppe %{group} aktualisiert."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} hat das Mitglied %{member} aktualisiert."
@ -326,3 +326,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr "%{profile} hat das Mitglied %{member} aktualisiert."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1277,7 +1277,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Macht's gut und danke für den Fisch!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Sie wurden aus der Gruppe %{group} entfernt"
@ -1990,7 +1990,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Ort"
@ -1999,3 +1999,50 @@ msgstr "Ort"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Sie sind dabei!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -532,7 +532,8 @@ msgid "You are not a member of this group"
msgstr "Sie sind nicht Mitglied in dieser Gruppe"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Sie sind kein Moderator oder Admin für diese Gruppe"
@ -571,7 +572,7 @@ msgstr ""
"Teilnehmer sind, der die Veranstaltung erstellt"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Sie können sich nicht auf eine niedrigere Mitgliedsrolle für diese Gruppe "
@ -820,12 +821,12 @@ msgid "This invitation doesn't exist."
msgstr "Diese Einladung gibt es nicht."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Dieses Mitglied ist bereits abgelehnt worden."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "Sie haben nicht das Recht, dieses Mitglied zu entfernen."
@ -1037,3 +1038,18 @@ msgstr "Sie müssen eingeloggt sein, um einer Gruppe beizutreten"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Sie müssen eingeloggt sein, um eine Gruppe zu aktualisieren"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "Sie haben nicht das Recht, dieses Mitglied zu entfernen."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -1016,7 +1016,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1610,3 +1610,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1069,7 +1069,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1654,7 +1654,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr ""
@ -1663,3 +1663,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -525,7 +525,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -561,7 +562,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -796,12 +797,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1011,3 +1012,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -522,7 +522,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -558,7 +559,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -793,12 +794,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1008,3 +1009,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -97,7 +97,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} eliminado el recurso %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr "%{profile }miembro excluido %{member}."
@ -115,7 +115,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr "%{profile} movió el recurso %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr "%{profile} abandona el grupo."
@ -153,7 +153,7 @@ msgid "%{profile} updated the group %{group}."
msgstr "%{profile} actualizó el grupo %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} actualizado el miembro %{member}."
@ -329,3 +329,13 @@ msgstr "El post %{post} del grupo %{group} fue actualizado por %{profile}."
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr "El post %{post} del grupo %{group} fue actualizado por %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr "%{profile} actualizado el miembro %{member}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1248,7 +1248,7 @@ msgid "So long, and thanks for the fish!"
msgstr "¡Hasta luego y gracias por el pescado!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Ha sido eliminado del grupo %{group}"
@ -1949,7 +1949,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Ubicación"
@ -1958,3 +1958,50 @@ msgstr "Ubicación"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "¡Vas!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -528,7 +528,8 @@ msgid "You are not a member of this group"
msgstr "no eres un miembro de este grupo"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "No eres moderador ni administrador de este grupo"
@ -566,7 +567,7 @@ msgstr ""
"evento"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"No puede establecerse en un rol de miembro inferior para este grupo porque "
@ -812,12 +813,12 @@ msgid "This invitation doesn't exist."
msgstr "Esta invitación no existe."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Este miembro ya ha sido rechazado."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "No tiene derecho a eliminar este miembro."
@ -1035,3 +1036,18 @@ msgstr "Debes iniciar sesión para eliminar su cuenta"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Debes iniciar sesión para actualizar un grupo"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "No tiene derecho a eliminar este miembro."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -97,7 +97,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} poisti resurssin %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr "%{profile} hylkäsi jäsenen %{member}."
@ -115,7 +115,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr "%{profile} siirsi resurssin %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr "%{profile} poistui ryhmästä."
@ -151,7 +151,7 @@ msgid "%{profile} updated the group %{group}."
msgstr "%{profile} päivitti ryhmää %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} päivitti jäsentä %{member}."
@ -327,3 +327,13 @@ msgstr "Viestin %{post} ryhmästä %{group} julkaisi %{profile}."
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr "Viestin %{post} ryhmästä %{group} päivitti %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr "%{profile} päivitti jäsentä %{member}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1228,7 +1228,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Näkemiin ja kiitos kaloista!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Sinut on poistettu ryhmästä %{group}"
@ -1916,7 +1916,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Paikka"
@ -1925,3 +1925,50 @@ msgstr "Paikka"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Olet mukana!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -525,7 +525,8 @@ msgid "You are not a member of this group"
msgstr "Et ole ryhmän jäsen"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Et ole ryhmän moderaattori tai ylläpitäjä"
@ -562,7 +563,7 @@ msgstr ""
"Et voi poistua tapahtumasta, koska olet ainoa tapahtuman luonut osallistuja"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
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 "
@ -799,12 +800,12 @@ msgid "This invitation doesn't exist."
msgstr "Kutsua ei ole."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Jäsen on jo hylätty."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "Sinulla ei ole oikeutta poistaa jäsentä."
@ -1014,3 +1015,18 @@ msgstr "Voit liittyä ryhmään vain sisäänkirjautuneena"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Voit päivittää ryhmää vain sisäänkirjautuneena"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "Sinulla ei ole oikeutta poistaa jäsentä."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-06-30 12:15+0200\n"
"PO-Revision-Date: 2021-11-12 17:15+0100\n"
"Last-Translator: Thomas Citharel <thomas.citharel@framasoft.org>\n"
"Language-Team: French <https://weblate.framasoft.org/projects/mobilizon/activity/fr/>\n"
"Language: fr\n"
@ -18,312 +18,259 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Poedit 2.4.3\n"
"X-Generator: Poedit 3.0\n"
#, elixir-format
#: lib/service/activity/renderer/member.ex:38
#: lib/web/templates/email/activity/_member_activity_item.html.heex:19 lib/web/templates/email/activity/_member_activity_item.text.eex:12
#: lib/service/activity/renderer/member.ex:38 lib/web/templates/email/activity/_member_activity_item.html.heex:19
#: lib/web/templates/email/activity/_member_activity_item.text.eex:12
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.heex:26 lib/web/templates/email/activity/_member_activity_item.text.eex:17
#: lib/service/activity/renderer/member.ex:42 lib/web/templates/email/activity/_member_activity_item.html.heex:26
#: lib/web/templates/email/activity/_member_activity_item.text.eex:17
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.heex:4 lib/web/templates/email/activity/_member_activity_item.text.eex:1
#: lib/service/activity/renderer/member.ex:30 lib/web/templates/email/activity/_member_activity_item.html.heex:4
#: lib/web/templates/email/activity/_member_activity_item.text.eex:1
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.heex:11 lib/web/templates/email/activity/_member_activity_item.text.eex:6
#: lib/service/activity/renderer/member.ex:34 lib/web/templates/email/activity/_member_activity_item.html.heex:11
#: lib/web/templates/email/activity/_member_activity_item.text.eex:6
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.heex:40 lib/web/templates/email/activity/_member_activity_item.text.eex:27
#: lib/service/activity/renderer/member.ex:50 lib/web/templates/email/activity/_member_activity_item.html.heex:40
#: lib/web/templates/email/activity/_member_activity_item.text.eex:27
msgid "%{profile} added the member %{member}."
msgstr "%{profile} a ajouté le ou la membre %{membre}."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:65
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
#: lib/service/activity/renderer/discussion.ex:65 lib/web/templates/email/activity/_discussion_activity_item.html.heex: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}."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#: lib/service/activity/renderer/discussion.ex:25 lib/web/templates/email/activity/_discussion_activity_item.html.heex: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.heex:5 lib/web/templates/email/activity/_resource_activity_item.text.eex:2
#: lib/service/activity/renderer/resource.ex:24 lib/web/templates/email/activity/_resource_activity_item.html.heex:5
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:2
msgid "%{profile} created the folder %{resource}."
msgstr "%{profile} a créé le dossier %{resource}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.heex:4
#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
#: lib/web/templates/email/activity/_group_activity_item.html.heex:4 lib/web/templates/email/activity/_group_activity_item.text.eex:1
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.heex:20 lib/web/templates/email/activity/_resource_activity_item.text.eex:8
#: lib/service/activity/renderer/resource.ex:33 lib/web/templates/email/activity/_resource_activity_item.html.heex:20
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:8
msgid "%{profile} created the resource %{resource}."
msgstr "%{profile} a créé la resource %{resource}."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:75
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
#: lib/service/activity/renderer/discussion.ex:75 lib/web/templates/email/activity/_discussion_activity_item.html.heex: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.heex:103 lib/web/templates/email/activity/_resource_activity_item.text.eex:40
#: lib/service/activity/renderer/resource.ex:97 lib/web/templates/email/activity/_resource_activity_item.html.heex:103
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:40
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.heex:111 lib/web/templates/email/activity/_resource_activity_item.text.eex:45
#: lib/service/activity/renderer/resource.ex:106 lib/web/templates/email/activity/_resource_activity_item.html.heex:111
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:45
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.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
#: lib/service/activity/renderer/member.ex:66 lib/web/templates/email/activity/_member_activity_item.html.heex:56
#: lib/web/templates/email/activity/_member_activity_item.text.eex:39
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.heex:71 lib/web/templates/email/activity/_resource_activity_item.text.eex:28
#: lib/service/activity/renderer/resource.ex:76 lib/web/templates/email/activity/_resource_activity_item.html.heex:71
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:28
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.heex:86 lib/web/templates/email/activity/_resource_activity_item.text.eex:34
#: lib/service/activity/renderer/resource.ex:85 lib/web/templates/email/activity/_resource_activity_item.html.heex:86
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:34
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.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
#: lib/service/activity/renderer/member.ex:70 lib/web/templates/email/activity/_member_activity_item.html.heex:64
#: lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr "%{profile} a quitté le groupe."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:55
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
#: lib/service/activity/renderer/discussion.ex:55 lib/web/templates/email/activity/_discussion_activity_item.html.heex: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.heex:37 lib/web/templates/email/activity/_resource_activity_item.text.eex:14
#: lib/service/activity/renderer/resource.ex:45 lib/web/templates/email/activity/_resource_activity_item.html.heex:37
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:14
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.heex:53 lib/web/templates/email/activity/_resource_activity_item.text.eex:21
#: lib/service/activity/renderer/resource.ex:59 lib/web/templates/email/activity/_resource_activity_item.html.heex:53
#: lib/web/templates/email/activity/_resource_activity_item.text.eex:21
msgid "%{profile} renamed the resource from %{old_resource_title} to %{resource}."
msgstr "%{profile} a renommé la resource %{old_resource_title} en %{resource}."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:35
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#: lib/service/activity/renderer/discussion.ex:35 lib/web/templates/email/activity/_discussion_activity_item.html.heex: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.heex:19
#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
#: lib/web/templates/email/activity/_group_activity_item.html.heex:19 lib/web/templates/email/activity/_group_activity_item.text.eex:7
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.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
#: lib/service/activity/renderer/member.ex:62 lib/web/templates/email/activity/_member_activity_item.html.heex:48
#: lib/web/templates/email/activity/_member_activity_item.text.eex:33
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.heex:4 lib/web/templates/email/activity/_event_activity_item.text.eex:1
#: lib/service/activity/renderer/event.ex:23 lib/web/templates/email/activity/_event_activity_item.html.heex:4
#: lib/web/templates/email/activity/_event_activity_item.text.eex:1
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.heex:34 lib/web/templates/email/activity/_event_activity_item.text.eex:13
#: lib/service/activity/renderer/event.ex:43 lib/web/templates/email/activity/_event_activity_item.html.heex:34
#: lib/web/templates/email/activity/_event_activity_item.text.eex:13
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.heex:19 lib/web/templates/email/activity/_event_activity_item.text.eex:7
#: lib/service/activity/renderer/event.ex:33 lib/web/templates/email/activity/_event_activity_item.html.heex:19
#: lib/web/templates/email/activity/_event_activity_item.text.eex:7
msgid "The event %{event} was updated by %{profile}."
msgstr "L'événement %{event} a été mis à jour par %{profile}."
#, elixir-format
#: lib/web/templates/email/activity/_post_activity_item.html.heex:4
#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
#: lib/web/templates/email/activity/_post_activity_item.html.heex:4 lib/web/templates/email/activity/_post_activity_item.text.eex:1
msgid "The post %{post} was created by %{profile}."
msgstr "Le billet %{post} a été créé par %{profile}."
#, elixir-format
#: lib/web/templates/email/activity/_post_activity_item.html.heex:34
#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
#: lib/web/templates/email/activity/_post_activity_item.html.heex:34 lib/web/templates/email/activity/_post_activity_item.text.eex:13
msgid "The post %{post} was deleted by %{profile}."
msgstr "Le billet %{post} a été supprimé par %{profile}."
#, elixir-format
#: lib/web/templates/email/activity/_post_activity_item.html.heex:19
#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
#: lib/web/templates/email/activity/_post_activity_item.html.heex:19 lib/web/templates/email/activity/_post_activity_item.text.eex:7
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.heex:33 lib/web/templates/email/activity/_member_activity_item.text.eex:22
#: lib/service/activity/renderer/member.ex:46 lib/web/templates/email/activity/_member_activity_item.html.heex:33
#: lib/web/templates/email/activity/_member_activity_item.text.eex:22
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.heex:58 lib/web/templates/email/activity/_event_activity_item.text.eex:25
#: lib/service/activity/renderer/event.ex:63 lib/web/templates/email/activity/_event_activity_item.html.heex:58
#: lib/web/templates/email/activity/_event_activity_item.text.eex:25
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.heex:43 lib/web/templates/email/activity/_event_activity_item.text.eex:19
#: lib/service/activity/renderer/event.ex:54 lib/web/templates/email/activity/_event_activity_item.html.heex:43
#: lib/web/templates/email/activity/_event_activity_item.text.eex:19
msgid "%{profile} replied to a comment on the event %{event}."
msgstr "%{profile} a répondu à un commentaire sur l'événement %{event}."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.text.eex:27
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."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.heex:135
#: lib/web/templates/email/email_direct_activity.text.eex:23
#: lib/web/templates/email/email_direct_activity.html.heex:135 lib/web/templates/email/email_direct_activity.text.eex:23
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"
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.heex:44
#: lib/web/templates/email/email_direct_activity.html.heex:46 lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#: lib/web/templates/email/email_direct_activity.html.heex:44 lib/web/templates/email/email_direct_activity.html.heex:46
#: lib/web/templates/email/email_direct_activity.text.eex:6 lib/web/templates/email/email_direct_activity.text.eex:7
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é !"
#, elixir-format
#: lib/service/activity/renderer/renderer.ex:46
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.heex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/email_anonymous_activity.html.heex:41 lib/web/templates/email/email_anonymous_activity.text.eex:5
#: lib/service/activity/renderer/comment.ex:38 lib/web/templates/email/activity/_comment_activity_item.html.heex:19
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:7 lib/web/templates/email/email_anonymous_activity.html.heex:41
#: lib/web/templates/email/email_anonymous_activity.text.eex:5
msgid "%{profile} has posted an announcement under event %{event}."
msgstr "%{profile} a posté une annonce sous l'événement %{event}."
#, elixir-format
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.heex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#: lib/service/activity/renderer/comment.ex:24 lib/web/templates/email/activity/_comment_activity_item.html.heex:4
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:1
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr "%{profile} vous a mentionné dans un commentaire sous l'événement %{event}."
#, 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.heex:155
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}."
"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.heex:42
#: lib/web/templates/email/email_direct_activity.text.eex:5
#: lib/web/templates/email/email_direct_activity.html.heex:42 lib/web/templates/email/email_direct_activity.text.eex:5
msgid "Here's your weekly activity recap"
msgstr "Voici votre récapitulatif hebdomadaire d'activité"
#, elixir-format
#: lib/web/email/activity.ex:119 lib/web/email/activity.ex:140
msgid "Activity notification for %{instance}"
msgstr "Notification d'activité sur %{instance}"
#, elixir-format
#: lib/web/email/activity.ex:126
msgid "Daily activity recap for %{instance}"
msgstr "Récapitulatif quotidien d'activité sur %{instance}"
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.heex:40
#: lib/web/templates/email/email_direct_activity.text.eex:4
#: lib/web/templates/email/email_direct_activity.html.heex:40 lib/web/templates/email/email_direct_activity.text.eex:4
msgid "Here's your daily activity recap"
msgstr "Voici votre récapitulatif quotidien d'activité"
#, elixir-format
#: lib/web/email/activity.ex:133
msgid "Weekly activity recap for %{instance}"
msgstr "Récapitulatif hebdomadaire d'activité sur %{instance}"
#, elixir-format
#: lib/service/activity/renderer/comment.ex:66
#: lib/web/templates/email/activity/_comment_activity_item.html.heex:51 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#: lib/service/activity/renderer/comment.ex:66 lib/web/templates/email/activity/_comment_activity_item.html.heex:51
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:19
msgid "%{profile} has posted a new comment under your event %{event}."
msgstr "%{profile} a posté un nouveau commentaire sous votre événement %{event}."
#, elixir-format
#: lib/service/activity/renderer/comment.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.heex:36 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#: lib/service/activity/renderer/comment.ex:53 lib/web/templates/email/activity/_comment_activity_item.html.heex:36
#: lib/web/templates/email/activity/_comment_activity_item.text.eex:13
msgid "%{profile} has posted a new reply under your event %{event}."
msgstr "%{profile} a posté une nouvelle réponse sous votre événement %{event}."
#, elixir-format
#: lib/web/email/activity.ex:46
msgid "Announcement for your event %{event}"
msgstr "Annonce pour votre événement %{event}"
#, elixir-format
#: lib/service/activity/renderer/group.ex:23
msgid "The group %{group} was updated by %{profile}."
msgstr "Le groupe %{group} a été mis à jour par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/post.ex:47
msgid "The post %{post} from group %{group} was deleted by %{profile}."
msgstr "Le billet %{post} du groupe %{group} a été supprimé par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/post.ex:31
msgid "The post %{post} from group %{group} was published by %{profile}."
msgstr "Le billet %{post} du groupe %{group} a été publié par %{profile}."
#, elixir-format
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr "Le billet %{post} du groupe %{group} a été mis à jour par %{profile}."
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr "%{profile} a approuvé la demande d'adhésion de %{member}."
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr "%{profile} a rejeté la demande d'adhésion de %{member}."

View file

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-11-10 20:42+0100\n"
"PO-Revision-Date: 2021-11-12 17:13+0100\n"
"Last-Translator: Thomas Citharel <thomas.citharel@framasoft.org>\n"
"Language-Team: French <https://weblate.framasoft.org/projects/mobilizon/backend/fr/>\n"
"Language: fr\n"
@ -830,7 +830,7 @@ msgstr "Si vous pensez qu'il s'agit d'une erreur, vous pouvez contacter les admi
msgid "So long, and thanks for the fish!"
msgstr "Salut, et encore merci pour le poisson !"
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Vous avez été enlevé du groupe %{group}"
@ -1296,3 +1296,39 @@ msgstr "Nouvelle localisation :"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr "Nouvelle date de début :"
#: lib/web/templates/email/group_membership_rejection.html.heex:13 lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr "Désolé, pas cette fois !"
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr "Voir le groupe"
#: lib/web/templates/email/group_membership_approval.html.heex:13 lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Vous en êtes !"
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr "Votre demande d'adhésion pour le groupe %{group} a été acceptée"
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr "Votre demande d'adhésion pour le groupe %{group} a été rejetée"
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr "Votre demande d'adhésion pour le groupe %{group} a été rejetée."
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr "Votre demande d'adhésion pour le groupe %{link_start}<b>%{group}</b>%{link_end} a été rejetée."
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr "Votre demande d'adhésion pour le groupe %{group} a été approuvée."
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr "Votre demande d'adhésion pour le groupe %{link_start}<b>%{group}</b>%{link_end} a été approuvée."

View file

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-10-11 17:40+0200\n"
"PO-Revision-Date: 2021-11-12 17:14+0100\n"
"Last-Translator: Vincent Finance <linuxmario@linuxmario.net>\n"
"Language-Team: French <https://weblate.framasoft.org/projects/mobilizon/backend-errors/fr/>\n"
"Language: fr\n"
@ -96,921 +96,747 @@ msgstr "doit être supérieur ou égal à %{number}"
msgid "must be equal to %{number}"
msgstr "doit être égal à %{number}"
#, elixir-format
#: lib/graphql/resolvers/user.ex:107
msgid "Cannot refresh the token"
msgstr "Impossible de rafraîchir le jeton"
#, elixir-format
#: lib/graphql/resolvers/group.ex:245
msgid "Current profile is not a member of this group"
msgstr "Le profil actuel n'est pas un membre de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:249
msgid "Current profile is not an administrator of the selected group"
msgstr "Le profil actuel n'est pas un·e administrateur·ice du groupe sélectionné"
#, elixir-format
#: lib/graphql/resolvers/user.ex:593
msgid "Error while saving user settings"
msgstr "Erreur lors de la sauvegarde des paramètres utilisateur"
#, elixir-format
#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/group.ex:342
#: lib/graphql/resolvers/group.ex:391 lib/graphql/resolvers/member.ex:79
#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242 lib/graphql/resolvers/group.ex:274
#: lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/group.ex:342 lib/graphql/resolvers/group.ex:391
#: lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr "Groupe non trouvé"
#, elixir-format
#: lib/graphql/resolvers/group.ex:78 lib/graphql/resolvers/group.ex:82
msgid "Group with ID %{id} not found"
msgstr "Groupe avec l'ID %{id} non trouvé"
#, elixir-format
#: lib/graphql/resolvers/user.ex:85
msgid "Impossible to authenticate, either your email or password are invalid."
msgstr "Impossible de s'authentifier, votre adresse e-mail ou bien votre mot de passe sont invalides."
#, elixir-format
#: lib/graphql/resolvers/group.ex:308
msgid "Member not found"
msgstr "Membre non trouvé"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:94
msgid "No profile found for the moderator user"
msgstr "Aucun profil trouvé pour l'utilisateur modérateur"
#, elixir-format
#: lib/graphql/resolvers/user.ex:253
msgid "No user to validate with this email was found"
msgstr "Aucun·e utilisateur·ice à valider avec cet email n'a été trouvé·e"
#, elixir-format
#: lib/graphql/resolvers/person.ex:314 lib/graphql/resolvers/user.ex:278
msgid "No user with this email was found"
msgstr "Aucun·e utilisateur·ice avec cette adresse e-mail n'a été trouvé·e"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:32 lib/graphql/resolvers/participant.ex:210 lib/graphql/resolvers/person.ex:236
#: lib/graphql/resolvers/person.ex:353 lib/graphql/resolvers/person.ex:380 lib/graphql/resolvers/person.ex:397
#: lib/graphql/resolvers/person.ex:425 lib/graphql/resolvers/person.ex:440
#: lib/graphql/resolvers/feed_token.ex:28 lib/graphql/resolvers/participant.ex:32
#: lib/graphql/resolvers/participant.ex:210 lib/graphql/resolvers/person.ex:236 lib/graphql/resolvers/person.ex:353
#: lib/graphql/resolvers/person.ex:380 lib/graphql/resolvers/person.ex:397 lib/graphql/resolvers/person.ex:425
#: lib/graphql/resolvers/person.ex:440
msgid "Profile is not owned by authenticated user"
msgstr "Le profil n'est pas possédé par l'utilisateur connecté"
#, elixir-format
#: lib/graphql/resolvers/user.ex:156
msgid "Registrations are not open"
msgstr "Les inscriptions ne sont pas ouvertes"
#, elixir-format
#: lib/graphql/resolvers/user.ex:408
msgid "The current password is invalid"
msgstr "Le mot de passe actuel est invalid"
#, elixir-format
#: lib/graphql/resolvers/user.ex:451
msgid "The new email doesn't seem to be valid"
msgstr "La nouvelle adresse e-mail ne semble pas être valide"
#, elixir-format
#: lib/graphql/resolvers/user.ex:454
msgid "The new email must be different"
msgstr "La nouvelle adresse e-mail doit être différente"
#, elixir-format
#: lib/graphql/resolvers/user.ex:411
msgid "The new password must be different"
msgstr "Le nouveau mot de passe doit être différent"
#, elixir-format
#: lib/graphql/resolvers/user.ex:458 lib/graphql/resolvers/user.ex:520
#: lib/graphql/resolvers/user.ex:523
#: lib/graphql/resolvers/user.ex:458 lib/graphql/resolvers/user.ex:520 lib/graphql/resolvers/user.ex:523
msgid "The password provided is invalid"
msgstr "Le mot de passe fourni est invalide"
#, elixir-format
#: lib/graphql/resolvers/user.ex:415
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr ""
"Le mot de passe que vous avez choisi est trop court. Merci de vous assurer que votre mot de passe contienne au moins "
"6 caractères."
#, elixir-format
#: lib/graphql/resolvers/user.ex:274
msgid "This user can't reset their password"
msgstr "Cet·te utilisateur·ice ne peut pas réinitialiser son mot de passe"
#, elixir-format
#: lib/graphql/resolvers/user.ex:81
msgid "This user has been disabled"
msgstr "Cet·te utilisateur·ice a été désactivé·e"
#, elixir-format
#: lib/graphql/resolvers/user.ex:232 lib/graphql/resolvers/user.ex:237
msgid "Unable to validate user"
msgstr "Impossible de valider l'utilisateur·ice"
#, elixir-format
#: lib/graphql/resolvers/user.ex:501
msgid "User already disabled"
msgstr "L'utilisateur·ice est déjà désactivé·e"
#, elixir-format
#: lib/graphql/resolvers/user.ex:568
msgid "User requested is not logged-in"
msgstr "L'utilisateur·ice demandé·e n'est pas connecté·e"
#, elixir-format
#: lib/graphql/resolvers/group.ex:280
msgid "You are already a member of this group"
msgstr "Vous êtes déjà membre de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:315
msgid "You can't leave this group because you are the only administrator"
msgstr "Vous ne pouvez pas quitter ce groupe car vous en êtes le ou la seul·e administrateur·ice"
#, elixir-format
#: lib/graphql/resolvers/group.ex:277
msgid "You cannot join this group"
msgstr "Vous ne pouvez pas rejoindre ce groupe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:112
msgid "You may not list groups unless moderator."
msgstr "Vous ne pouvez pas lister les groupes sauf à être modérateur·ice."
#, elixir-format
#: lib/graphql/resolvers/user.ex:466
msgid "You need to be logged-in to change your email"
msgstr "Vous devez être connecté·e pour changer votre adresse e-mail"
#, elixir-format
#: lib/graphql/resolvers/user.ex:423
msgid "You need to be logged-in to change your password"
msgstr "Vous devez être connecté·e pour changer votre mot de passe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:254
msgid "You need to be logged-in to delete a group"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
#, elixir-format
#: lib/graphql/resolvers/user.ex:528
msgid "You need to be logged-in to delete your account"
msgstr "Vous devez être connecté·e pour supprimer votre compte"
#, elixir-format
#: lib/graphql/resolvers/group.ex:285
msgid "You need to be logged-in to join a group"
msgstr "Vous devez être connecté·e pour rejoindre un groupe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:320
msgid "You need to be logged-in to leave a group"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:218
msgid "You need to be logged-in to update a group"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
#, elixir-format
#: lib/graphql/resolvers/user.ex:112
msgid "You need to have an existing token to get a refresh token"
msgstr "Vous devez avoir un jeton existant pour obtenir un jeton de rafraîchissement"
#, elixir-format
#: lib/graphql/resolvers/user.ex:256 lib/graphql/resolvers/user.ex:281
msgid "You requested again a confirmation email too soon"
msgstr "Vous avez à nouveau demandé un email de confirmation trop vite"
#, elixir-format
#: lib/graphql/resolvers/user.ex:159
msgid "Your email is not on the allowlist"
msgstr "Votre adresse e-mail n'est pas sur la liste d'autorisations"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:100
msgid "Error while performing background task"
msgstr "Erreur lors de l'exécution d'une tâche d'arrière-plan"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:32
msgid "No profile found with this ID"
msgstr "Aucun profil trouvé avec cet ID"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:61 lib/graphql/resolvers/actor.ex:97
msgid "No remote profile found with this ID"
msgstr "Aucun profil distant trouvé avec cet ID"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:72
msgid "Only moderators and administrators can suspend a profile"
msgstr "Seul·es les modérateur·ice et les administrateur·ices peuvent suspendre un profil"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:105
msgid "Only moderators and administrators can unsuspend a profile"
msgstr "Seul·es les modérateur·ice et les administrateur·ices peuvent annuler la suspension d'un profil"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:29
msgid "Only remote profiles may be refreshed"
msgstr "Seuls les profils distants peuvent être rafraîchis"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:64
msgid "Profile already suspended"
msgstr "Le profil est déjà suspendu"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:96
msgid "A valid email is required by your instance"
msgstr "Une adresse e-mail valide est requise par votre instance"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:90
#: lib/graphql/resolvers/participant.ex:143
#: lib/graphql/resolvers/participant.ex:90 lib/graphql/resolvers/participant.ex:143
msgid "Anonymous participation is not enabled"
msgstr "La participation anonyme n'est pas activée"
#, elixir-format
#: lib/graphql/resolvers/person.ex:210
msgid "Cannot remove the last administrator of a group"
msgstr "Impossible de supprimer le ou la dernier·ère administrateur·ice d'un groupe"
#, elixir-format
#: lib/graphql/resolvers/person.ex:207
msgid "Cannot remove the last identity of a user"
msgstr "Impossible de supprimer le dernier profil d'un·e utilisateur·ice"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:126
msgid "Comment is already deleted"
msgstr "Le commentaire est déjà supprimé"
#, elixir-format
#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:69
msgid "Discussion not found"
msgstr "Discussion non trouvée"
#, elixir-format
#: lib/graphql/resolvers/report.ex:63 lib/graphql/resolvers/report.ex:82
msgid "Error while saving report"
msgstr "Erreur lors de la sauvegarde du signalement"
#, elixir-format
#: lib/graphql/resolvers/report.ex:102
msgid "Error while updating report"
msgstr "Erreur lors de la mise à jour du signalement"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:131
msgid "Event id not found"
msgstr "ID de l'événement non trouvé"
#, elixir-format
#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:360
#: lib/graphql/resolvers/event.ex:412
#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:360 lib/graphql/resolvers/event.ex:412
msgid "Event not found"
msgstr "Événement non trouvé"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:87
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:155
#: lib/graphql/resolvers/participant.ex:336
#: lib/graphql/resolvers/participant.ex:87 lib/graphql/resolvers/participant.ex:128
#: lib/graphql/resolvers/participant.ex:155 lib/graphql/resolvers/participant.ex:336
msgid "Event with this ID %{id} doesn't exist"
msgstr "L'événement avec cet ID %{id} n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:103
msgid "Internal Error"
msgstr "Erreur interne"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:219
msgid "No discussion with ID %{id}"
msgstr "Aucune discussion avec l'ID %{id}"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:80 lib/graphql/resolvers/todos.ex:107
#: lib/graphql/resolvers/todos.ex:179 lib/graphql/resolvers/todos.ex:208 lib/graphql/resolvers/todos.ex:237
#: lib/graphql/resolvers/todos.ex:80 lib/graphql/resolvers/todos.ex:107 lib/graphql/resolvers/todos.ex:179
#: lib/graphql/resolvers/todos.ex:208 lib/graphql/resolvers/todos.ex:237
msgid "No profile found for user"
msgstr "Aucun profil trouvé pour l'utilisateur modérateur"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:64
msgid "No such feed token"
msgstr "Aucun jeton de flux correspondant"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:259
msgid "Participant already has role %{role}"
msgstr "Le ou la participant·e a déjà le rôle %{role}"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:187
#: lib/graphql/resolvers/participant.ex:220 lib/graphql/resolvers/participant.ex:263
#: lib/graphql/resolvers/participant.ex:187 lib/graphql/resolvers/participant.ex:220
#: lib/graphql/resolvers/participant.ex:263
msgid "Participant not found"
msgstr "Participant·e non trouvé·e"
#, elixir-format
#: lib/graphql/resolvers/person.ex:32
msgid "Person with ID %{id} not found"
msgstr "Personne avec l'ID %{id} non trouvé"
#, elixir-format
#: lib/graphql/resolvers/person.ex:56
msgid "Person with username %{username} not found"
msgstr "Personne avec le nom %{name} non trouvé"
#, elixir-format
#: lib/graphql/resolvers/post.ex:169 lib/graphql/resolvers/post.ex:203
msgid "Post ID is not a valid ID"
msgstr "L'ID du billet n'est pas un ID valide"
#, elixir-format
#: lib/graphql/resolvers/post.ex:172 lib/graphql/resolvers/post.ex:206
msgid "Post doesn't exist"
msgstr "Le billet n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/member.ex:82
msgid "Profile invited doesn't exist"
msgstr "Le profil invité n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
msgid "Profile is already a member of this group"
msgstr "Ce profil est déjà membre de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175
#: lib/graphql/resolvers/post.ex:209 lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132
#: lib/graphql/resolvers/resource.ex:165 lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58
#: lib/graphql/resolvers/todos.ex:83 lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182
#: lib/graphql/resolvers/todos.ex:214 lib/graphql/resolvers/todos.ex:246
#: lib/graphql/resolvers/post.ex:133 lib/graphql/resolvers/post.ex:175 lib/graphql/resolvers/post.ex:209
#: lib/graphql/resolvers/resource.ex:90 lib/graphql/resolvers/resource.ex:132 lib/graphql/resolvers/resource.ex:165
#: lib/graphql/resolvers/resource.ex:199 lib/graphql/resolvers/todos.ex:58 lib/graphql/resolvers/todos.ex:83
#: lib/graphql/resolvers/todos.ex:110 lib/graphql/resolvers/todos.ex:182 lib/graphql/resolvers/todos.ex:214
#: lib/graphql/resolvers/todos.ex:246
msgid "Profile is not member of group"
msgstr "Le profil n'est pas un·e membre du groupe"
#, elixir-format
#: lib/graphql/resolvers/actor.ex:67 lib/graphql/resolvers/person.ex:233
msgid "Profile not found"
msgstr "Profile non trouvé"
#, elixir-format
#: lib/graphql/resolvers/report.ex:40
msgid "Report not found"
msgstr "Groupe non trouvé"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:169 lib/graphql/resolvers/resource.ex:196
msgid "Resource doesn't exist"
msgstr "La ressource n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:124
msgid "The event has already reached its maximum capacity"
msgstr "L'événement a déjà atteint sa capacité maximale"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:282
msgid "This token is invalid"
msgstr "Ce jeton est invalide"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:176 lib/graphql/resolvers/todos.ex:243
msgid "Todo doesn't exist"
msgstr "Ce todo n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/todos.ex:77 lib/graphql/resolvers/todos.ex:211
#: lib/graphql/resolvers/todos.ex:240
#: lib/graphql/resolvers/todos.ex:77 lib/graphql/resolvers/todos.ex:211 lib/graphql/resolvers/todos.ex:240
msgid "Todo list doesn't exist"
msgstr "Cette todo-liste n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:73
msgid "Token does not exist"
msgstr "Ce jeton n'existe pas"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:67 lib/graphql/resolvers/feed_token.ex:70
msgid "Token is not a valid UUID"
msgstr "Ce jeton n'est pas un UUID valide"
#, elixir-format
#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:458
msgid "User not found"
msgstr "Utilisateur·ice non trouvé·e"
#, elixir-format
#: lib/graphql/resolvers/person.ex:310
msgid "You already have a profile for this user"
msgstr "Vous avez déjà un profil pour cet utilisateur"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:134
msgid "You are already a participant of this event"
msgstr "Vous êtes déjà un·e participant·e à cet événement"
#, elixir-format
#: lib/graphql/resolvers/member.ex:85
msgid "You are not a member of this group"
msgstr "Vous n'êtes pas membre de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171 lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Vous n'êtes pas administrateur·ice ou modérateur·ice de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:59
msgid "You are not allowed to create a comment if not connected"
msgstr "Vous n'êtes pas autorisé·e à créer un commentaire si non connecté·e"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:41
msgid "You are not allowed to create a feed token if not connected"
msgstr "Vous n'êtes pas autorisé·e à créer un jeton de flux si non connecté·e"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:134
msgid "You are not allowed to delete a comment if not connected"
msgstr "Vous n'êtes pas autorisé·e à supprimer un commentaire si non connecté·e"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:82
msgid "You are not allowed to delete a feed token if not connected"
msgstr "Vous n'êtes pas autorisé·e à supprimer un jeton de flux si non connecté·e"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:93
msgid "You are not allowed to update a comment if not connected"
msgstr "Vous n'êtes pas autorisé·e à mettre à jour un commentaire si non connecté·e"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:181
#: lib/graphql/resolvers/participant.ex:214
#: lib/graphql/resolvers/participant.ex:181 lib/graphql/resolvers/participant.ex:214
msgid "You can't leave event because you're the only event creator participant"
msgstr "Vous ne pouvez pas quitter cet événement car vous en êtes le ou la seule créateur·ice participant"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Vous ne pouvez pas vous définir avec un rôle de membre inférieur pour ce groupe car vous en êtes le ou la seul·e "
"administrateur·ice"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:122
msgid "You cannot delete this comment"
msgstr "Vous ne pouvez pas supprimer ce commentaire"
#, elixir-format
#: lib/graphql/resolvers/event.ex:408
msgid "You cannot delete this event"
msgstr "Vous ne pouvez pas supprimer cet événement"
#, elixir-format
#: lib/graphql/resolvers/member.ex:88
msgid "You cannot invite to this group"
msgstr "Vous ne pouvez pas rejoindre ce groupe"
#, elixir-format
#: lib/graphql/resolvers/feed_token.ex:76
msgid "You don't have permission to delete this token"
msgstr "Vous n'avez pas la permission de supprimer ce jeton"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:54
msgid "You need to be logged-in and a moderator to list action logs"
msgstr "Vous devez être connecté·e et une modérateur·ice pour lister les journaux de modération"
#, elixir-format
#: lib/graphql/resolvers/report.ex:28
msgid "You need to be logged-in and a moderator to list reports"
msgstr "Vous devez être connecté·e et une modérateur·ice pour lister les signalements"
#, elixir-format
#: lib/graphql/resolvers/report.ex:107
msgid "You need to be logged-in and a moderator to update a report"
msgstr "Vous devez être connecté·e et une modérateur·ice pour modifier un signalement"
#, elixir-format
#: lib/graphql/resolvers/report.ex:45
msgid "You need to be logged-in and a moderator to view a report"
msgstr "Vous devez être connecté·e pour et une modérateur·ice pour visionner un signalement"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:255
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr "Vous devez être connecté·e et un·e administrateur·ice pour accéder aux paramètres administrateur"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:239
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr "Vous devez être connecté·e et un·e administrateur·ice pour accéder aux panneau de statistiques"
#, elixir-format
#: lib/graphql/resolvers/admin.ex:281
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr "Vous devez être connecté·e et un·e administrateur·ice pour sauvegarder les paramètres administrateur"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:84
msgid "You need to be logged-in to access discussions"
msgstr "Vous devez être connecté·e pour accéder aux discussions"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:96
msgid "You need to be logged-in to access resources"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
#, elixir-format
#: lib/graphql/resolvers/event.ex:318
msgid "You need to be logged-in to create events"
msgstr "Vous devez être connecté·e pour créer des événements"
#, elixir-format
#: lib/graphql/resolvers/post.ex:141
msgid "You need to be logged-in to create posts"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#, elixir-format
#: lib/graphql/resolvers/report.ex:79
msgid "You need to be logged-in to create reports"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:137
msgid "You need to be logged-in to create resources"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#, elixir-format
#: lib/graphql/resolvers/event.ex:417
msgid "You need to be logged-in to delete an event"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
#, elixir-format
#: lib/graphql/resolvers/post.ex:214
msgid "You need to be logged-in to delete posts"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:204
msgid "You need to be logged-in to delete resources"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:108
msgid "You need to be logged-in to join an event"
msgstr "Vous devez être connecté·e pour rejoindre un événement"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:225
msgid "You need to be logged-in to leave an event"
msgstr "Vous devez être connecté·e pour quitter un groupe"
#, elixir-format
#: lib/graphql/resolvers/event.ex:374
msgid "You need to be logged-in to update an event"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
#, elixir-format
#: lib/graphql/resolvers/post.ex:180
msgid "You need to be logged-in to update posts"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:174
msgid "You need to be logged-in to update resources"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:233
msgid "You need to be logged-in to view a resource preview"
msgstr "Vous devez être connecté·e pour supprimer un groupe"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:129
msgid "Parent resource doesn't belong to this group"
msgstr "La ressource parente n'appartient pas à ce groupe"
#, elixir-format
#: lib/mobilizon/users/user.ex:114
msgid "The chosen password is too short."
msgstr "Le mot de passe choisi est trop court."
#, elixir-format
#: lib/mobilizon/users/user.ex:142
msgid "The registration token is already in use, this looks like an issue on our side."
msgstr "Le jeton d'inscription est déjà utilisé, cela ressemble à un problème de notre côté."
#, elixir-format
#: lib/mobilizon/users/user.ex:108
msgid "This email is already used."
msgstr "Cette adresse e-mail est déjà utilisée."
#, elixir-format
#: lib/graphql/error.ex:97
msgid "Post not found"
msgstr "Billet non trouvé"
#, elixir-format
#: lib/graphql/error.ex:84
msgid "Invalid arguments passed"
msgstr "Paramètres fournis invalides"
#, elixir-format
#: lib/graphql/error.ex:90
msgid "Invalid credentials"
msgstr "Identifiants invalides"
#, elixir-format
#: lib/graphql/error.ex:88
msgid "Reset your password to login"
msgstr "Réinitialiser votre mot de passe pour vous connecter"
#, elixir-format
#: lib/graphql/error.ex:95 lib/graphql/error.ex:100
msgid "Resource not found"
msgstr "Ressource non trouvée"
#, elixir-format
#: lib/graphql/error.ex:102
msgid "Something went wrong"
msgstr "Quelque chose s'est mal passé"
#, elixir-format
#: lib/graphql/error.ex:83
msgid "Unknown Resource"
msgstr "Ressource inconnue"
#, elixir-format
#: lib/graphql/error.ex:93
msgid "You don't have permission to do this"
msgstr "Vous n'avez pas la permission de faire ceci"
#, elixir-format
#: lib/graphql/error.ex:85
msgid "You need to be logged in"
msgstr "Vous devez être connecté·e"
#, elixir-format
#: lib/graphql/resolvers/member.ex:116
msgid "You can't accept this invitation with this profile."
msgstr "Vous ne pouvez pas accepter cette invitation avec ce profil."
#, elixir-format
#: lib/graphql/resolvers/member.ex:137
msgid "You can't reject this invitation with this profile."
msgstr "Vous ne pouvez pas rejeter cette invitation avec ce profil."
#, elixir-format
#: lib/graphql/resolvers/media.ex:71
msgid "File doesn't have an allowed MIME type."
msgstr "Le fichier n'a pas un type MIME autorisé."
#, elixir-format
#: lib/graphql/resolvers/group.ex:213
msgid "Profile is not administrator for the group"
msgstr "Le profil n'est pas administrateur·ice pour le groupe"
#, elixir-format
#: lib/graphql/resolvers/event.ex:363
msgid "You can't edit this event."
msgstr "Vous ne pouvez pas éditer cet événement."
#, elixir-format
#: lib/graphql/resolvers/event.ex:366
msgid "You can't attribute this event to this profile."
msgstr "Vous ne pouvez pas attribuer cet événement à ce profil."
#, elixir-format
#: lib/graphql/resolvers/member.ex:140
msgid "This invitation doesn't exist."
msgstr "Cette invitation n'existe pas."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Ce·tte membre a déjà été rejetté·e."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "Vous n'avez pas les droits pour supprimer ce·tte membre."
#, elixir-format
#: lib/mobilizon/actors/actor.ex:350
msgid "This username is already taken."
msgstr "Cet identifiant est déjà pris."
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:81
msgid "You must provide either an ID or a slug to access a discussion"
msgstr "Vous devez fournir un ID ou bien un slug pour accéder à une discussion"
#, elixir-format
#: lib/graphql/resolvers/event.ex:313
msgid "Organizer profile is not owned by the user"
msgstr "Le profil de l'organisateur·ice n'appartient pas à l'utilisateur·ice"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:93
msgid "Profile ID provided is not the anonymous profile one"
msgstr "L'ID du profil fourni n'est pas celui du profil anonyme"
#, elixir-format
#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201 lib/graphql/resolvers/person.ex:148
#: lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
msgid "The provided picture is too heavy"
msgstr "L'image fournie est trop lourde"
#, elixir-format
#: lib/web/views/utils.ex:34
msgid "Index file not found. You need to recompile the front-end."
msgstr "Fichier d'index non trouvé. Vous devez recompiler le front-end."
#, elixir-format
#: lib/graphql/resolvers/resource.ex:126
msgid "Error while creating resource"
msgstr "Erreur lors de la création de la resource"
#, elixir-format
#: lib/graphql/resolvers/user.ex:484
msgid "Invalid activation token"
msgstr "Jeton d'activation invalide"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:223
msgid "Unable to fetch resource details from this URL."
msgstr "Impossible de récupérer les détails de la ressource depuis cette URL."
#, elixir-format
#: lib/graphql/resolvers/event.ex:164 lib/graphql/resolvers/participant.ex:253
#: lib/graphql/resolvers/participant.ex:328
#: lib/graphql/resolvers/event.ex:164 lib/graphql/resolvers/participant.ex:253 lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr "Le profil modérateur fourni n'a pas de permissions sur cet événement"
#, elixir-format
#: lib/graphql/resolvers/event.ex:299
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr "Le profil de l'organisateur⋅ice n'a pas la permission de créer un événement au nom de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/event.ex:354
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr "Ce profil n'a pas la permission de mettre à jour un événement au nom du groupe"
#, elixir-format
#: lib/graphql/resolvers/user.ex:163
msgid "Your e-mail has been denied registration or uses a disallowed e-mail provider"
msgstr "Votre adresse e-mail a été refusée à l'inscription ou bien utilise un fournisseur d'e-mail interdit"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:129
msgid "Comment not found"
msgstr "Commentaire non trouvé"
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:123
msgid "Error while creating a discussion"
msgstr "Erreur lors de la création de la discussion"
#, elixir-format
#: lib/graphql/resolvers/user.ex:607
msgid "Error while updating locale"
msgstr "Erreur lors de la mise à jour des options linguistiques"
#, elixir-format
#: lib/graphql/resolvers/person.ex:307
msgid "Error while uploading pictures"
msgstr "Erreur lors du téléversement des images"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:190
msgid "Failed to leave the event"
msgstr "Impossible de quitter l'événement"
#, elixir-format
#: lib/graphql/resolvers/group.ex:209
msgid "Failed to update the group"
msgstr "Impossible de mettre à jour le groupe"
#, elixir-format
#: lib/graphql/resolvers/user.ex:448
msgid "Failed to update user email"
msgstr "Impossible de mettre à jour l'adresse e-mail de utilisateur"
#, elixir-format
#: lib/graphql/resolvers/user.ex:480
msgid "Failed to validate user email"
msgstr "Impossible de valider l'adresse e-mail de l'utilisateur·ice"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:146
msgid "The anonymous actor ID is invalid"
msgstr "L'ID de l'acteur anonyme est invalide"
#, elixir-format
#: lib/graphql/resolvers/resource.ex:162
msgid "Unknown error while updating resource"
msgstr "Erreur inconnue lors de la mise à jour de la resource"
#, elixir-format
#: lib/graphql/resolvers/comment.ex:84
msgid "You are not the comment creator"
msgstr "Vous n'êtes pas le ou la createur⋅ice du commentaire"
#, elixir-format
#: lib/graphql/resolvers/user.ex:405
msgid "You cannot change your password."
msgstr "Vous ne pouvez pas changer votre mot de passe."
#, elixir-format
#: lib/graphql/resolvers/participant.ex:321
msgid "Format not supported"
msgstr "Format non supporté"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:305
msgid "A dependency needed to export to %{format} is not installed"
msgstr "Une dépendance nécessaire pour exporter en %{format} n'est pas installée"
#, elixir-format
#: lib/graphql/resolvers/participant.ex:313
msgid "An error occured while saving export"
msgstr "Une erreur est survenue lors de l'enregistrement de l'export"
#, elixir-format
#: lib/web/controllers/export_controller.ex:30
msgid "Export to format %{format} is not enabled on this instance"
msgstr "L'export au format %{format} n'est pas activé sur cette instance"
#, elixir-format
#: lib/graphql/resolvers/group.ex:165
msgid "Only admins can create groups"
msgstr "Seul⋅es les administrateur⋅ices peuvent créer des groupes"
#, elixir-format
#: lib/graphql/resolvers/event.ex:306
msgid "Only groups can create events"
msgstr "Seuls les groupes peuvent créer des événements"
#, elixir-format
#: lib/graphql/resolvers/event.ex:292
msgid "Unknown error while creating event"
msgstr "Erreur inconnue lors de la création de l'événement"
#, elixir-format
#: lib/graphql/resolvers/user.ex:461
msgid "User cannot change email"
msgstr "L'utilisateur ne peut changer son adresse e-mail"
#, elixir-format
#: lib/graphql/resolvers/group.ex:364
msgid "Follow does not match your account"
msgstr ""
msgstr "L'abonnement ne correspond pas à votre compte"
#, elixir-format
#: lib/graphql/resolvers/group.ex:368
msgid "Follow not found"
msgstr ""
msgstr "Abonnement non trouvé"
#, elixir-format
#: lib/graphql/resolvers/user.ex:327
msgid "Profile with username %{username} not found"
msgstr "Personne avec le nom %{name} non trouvé"
#, elixir-format
#: lib/graphql/resolvers/user.ex:322
msgid "This profile does not belong to you"
msgstr ""
msgstr "Ce profil ne vous appartient pas"
#, elixir-format
#: lib/graphql/resolvers/group.ex:338
msgid "You are already following this group"
msgstr ""
msgstr "Vous êtes déjà membre de ce groupe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:347
msgid "You need to be logged-in to follow a group"
msgstr "Vous devez être connecté·e pour rejoindre un groupe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:396
msgid "You need to be logged-in to unfollow a group"
msgstr "Vous devez être connecté·e pour rejoindre un groupe"
#, elixir-format
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Vous devez être connecté·e pour mettre à jour un groupe"
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr "Ce membre n'existe pas"
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "Vous n'avez pas les droits pour supprimer ce·tte membre."
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr "Vous devez être connecté⋅e pour supprimer un⋅e membre"

View file

@ -24,209 +24,209 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here as no
## effect: edit them in PO (.po) files instead.
#, elixir-format
#: lib/service/activity/renderer/member.ex:38
#: lib/web/templates/email/activity/_member_activity_item.html.heex:19 lib/web/templates/email/activity/_member_activity_item.text.eex:12
#, elixir-format
msgid "%{member} accepted the invitation to join the group."
msgstr "Ghabh %{member} ris a bhallrachd sa bhuidheann."
#, elixir-format
#: lib/service/activity/renderer/member.ex:42
#: lib/web/templates/email/activity/_member_activity_item.html.heex:26 lib/web/templates/email/activity/_member_activity_item.text.eex:17
#, elixir-format
msgid "%{member} rejected the invitation to join the group."
msgstr "Dhiùlt %{member} a bhallrachd sa bhuidheann."
#, elixir-format
#: lib/service/activity/renderer/member.ex:30
#: lib/web/templates/email/activity/_member_activity_item.html.heex:4 lib/web/templates/email/activity/_member_activity_item.text.eex:1
#, elixir-format
msgid "%{member} requested to join the group."
msgstr "Dhiarr %{member} ballrachd sa bhuidheann."
#, elixir-format
#: lib/service/activity/renderer/member.ex:34
#: lib/web/templates/email/activity/_member_activity_item.html.heex:11 lib/web/templates/email/activity/_member_activity_item.text.eex:6
#, elixir-format
msgid "%{member} was invited by %{profile}."
msgstr "Fhuair %{member} cuireadh o %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:50
#: lib/web/templates/email/activity/_member_activity_item.html.heex:40 lib/web/templates/email/activity/_member_activity_item.text.eex:27
#, elixir-format
msgid "%{profile} added the member %{member}."
msgstr "Chuir %{profile} am ball %{member} ris."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:65
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:46 lib/web/templates/email/activity/_discussion_activity_item.text.eex:19
#, elixir-format
msgid "%{profile} archived the discussion %{discussion}."
msgstr "Chuir %{profile} an deasbad %{discussion} san tasg-lann."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:25
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:4 lib/web/templates/email/activity/_discussion_activity_item.text.eex:1
#, elixir-format
msgid "%{profile} created the discussion %{discussion}."
msgstr "Chruthaich %{profile} an deasbad %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:24
#: lib/web/templates/email/activity/_resource_activity_item.html.heex:5 lib/web/templates/email/activity/_resource_activity_item.text.eex:2
#, elixir-format
msgid "%{profile} created the folder %{resource}."
msgstr "Chruthaich %{profile} am pasgan %{resource}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.heex:4
#: lib/web/templates/email/activity/_group_activity_item.text.eex:1
#, elixir-format
msgid "%{profile} created the group %{group}."
msgstr "Chruthaich %{profile} am buidheann %{group}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:33
#: lib/web/templates/email/activity/_resource_activity_item.html.heex:20 lib/web/templates/email/activity/_resource_activity_item.text.eex:8
#, elixir-format
msgid "%{profile} created the resource %{resource}."
msgstr "Chruthaich %{profile} an goireas %{resource}."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:75
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:60 lib/web/templates/email/activity/_discussion_activity_item.text.eex:25
#, elixir-format
msgid "%{profile} deleted the discussion %{discussion}."
msgstr "Sguab %{profile} às an deasbad %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:97
#: lib/web/templates/email/activity/_resource_activity_item.html.heex:103 lib/web/templates/email/activity/_resource_activity_item.text.eex:40
#, elixir-format
msgid "%{profile} deleted the folder %{resource}."
msgstr "Sguab %{profile} às am pasgan %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:106
#: lib/web/templates/email/activity/_resource_activity_item.html.heex:111 lib/web/templates/email/activity/_resource_activity_item.text.eex:45
#, elixir-format
msgid "%{profile} deleted the resource %{resource}."
msgstr "Sguab %{profile} às an goireas %{resource}."
#: lib/service/activity/renderer/member.ex:58
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
#, elixir-format
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr "Dhùin %{profile} am ball %{member} a-mach."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:76
#: lib/web/templates/email/activity/_resource_activity_item.html.heex:71 lib/web/templates/email/activity/_resource_activity_item.text.eex:28
#, elixir-format
msgid "%{profile} moved the folder %{resource}."
msgstr "Ghluais %{profile} am pasgan %{resource}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:85
#: lib/web/templates/email/activity/_resource_activity_item.html.heex:86 lib/web/templates/email/activity/_resource_activity_item.text.eex:34
#, elixir-format
msgid "%{profile} moved the resource %{resource}."
msgstr "Ghluais %{profile} an goireas %{resource}."
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
#, elixir-format
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr "Dhfhàg %{profile} am buidheann."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:55
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:32 lib/web/templates/email/activity/_discussion_activity_item.text.eex:13
#, elixir-format
msgid "%{profile} renamed the discussion %{discussion}."
msgstr "Thug %{profile} ainm ùr air %{discussion}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:45
#: lib/web/templates/email/activity/_resource_activity_item.html.heex: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 "Thug %{profile} %{resource} air a phasgan %{old_resource_title}."
#, elixir-format
#: lib/service/activity/renderer/resource.ex:59
#: lib/web/templates/email/activity/_resource_activity_item.html.heex: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 "Thug %{profile} %{resource} air a ghoireas %{old_resource_title}."
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:35
#: lib/web/templates/email/activity/_discussion_activity_item.html.heex:18 lib/web/templates/email/activity/_discussion_activity_item.text.eex:7
#, elixir-format
msgid "%{profile} replied to the discussion %{discussion}."
msgstr "Fhreagair %{profile} san deasbad %{discussion}."
#, elixir-format
#: lib/web/templates/email/activity/_group_activity_item.html.heex:19
#: lib/web/templates/email/activity/_group_activity_item.text.eex:7
#, elixir-format
msgid "%{profile} updated the group %{group}."
msgstr "Dhùraich %{profile} am buidheann %{group}."
#: lib/service/activity/renderer/member.ex:54
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr "Dhùraich %{profile} am ball %{member}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:23
#: lib/web/templates/email/activity/_event_activity_item.html.heex:4 lib/web/templates/email/activity/_event_activity_item.text.eex:1
#, elixir-format
msgid "The event %{event} was created by %{profile}."
msgstr "Chaidh an tachartas %{event} a chruthachadh le %{profile}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:43
#: lib/web/templates/email/activity/_event_activity_item.html.heex:34 lib/web/templates/email/activity/_event_activity_item.text.eex:13
#, elixir-format
msgid "The event %{event} was deleted by %{profile}."
msgstr "Chaidh an tachartas %{event} a sguabadh às le %{profile}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:33
#: lib/web/templates/email/activity/_event_activity_item.html.heex:19 lib/web/templates/email/activity/_event_activity_item.text.eex:7
#, elixir-format
msgid "The event %{event} was updated by %{profile}."
msgstr "Chaidh an tachartas %{event} ùrachadh le %{profile}."
#, elixir-format
#: lib/web/templates/email/activity/_post_activity_item.html.heex:4
#: lib/web/templates/email/activity/_post_activity_item.text.eex:1
#, elixir-format
msgid "The post %{post} was created by %{profile}."
msgstr "Chaidh am post %{post} a chruthachadh le %{profile}."
#, elixir-format
#: lib/web/templates/email/activity/_post_activity_item.html.heex:34
#: lib/web/templates/email/activity/_post_activity_item.text.eex:13
#, elixir-format
msgid "The post %{post} was deleted by %{profile}."
msgstr "Chaidh am post %{post} a sguabadh às le %{profile}."
#, elixir-format
#: lib/web/templates/email/activity/_post_activity_item.html.heex:19
#: lib/web/templates/email/activity/_post_activity_item.text.eex:7
#, elixir-format
msgid "The post %{post} was updated by %{profile}."
msgstr "Chaidh am post %{post} ùrachadh le %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:46
#: lib/web/templates/email/activity/_member_activity_item.html.heex:33 lib/web/templates/email/activity/_member_activity_item.text.eex:22
#, elixir-format
msgid "%{member} joined the group."
msgstr "Fhuair %{member} ballrachd sa bhuidheann."
#, elixir-format
#: lib/service/activity/renderer/event.ex:63
#: lib/web/templates/email/activity/_event_activity_item.html.heex:58 lib/web/templates/email/activity/_event_activity_item.text.eex:25
#, elixir-format
msgid "%{profile} posted a comment on the event %{event}."
msgstr "Thug %{profile} beachd air an tachartas %{event}."
#, elixir-format
#: lib/service/activity/renderer/event.ex:54
#: lib/web/templates/email/activity/_event_activity_item.html.heex: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 "Fhreagair %{profile} do bheachd air an tachartas %{event}."
#: lib/web/templates/email/email_direct_activity.text.eex:27
#, elixir-format
#: lib/web/templates/email/email_direct_activity.text.eex:27
msgid "Don't want to receive activity notifications? You may change frequency or disable them in your settings."
msgstr ""
"A bheil thu airson brathan fhaighinn mu ghnìomhachd? S urrainn dhut "
"atharrachadh dè cho tric s a gheibh thu iad no an cur à comas sna "
"roghainnean agad."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.heex:135
#: lib/web/templates/email/email_direct_activity.text.eex:23
#, elixir-format
msgid "View one more activity"
msgid_plural "View %{count} more activities"
msgstr[0] "Seall %{count} ghnìomhachd a bharrachd"
@ -234,10 +234,10 @@ msgstr[1] "Seall %{count} ghnìomhachd a bharrachd"
msgstr[2] "Seall %{count} gnìomhachdan a bharrachd"
msgstr[3] "Seall %{count} gnìomhachd a bharrachd"
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.heex:44
#: lib/web/templates/email/email_direct_activity.html.heex:46 lib/web/templates/email/email_direct_activity.text.eex:6
#: lib/web/templates/email/email_direct_activity.text.eex:7
#, elixir-format
msgid "There has been an activity!"
msgid_plural "There has been some activity!"
msgstr[0] "Bha gnìomhachd ann!"
@ -245,99 +245,109 @@ msgstr[1] "Bha gnìomhachdan ann!"
msgstr[2] "Bha gnìomhachdan ann!"
msgstr[3] "Bha gnìomhachdan ann!"
#: lib/service/activity/renderer/renderer.ex:46
#, elixir-format
#: lib/service/activity/renderer/renderer.ex:46
msgid "Activity on %{instance}"
msgstr "Gnìomhachd air %{instance}"
#, elixir-format
#: lib/service/activity/renderer/comment.ex:38
#: lib/web/templates/email/activity/_comment_activity_item.html.heex:19 lib/web/templates/email/activity/_comment_activity_item.text.eex:7
#: lib/web/templates/email/email_anonymous_activity.html.heex:41 lib/web/templates/email/email_anonymous_activity.text.eex:5
#, elixir-format
msgid "%{profile} has posted an announcement under event %{event}."
msgstr "Chuir %{profile} brath-fios ris an tachartas %{event}."
#, elixir-format
#: lib/service/activity/renderer/comment.ex:24
#: lib/web/templates/email/activity/_comment_activity_item.html.heex:4 lib/web/templates/email/activity/_comment_activity_item.text.eex:1
#, elixir-format
msgid "%{profile} mentionned you in a comment under event %{event}."
msgstr "Thug %{profile} iomradh ort ann am beachd san tachartas %{event}."
#: lib/service/activity/renderer/discussion.ex:45
#, elixir-format
#: lib/service/activity/renderer/discussion.ex:45
msgid "%{profile} mentionned you in the discussion %{discussion}."
msgstr "Thug %{profile} iomradh ort san deasbad %{discussion}."
#: lib/web/templates/email/email_direct_activity.html.heex:155
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.heex:155
msgid "Don't want to receive activity notifications? You may change frequency or disable them in %{tag_start}your settings%{tag_end}."
msgstr ""
"A bheil thu airson brathan fhaighinn mu ghnìomhachd? S urrainn dhut "
"atharrachadh dè cho tric s a gheibh thu iad no an cur à comas sna "
"%{tag_start}roghainnean%{tag_end} agad."
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.heex:42
#: lib/web/templates/email/email_direct_activity.text.eex:5
#, elixir-format
msgid "Here's your weekly activity recap"
msgstr "Seo dhut ath-shùil air gnìomhachd na seachdaine"
#: lib/web/email/activity.ex:119 lib/web/email/activity.ex:140
#, elixir-format
#: lib/web/email/activity.ex:119 lib/web/email/activity.ex:140
msgid "Activity notification for %{instance}"
msgstr "Brath gnìomhachd airson %{instance}"
#: lib/web/email/activity.ex:126
#, elixir-format
#: lib/web/email/activity.ex:126
msgid "Daily activity recap for %{instance}"
msgstr "Ath-shùil air gnìomhachd %{instance} làitheil"
#, elixir-format
#: lib/web/templates/email/email_direct_activity.html.heex:40
#: lib/web/templates/email/email_direct_activity.text.eex:4
#, elixir-format
msgid "Here's your daily activity recap"
msgstr "Seo dhut ath-shùil air gnìomhachd an latha"
#: lib/web/email/activity.ex:133
#, elixir-format
#: lib/web/email/activity.ex:133
msgid "Weekly activity recap for %{instance}"
msgstr "Ath-shùil air gnìomhachd %{instance} sheachdaineil"
#, elixir-format
#: lib/service/activity/renderer/comment.ex:66
#: lib/web/templates/email/activity/_comment_activity_item.html.heex:51 lib/web/templates/email/activity/_comment_activity_item.text.eex:19
#, elixir-format
msgid "%{profile} has posted a new comment under your event %{event}."
msgstr "Thug %{profile} beachd ùr fon tachartas %{event} agad."
#, elixir-format
#: lib/service/activity/renderer/comment.ex:53
#: lib/web/templates/email/activity/_comment_activity_item.html.heex:36 lib/web/templates/email/activity/_comment_activity_item.text.eex:13
#, elixir-format
msgid "%{profile} has posted a new reply under your event %{event}."
msgstr "Chuir %{profile} freagairt ùr ris fon tachartas %{event} agad."
#: lib/web/email/activity.ex:46
#, elixir-format
#: lib/web/email/activity.ex:46
msgid "Announcement for your event %{event}"
msgstr "Brath-fios dhan tachartas %{event} agad"
#: lib/service/activity/renderer/group.ex:23
#, elixir-format
#: lib/service/activity/renderer/group.ex:23
msgid "The group %{group} was updated by %{profile}."
msgstr "Chaidh am buidheann %{group} ùrachadh le %{profile}."
#: lib/service/activity/renderer/post.ex:47
#, elixir-format
#: lib/service/activity/renderer/post.ex:47
msgid "The post %{post} from group %{group} was deleted by %{profile}."
msgstr ""
"Chaidh am post %{post} on bhuidheann %{group} a sguabadh às le %{profile}."
#: lib/service/activity/renderer/post.ex:31
#, elixir-format
#: lib/service/activity/renderer/post.ex:31
msgid "The post %{post} from group %{group} was published by %{profile}."
msgstr ""
"Chaidh am post %{post} on bhuidheann %{group} fhoillseachadh le %{profile}."
#: lib/service/activity/renderer/post.ex:39
#, elixir-format
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr "Chaidh am post %{post} on bhuidheann %{group} ùrachadh le %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr "Dhùraich %{profile} am ball %{member}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1226,7 +1226,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Ata aquí, e grazas pola atención!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Foches eliminada do grupo %{group}"
@ -1916,7 +1916,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Localización"
@ -1925,3 +1925,50 @@ msgstr "Localización"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Vas ir!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -525,7 +525,8 @@ msgid "You are not a member of this group"
msgstr "Non es membro deste grupo"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Non es moderadora ou administradora deste grupo"
@ -562,7 +563,7 @@ msgstr ""
"Non podes saír do evento porque es a única creadora do evento que participa"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Non podes adxudicarte un rol menor neste grupo porque es a única "
@ -808,12 +809,12 @@ msgid "This invitation doesn't exist."
msgstr "O convite non existe."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Este membro xa foi rexeitado."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "Non tes permiso para eliminar este membro."
@ -1028,3 +1029,18 @@ msgstr "Tes que estar conectada para poder unirte a un grupo"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Tes que estar conectada para poder actualizar un grupo"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "Non tes permiso para eliminar este membro."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1082,7 +1082,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1667,7 +1667,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Hely"
@ -1676,3 +1676,50 @@ msgstr "Hely"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -542,7 +542,8 @@ msgid "You are not a member of this group"
msgstr "Nem tagja ennek a csoportnak"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Nem moderátor vagy adminisztrátor ennél a csoportnál"
@ -579,7 +580,7 @@ msgstr ""
"Nem hagyhatja el az eseményt, mert Ön az egyedüli eseménylétrehozó résztvevő"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Nem állíthatja magát alacsonyabb tagszerepre ennél a csoportnál, mert Ön az "
@ -831,12 +832,12 @@ msgid "This invitation doesn't exist."
msgstr "Ez a meghívás nem létezik."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Ez a tag már vissza lett utasítva."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "Nincs meg a jogosultsága a tag eltávolításához."
@ -1048,3 +1049,18 @@ msgstr "Bejelentkezve kell lennie egy csoporthoz való csatlakozáshoz"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Bejelentkezve kell lennie egy csoport frissítéséhez"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "Nincs meg a jogosultsága a tag eltávolításához."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -102,7 +102,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -120,7 +120,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr "%{profile} keluar dari kelompok."
@ -156,7 +156,7 @@ msgid "%{profile} updated the group %{group}."
msgstr "%{profile} memperbarui kelompok %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -326,3 +326,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr "Postingan %{post} dari kelompok %{group} diperbarui oleh %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1065,7 +1065,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Sampai jumpa, dan terima kasih atas ikannya!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Anda telah dikeluarkan dari kelompok %{group}"
@ -1650,7 +1650,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Lokasi"
@ -1659,3 +1659,50 @@ msgstr "Lokasi"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Anda ikut!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -516,7 +516,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -552,7 +553,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -787,12 +788,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1002,3 +1003,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1257,7 +1257,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Addio, e grazie per il pesce!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Sei stato rimosso dal gruppo %{group}"
@ -1957,7 +1957,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Posizione"
@ -1966,3 +1966,50 @@ msgstr "Posizione"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Ce l'hai fatta!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -524,7 +524,8 @@ msgid "You are not a member of this group"
msgstr "Non sei un membro di questo gruppo"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Non sei un moderatore o amministratore di questo gruppo"
@ -561,7 +562,7 @@ msgstr ""
"Non puoi lasciare l'evento perchè sei l'unico partecipante creatore di eventi"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Non puoi impostare te stesso per un ruolo di membro inferiore per questo "
@ -806,12 +807,12 @@ msgid "This invitation doesn't exist."
msgstr "Questo invito non esiste."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Questo memebro è già stato rifiutato."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "Non hai il diritto di rimuovere questo membro."
@ -1025,3 +1026,18 @@ msgstr "È necessario effettuare il login per entrare a far parte di un gruppo"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "È necessario effettuare il login per aggiornare un gruppo"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "Non hai il diritto di rimuovere questo membro."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -314,3 +314,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1025,7 +1025,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1610,7 +1610,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr ""
@ -1619,3 +1619,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -509,7 +509,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -545,7 +546,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -780,12 +781,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -995,3 +996,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1049,7 +1049,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1635,7 +1635,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr ""
@ -1644,3 +1644,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -515,7 +515,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -551,7 +552,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -786,12 +787,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1001,3 +1002,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -97,7 +97,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} sletta ressursen %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr "%{profile} kasta ut medlemen %{member}."
@ -115,7 +115,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr "%{profile} flytta ressursen %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr "%{profile} forlét gruppa."
@ -152,7 +152,7 @@ msgid "%{profile} updated the group %{group}."
msgstr "%{profile} oppdaterte gruppa %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} oppdaterte medlemen %{member}."
@ -328,3 +328,13 @@ msgstr "%{profile} la ut innlegget %{post} i gruppa %{group}."
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr "%{profile} oppdaterte innlegget %{post} i gruppa %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr "%{profile} oppdaterte medlemen %{member}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1221,7 +1221,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Ha det så lenge, og takk for all fisken!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Du er fjerna frå gruppa %{group}"
@ -1915,7 +1915,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Stad"
@ -1924,3 +1924,50 @@ msgstr "Stad"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Du skal dit!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -538,7 +538,8 @@ msgid "You are not a member of this group"
msgstr "Du er ikkje medlem i denne gruppa"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Du er ikkje styrar eller administrator for denne gruppa"
@ -577,7 +578,7 @@ msgstr ""
"oppretta hendinga"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Du kan ikkje gje deg sjølv ei deltakarrolle i denne gruppa, fordi du er den "
@ -823,12 +824,12 @@ msgid "This invitation doesn't exist."
msgstr "Invitasjonen finst ikkje."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Denne medlemen har allereie fått avslag."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "Du har ikkje løyve til å fjerna denne medlemen."
@ -1045,3 +1046,18 @@ msgstr "Du må vera innlogga for å bli med i ei gruppe"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Du må vera innlogga for å oppdatera ei gruppe"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "Du har ikkje løyve til å fjerna denne medlemen."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1126,7 +1126,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Vos an tirat del grop %{group}"
@ -1720,7 +1720,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Localizacion"
@ -1729,3 +1729,50 @@ msgstr "Localizacion"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "I anatz!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -527,7 +527,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -563,7 +564,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -798,12 +799,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1013,3 +1014,18 @@ msgstr "Devetz d'esser conectat per rejónher un grop"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Devetz d'esser conectat per metre à jorn un grop"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -318,3 +318,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1135,7 +1135,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Zostałeś(-aś) usunięty(-a) z grupy %{group}"
@ -1734,7 +1734,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Miejsce"
@ -1743,3 +1743,50 @@ msgstr "Miejsce"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Weźmiesz udział!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -534,7 +534,8 @@ msgid "You are not a member of this group"
msgstr "Nie jesteś członkiem tej grupy"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Nie jesteś moderatorem ani administratorem tej grupy"
@ -570,7 +571,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Nie możesz przydzielić sobie niższej rangi grupy, ponieważ jesteś jedynym "
@ -815,12 +816,12 @@ msgid "This invitation doesn't exist."
msgstr "To zaproszenie nie istnieje."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Ten członek już został odrzucony."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "Nie masz uprawnień do usunięcia tego członka."
@ -1030,3 +1031,18 @@ msgstr "Musisz być zalogowany(-a), aby dołączyć do grupy"
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Musisz być zalogowany(-a), aby zaktualizować grupę"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "Nie masz uprawnień do usunięcia tego członka."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1030,7 +1030,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1615,7 +1615,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr ""
@ -1624,3 +1624,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -515,7 +515,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -551,7 +552,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -786,12 +787,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1001,3 +1002,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -90,7 +90,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr ""
@ -108,7 +108,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr ""
@ -144,7 +144,7 @@ msgid "%{profile} updated the group %{group}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr ""
@ -316,3 +316,13 @@ msgstr ""
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr ""
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1107,7 +1107,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr ""
@ -1727,7 +1727,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr ""
@ -1736,3 +1736,50 @@ msgstr ""
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -515,7 +515,8 @@ msgid "You are not a member of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr ""
@ -551,7 +552,7 @@ msgid "You can't leave event because you're the only event creator participant"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
@ -786,12 +787,12 @@ msgid "This invitation doesn't exist."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr ""
@ -1001,3 +1002,18 @@ msgstr ""
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

View file

@ -98,7 +98,7 @@ msgid "%{profile} deleted the resource %{resource}."
msgstr "%{profile} удалил ресурс %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
#: lib/service/activity/renderer/member.ex:66
#: lib/web/templates/email/activity/_member_activity_item.html.heex:56 lib/web/templates/email/activity/_member_activity_item.text.eex:39
msgid "%{profile} excluded member %{member}."
msgstr "%{profile} исключил участника %{member}."
@ -116,7 +116,7 @@ msgid "%{profile} moved the resource %{resource}."
msgstr "%{profile} переместил ресурс %{resource}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:62
#: lib/service/activity/renderer/member.ex:70
#: lib/web/templates/email/activity/_member_activity_item.html.heex:64 lib/web/templates/email/activity/_member_activity_item.text.eex:45
msgid "%{profile} quit the group."
msgstr "%{profile} вышел из группы."
@ -152,7 +152,7 @@ msgid "%{profile} updated the group %{group}."
msgstr "%{profile} обновил группу %{group}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
#: lib/service/activity/renderer/member.ex:62
#: lib/web/templates/email/activity/_member_activity_item.html.heex:48 lib/web/templates/email/activity/_member_activity_item.text.eex:33
msgid "%{profile} updated the member %{member}."
msgstr "%{profile} обновил участника %{member}."
@ -330,3 +330,13 @@ msgstr "Сообщение %{post} из группы %{group} было опуб
#: lib/service/activity/renderer/post.ex:39
msgid "The post %{post} from group %{group} was updated by %{profile}."
msgstr "Сообщение %{post} из группы %{group} было обновлено %{profile}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:54
msgid "%{profile} approved the membership request from %{member}."
msgstr "%{profile} обновил участника %{member}."
#, elixir-format
#: lib/service/activity/renderer/member.ex:58
msgid "%{profile} rejected the membership request from %{member}."
msgstr ""

View file

@ -1257,7 +1257,7 @@ msgid "So long, and thanks for the fish!"
msgstr "Всего хорошего, и спасибо за рыбу!"
#, elixir-format
#: lib/web/email/member.ex:61
#: lib/web/email/member.ex:113
msgid "You have been removed from group %{group}"
msgstr "Вас исключили из группы %{group}"
@ -1960,7 +1960,7 @@ msgstr ""
msgid "New end date:"
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/event_updated.text.eex:10
msgid "New location:"
msgstr "Местонахождение"
@ -1969,3 +1969,50 @@ msgstr "Местонахождение"
#: lib/web/templates/email/event_updated.text.eex:8
msgid "New start date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:13
#: lib/web/templates/email/group_membership_rejection.text.eex:1
msgid "Sorry, not this time!"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:52
msgid "View the group"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:13
#: lib/web/templates/email/group_membership_approval.text.eex:1
msgid "You're in!"
msgstr "Вы примете участие!"
#, elixir-format
#: lib/web/email/member.ex:60
msgid "Your membership request for group %{group} has been approved"
msgstr ""
#, elixir-format
#: lib/web/email/member.ex:89
msgid "Your membership request for group %{group} has been rejected"
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.text.eex:3
msgid "Your membership request for group %{group} has been rejected."
msgstr ""
#, elixir-format
#: lib/web/templates/email/group_membership_rejection.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""

View file

@ -539,7 +539,8 @@ msgid "You are not a member of this group"
msgstr "Вы не состоите в этой группе"
#, elixir-format
#: lib/graphql/resolvers/member.ex:155
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
#: lib/graphql/resolvers/member.ex:186
msgid "You are not a moderator or admin for this group"
msgstr "Вы не модератор и не администратор этой группы"
@ -577,7 +578,7 @@ msgstr ""
"участником, создавшим его"
#, elixir-format
#: lib/graphql/resolvers/member.ex:159
#: lib/graphql/resolvers/member.ex:190
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
msgstr ""
"Вы не можете назначить себе роль с меньшими правами для этой группы, потому "
@ -835,12 +836,12 @@ msgid "This invitation doesn't exist."
msgstr "Такого приглашения не существует."
#, elixir-format
#: lib/graphql/resolvers/member.ex:185
#: lib/graphql/resolvers/member.ex:215
msgid "This member already has been rejected."
msgstr "Этот участник уже был отклонён."
#, elixir-format
#: lib/graphql/resolvers/member.ex:192
#: lib/graphql/resolvers/member.ex:239
msgid "You don't have the right to remove this member."
msgstr "У вас нет прав на удаление этого участника."
@ -1056,3 +1057,18 @@ msgstr "Вам необходимо войти в систему, чтобы п
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr "Вам необходимо войти в систему, чтобы обновить группу"
#, elixir-format
#: lib/graphql/resolvers/member.ex:208
msgid "This member does not exist"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/member.ex:232
msgid "You don't have the role needed to remove this member."
msgstr "У вас нет прав на удаление этого участника."
#, elixir-format
#: lib/graphql/resolvers/member.ex:250
msgid "You must be logged-in to remove a member"
msgstr ""

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